diff --git a/sdk/netapp/mgmt-v2019_10_01/pom.xml b/sdk/netapp/mgmt-v2019_10_01/pom.xml
new file mode 100644
index 000000000000..bbdb5659c8a1
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.netapp.v2019_10_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.2.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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Accounts.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Accounts.java
new file mode 100644
index 000000000000..9d0f4df2b7ca
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ActiveDirectory.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ActiveDirectory.java
new file mode 100644
index 000000000000..b686959d021b
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ActiveDirectory.java
@@ -0,0 +1,227 @@
+/**
+ * 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.v2019_10_01;
+
+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.
+ */
+ @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.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * 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;
+
+ /**
+ * 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.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set plain text password of Active Directory domain administrator.
+ *
+ * @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.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of the Active Directory.
+ *
+ * @param status the status value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/AuthorizeRequest.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/AuthorizeRequest.java
new file mode 100644
index 000000000000..affc25630a40
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Authorize request.
+ */
+public class AuthorizeRequest {
+ /**
+ * Resource id.
+ */
+ @JsonProperty(value = "remoteVolumeResourceId")
+ private String remoteVolumeResourceId;
+
+ /**
+ * Get resource id.
+ *
+ * @return the remoteVolumeResourceId value
+ */
+ public String remoteVolumeResourceId() {
+ return this.remoteVolumeResourceId;
+ }
+
+ /**
+ * Set resource id.
+ *
+ * @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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPool.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPool.java
new file mode 100644
index 000000000000..472d3fc0a6d7
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPool.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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_10_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.v2019_10_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 serviceLevel value.
+ */
+ ServiceLevel serviceLevel();
+
+ /**
+ * @return the size value.
+ */
+ long size();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * 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 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.WithTags {
+ }
+ }
+ /**
+ * The template for a CapacityPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithServiceLevel, UpdateStages.WithSize, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CapacityPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the capacitypool 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 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPoolPatch.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPoolPatch.java
new file mode 100644
index 000000000000..36a61278cd2d
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CapacityPoolPatch.java
@@ -0,0 +1,76 @@
+/**
+ * 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.v2019_10_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;
+
+ /**
+ * serviceLevel.
+ * The service level of the file system. Possible values include:
+ * 'Standard', 'Premium', 'Ultra'.
+ */
+ @JsonProperty(value = "properties.serviceLevel")
+ private ServiceLevel serviceLevel;
+
+ /**
+ * 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 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 CapacityPoolPatch object itself.
+ */
+ public CapacityPoolPatch withServiceLevel(ServiceLevel serviceLevel) {
+ this.serviceLevel = serviceLevel;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CheckNameResourceTypes.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/CheckNameResourceTypes.java
new file mode 100644
index 000000000000..bd9d9ad7b226
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Dimension.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Dimension.java
new file mode 100644
index 000000000000..2734033114fb
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/EndpointType.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/EndpointType.java
new file mode 100644
index 000000000000..b52f57b9a9ef
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ExportPolicyRule.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ExportPolicyRule.java
new file mode 100644
index 000000000000..c0b05158e3a4
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ExportPolicyRule.java
@@ -0,0 +1,200 @@
+/**
+ * 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.v2019_10_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;
+
+ /**
+ * Allows CIFS protocol.
+ */
+ @JsonProperty(value = "cifs")
+ private Boolean cifs;
+
+ /**
+ * Allows NFSv3 protocol.
+ */
+ @JsonProperty(value = "nfsv3")
+ private Boolean nfsv3;
+
+ /**
+ * Allows NFSv4.1 protocol.
+ */
+ @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;
+
+ /**
+ * 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 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.
+ *
+ * @return the nfsv3 value
+ */
+ public Boolean nfsv3() {
+ return this.nfsv3;
+ }
+
+ /**
+ * Set allows NFSv3 protocol.
+ *
+ * @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.
+ *
+ * @return the nfsv41 value
+ */
+ public Boolean nfsv41() {
+ return this.nfsv41;
+ }
+
+ /**
+ * Set allows NFSv4.1 protocol.
+ *
+ * @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;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/InAvailabilityReasonType.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/InAvailabilityReasonType.java
new file mode 100644
index 000000000000..895f0232907f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MetricSpecification.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MetricSpecification.java
new file mode 100644
index 000000000000..4109b2dc3cc8
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MirrorState.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MirrorState.java
new file mode 100644
index 000000000000..c63bbb36a140
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTarget.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTarget.java
new file mode 100644
index 000000000000..34cb0d820ad5
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTarget.java
@@ -0,0 +1,96 @@
+/**
+ * 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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.MountTargetInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.NetAppManager;
+import java.util.Map;
+
+/**
+ * Type representing MountTarget.
+ */
+public interface MountTarget extends HasInner, HasManager {
+ /**
+ * @return the endIp value.
+ */
+ String endIp();
+
+ /**
+ * @return the fileSystemId value.
+ */
+ String fileSystemId();
+
+ /**
+ * @return the gateway value.
+ */
+ String gateway();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the ipAddress value.
+ */
+ String ipAddress();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the mountTargetId value.
+ */
+ String mountTargetId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the netmask value.
+ */
+ String netmask();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the smbServerFqdn value.
+ */
+ String smbServerFqdn();
+
+ /**
+ * @return the startIp value.
+ */
+ String startIp();
+
+ /**
+ * @return the subnet value.
+ */
+ String subnet();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTargets.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTargets.java
new file mode 100644
index 000000000000..9e8cbafb1041
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/MountTargets.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.MountTargetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing MountTargets.
+ */
+public interface MountTargets extends HasInner {
+ /**
+ * Describe all mount targets.
+ * List all mount targets 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);
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppAccount.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppAccount.java
new file mode 100644
index 000000000000..143913a9d91f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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.v2019_10_01.implementation.NetAppManager;
+import java.util.List;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppAccountPatch.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppAccountPatch.java
new file mode 100644
index 000000000000..48701b8863a6
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppResources.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppResources.java
new file mode 100644
index 000000000000..f0e92898f5db
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/NetAppResources.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.v2019_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_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);
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Operation.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Operation.java
new file mode 100644
index 000000000000..748fde47e72f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/OperationDisplay.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/OperationDisplay.java
new file mode 100644
index 000000000000..f317a8d023d9
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Operations.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Operations.java
new file mode 100644
index 000000000000..f924852959fd
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Pools.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Pools.java
new file mode 100644
index 000000000000..3ca768a00b57
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/RelationshipStatus.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/RelationshipStatus.java
new file mode 100644
index 000000000000..887d23eec9f1
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationObject.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationObject.java
new file mode 100644
index 000000000000..c605dd9e91b4
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationObject.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.v2019_10_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',
+ * 'weekly', 'monthly'.
+ */
+ @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', 'weekly', 'monthly'.
+ *
+ * @return the replicationSchedule value
+ */
+ public ReplicationSchedule replicationSchedule() {
+ return this.replicationSchedule;
+ }
+
+ /**
+ * Set schedule. Possible values include: '_10minutely', 'hourly', 'daily', 'weekly', 'monthly'.
+ *
+ * @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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationSchedule.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationSchedule.java
new file mode 100644
index 000000000000..58329e33bfa3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationSchedule.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.v2019_10_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");
+
+ /** Static value weekly for ReplicationSchedule. */
+ public static final ReplicationSchedule WEEKLY = fromString("weekly");
+
+ /** Static value monthly for ReplicationSchedule. */
+ public static final ReplicationSchedule MONTHLY = fromString("monthly");
+
+ /**
+ * 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationStatus.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ReplicationStatus.java
new file mode 100644
index 000000000000..f869df5b5541
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ResourceNameAvailability.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ResourceNameAvailability.java
new file mode 100644
index 000000000000..1fa0289a97e3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ResourceNameAvailability.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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.ResourceNameAvailabilityInner;
+
+/**
+ * Type representing ResourceNameAvailability.
+ */
+public interface ResourceNameAvailability 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ResourceNameAvailabilityRequest.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ResourceNameAvailabilityRequest.java
new file mode 100644
index 000000000000..48d2638750fe
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ServiceLevel.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ServiceLevel.java
new file mode 100644
index 000000000000..61b09c33ab90
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ServiceSpecification.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/ServiceSpecification.java
new file mode 100644
index 000000000000..21c8e4f35f0f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Snapshot.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Snapshot.java
new file mode 100644
index 000000000000..4b17b1359726
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Snapshot.java
@@ -0,0 +1,182 @@
+/**
+ * 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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_10_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.v2019_10_01.implementation.NetAppManager;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing Snapshot.
+ */
+public interface Snapshot extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the created value.
+ */
+ DateTime created();
+
+ /**
+ * @return the fileSystemId value.
+ */
+ String fileSystemId();
+
+ /**
+ * @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 tags value.
+ */
+ Map tags();
+
+ /**
+ * @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 the location parameter value
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the snapshot definition allowing to specify FileSystemId.
+ */
+ interface WithFileSystemId {
+ /**
+ * Specifies fileSystemId.
+ * @param fileSystemId UUID v4 used to identify the FileSystem
+ * @return the next definition stage
+ */
+ WithCreate withFileSystemId(String fileSystemId);
+ }
+
+ /**
+ * The stage of the snapshot 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.WithFileSystemId, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a Snapshot update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithFileSystemId, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of Snapshot update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the snapshot update allowing to specify FileSystemId.
+ */
+ interface WithFileSystemId {
+ /**
+ * Specifies fileSystemId.
+ * @param fileSystemId UUID v4 used to identify the FileSystem
+ * @return the next update stage
+ */
+ Update withFileSystemId(String fileSystemId);
+ }
+
+ /**
+ * The stage of the snapshot 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/SnapshotPatch.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/SnapshotPatch.java
new file mode 100644
index 000000000000..de78a3dcb6d3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/SnapshotPatch.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.v2019_10_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Snapshot patch.
+ */
+public class SnapshotPatch {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * 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 SnapshotPatch object itself.
+ */
+ public SnapshotPatch withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Snapshots.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Snapshots.java
new file mode 100644
index 000000000000..c7ed4ce1b721
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volume.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volume.java
new file mode 100644
index 000000000000..0dd2324cab02
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volume.java
@@ -0,0 +1,375 @@
+/**
+ * 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.v2019_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_10_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.v2019_10_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 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 location value.
+ */
+ String location();
+
+ /**
+ * @return the mountTargets value.
+ */
+ Object mountTargets();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the protocolTypes value.
+ */
+ List protocolTypes();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the serviceLevel value.
+ */
+ ServiceLevel serviceLevel();
+
+ /**
+ * @return the snapshotId value.
+ */
+ String snapshotId();
+
+ /**
+ * @return the subnetId value.
+ */
+ String subnetId();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @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 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 MountTargets.
+ */
+ interface WithMountTargets {
+ /**
+ * Specifies mountTargets.
+ * @param mountTargets List of mount targets
+ * @return the next definition stage
+ */
+ WithCreate withMountTargets(Object 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 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 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 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.WithDataProtection, DefinitionStages.WithExportPolicy, DefinitionStages.WithIsRestoring, DefinitionStages.WithMountTargets, DefinitionStages.WithProtocolTypes, DefinitionStages.WithServiceLevel, DefinitionStages.WithSnapshotId, DefinitionStages.WithTags, DefinitionStages.WithVolumeType {
+ }
+ }
+ /**
+ * The template for a Volume update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithExportPolicy, UpdateStages.WithServiceLevel, UpdateStages.WithTags, UpdateStages.WithUsageThreshold {
+ }
+
+ /**
+ * Grouping of Volume update stages.
+ */
+ interface UpdateStages {
+ /**
+ * 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 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePatch.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePatch.java
new file mode 100644
index 000000000000..e945e5b7cd67
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePatch.java
@@ -0,0 +1,104 @@
+/**
+ * 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.v2019_10_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;
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePatchPropertiesExportPolicy.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePatchPropertiesExportPolicy.java
new file mode 100644
index 000000000000..ee4590984f85
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePropertiesDataProtection.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePropertiesDataProtection.java
new file mode 100644
index 000000000000..ae6057c1edc0
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePropertiesDataProtection.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.v2019_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DataProtection.
+ * DataProtection type volumes include an object containing details of the
+ * replication.
+ */
+public class VolumePropertiesDataProtection {
+ /**
+ * Replication.
+ * Replication properties.
+ */
+ @JsonProperty(value = "replication")
+ private ReplicationObject replication;
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePropertiesExportPolicy.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/VolumePropertiesExportPolicy.java
new file mode 100644
index 000000000000..f6a240f12e24
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volumes.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volumes.java
new file mode 100644
index 000000000000..30573d9b866c
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/Volumes.java
@@ -0,0 +1,124 @@
+/**
+ * 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.v2019_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_01.implementation.VolumesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Volumes.
+ */
+public interface Volumes extends SupportsCreating, HasInner {
+ /**
+ * 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 source to destination.
+ *
+ * @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);
+
+ /**
+ * 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-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AccountsImpl.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AccountsImpl.java
new file mode 100644
index 000000000000..fde618e6971a
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_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.v2019_10_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.netapp.v2019_10_01.Accounts;
+import com.microsoft.azure.management.netapp.v2019_10_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> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ AccountsInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ AccountsInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(Page innerPage) {
+ return Observable.from(innerPage.items());
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public NetAppAccount call(NetAppAccountInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public NetAppAccountImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ protected NetAppAccountImpl wrapModel(NetAppAccountInner inner) {
+ return new NetAppAccountImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected NetAppAccountImpl wrapModel(String name) {
+ return new NetAppAccountImpl(name, new NetAppAccountInner(), this.manager());
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AccountsInner.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AccountsInner.java
new file mode 100644
index 000000000000..d86eedb2153f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AccountsInner.java
@@ -0,0 +1,719 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.management.netapp.v2019_10_01.NetAppAccountPatch;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.PATCH;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+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 Accounts.
+ */
+public class AccountsInner implements InnerSupportsGet, InnerSupportsDelete {
+ /** The Retrofit service to perform REST calls. */
+ private AccountsService service;
+ /** The service client containing this operation class. */
+ private AzureNetAppFilesManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccountsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AccountsInner(Retrofit retrofit, AzureNetAppFilesManagementClientImpl client) {
+ this.service = retrofit.create(AccountsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Accounts to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AccountsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2019_10_01.Accounts listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts")
+ Observable> listByResourceGroup(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @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.v2019_10_01.Accounts getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}")
+ Observable> getByResourceGroup(@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.v2019_10_01.Accounts createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Body NetAppAccountInner body, @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.v2019_10_01.Accounts beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Body NetAppAccountInner body, @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.v2019_10_01.Accounts delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}", method = "DELETE", hasBody = true)
+ Observable> delete(@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.v2019_10_01.Accounts beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@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.v2019_10_01.Accounts update" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}")
+ Observable> update(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Body NetAppAccountPatch body, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Describe all NetApp Accounts in a resource group.
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @return the PagedList object if successful.
+ */
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ PageImpl page = new PageImpl<>();
+ page.setItems(listByResourceGroupWithServiceResponseAsync(resourceGroupName).toBlocking().single().body());
+ page.setNextPageLink(null);
+ return new PagedList(page) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return null;
+ }
+ };
+ }
+
+ /**
+ * Describe all NetApp Accounts in a resource group.
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByResourceGroupAsync(String resourceGroupName, final ServiceCallback> serviceCallback) {
+ return ServiceFuture.fromResponse(listByResourceGroupWithServiceResponseAsync(resourceGroupName), serviceCallback);
+ }
+
+ /**
+ * Describe all NetApp Accounts in a resource group.
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @return the observable to the List<NetAppAccountInner> object
+ */
+ public Observable> listByResourceGroupAsync(String resourceGroupName) {
+ return listByResourceGroupWithServiceResponseAsync(resourceGroupName).map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ PageImpl page = new PageImpl<>();
+ page.setItems(response.body());
+ return page;
+ }
+ });
+ }
+
+ /**
+ * Describe all NetApp Accounts in a resource group.
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @return the observable to the List<NetAppAccountInner> object
+ */
+ public Observable>> listByResourceGroupWithServiceResponseAsync(String resourceGroupName) {
+ 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 (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.listByResourceGroup(this.client.subscriptionId(), resourceGroupName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByResourceGroupDelegate(response);
+ List items = null;
+ if (result.body() != null) {
+ items = result.body().items();
+ }
+ ServiceResponse> clientResponse = new ServiceResponse>(items, result.response());
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listByResourceGroupDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Describe a NetApp Account.
+ * Get the NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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 NetAppAccountInner object if successful.
+ */
+ public NetAppAccountInner getByResourceGroup(String resourceGroupName, String accountName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, accountName).toBlocking().single().body();
+ }
+
+ /**
+ * Describe a NetApp Account.
+ * Get the 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 getByResourceGroupAsync(String resourceGroupName, String accountName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByResourceGroupWithServiceResponseAsync(resourceGroupName, accountName), serviceCallback);
+ }
+
+ /**
+ * Describe a NetApp Account.
+ * Get the NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable getByResourceGroupAsync(String resourceGroupName, String accountName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, accountName).map(new Func1, NetAppAccountInner>() {
+ @Override
+ public NetAppAccountInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Describe a NetApp Account.
+ * Get the NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable> getByResourceGroupWithServiceResponseAsync(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.getByResourceGroup(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 = getByResourceGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByResourceGroupDelegate(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);
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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 NetAppAccountInner object if successful.
+ */
+ public NetAppAccountInner createOrUpdate(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body).toBlocking().last().body();
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param 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 createOrUpdateAsync(String resourceGroupName, String accountName, NetAppAccountInner body, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body), serviceCallback);
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body).map(new Func1, NetAppAccountInner>() {
+ @Override
+ public NetAppAccountInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ 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 (body == null) {
+ throw new IllegalArgumentException("Parameter body is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(body);
+ Observable> observable = service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, accountName, body, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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 NetAppAccountInner object if successful.
+ */
+ public NetAppAccountInner beginCreateOrUpdate(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body).toBlocking().single().body();
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param 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 beginCreateOrUpdateAsync(String resourceGroupName, String accountName, NetAppAccountInner body, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body), serviceCallback);
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, accountName, body).map(new Func1, NetAppAccountInner>() {
+ @Override
+ public NetAppAccountInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a NetApp account.
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String accountName, NetAppAccountInner body) {
+ 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 (body == null) {
+ throw new IllegalArgumentException("Parameter body is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(body);
+ return service.beginCreateOrUpdate(this.client.subscriptionId(), resourceGroupName, accountName, body, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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) {
+ deleteWithServiceResponseAsync(resourceGroupName, accountName).toBlocking().last().body();
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified 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 deleteAsync(String resourceGroupName, String accountName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, accountName), serviceCallback);
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable deleteAsync(String resourceGroupName, String accountName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, accountName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> deleteWithServiceResponseAsync(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.");
+ }
+ Observable> observable = service.delete(this.client.subscriptionId(), resourceGroupName, accountName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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) {
+ beginDeleteWithServiceResponseAsync(resourceGroupName, accountName).toBlocking().single().body();
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified 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 beginDeleteAsync(String resourceGroupName, String accountName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginDeleteWithServiceResponseAsync(resourceGroupName, accountName), serviceCallback);
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable beginDeleteAsync(String resourceGroupName, String accountName) {
+ return beginDeleteWithServiceResponseAsync(resourceGroupName, accountName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Delete a NetApp account.
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable> beginDeleteWithServiceResponseAsync(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.beginDelete(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 = 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(202, new TypeToken() { }.getType())
+ .register(204, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Update a NetApp account.
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws 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 NetAppAccountInner object if successful.
+ */
+ public NetAppAccountInner update(String resourceGroupName, String accountName, NetAppAccountPatch body) {
+ return updateWithServiceResponseAsync(resourceGroupName, accountName, body).toBlocking().single().body();
+ }
+
+ /**
+ * Update a NetApp account.
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param 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 updateAsync(String resourceGroupName, String accountName, NetAppAccountPatch body, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(updateWithServiceResponseAsync(resourceGroupName, accountName, body), serviceCallback);
+ }
+
+ /**
+ * Update a NetApp account.
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable updateAsync(String resourceGroupName, String accountName, NetAppAccountPatch body) {
+ return updateWithServiceResponseAsync(resourceGroupName, accountName, body).map(new Func1, NetAppAccountInner>() {
+ @Override
+ public NetAppAccountInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Update a NetApp account.
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NetAppAccountInner object
+ */
+ public Observable> updateWithServiceResponseAsync(String resourceGroupName, String accountName, NetAppAccountPatch body) {
+ 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 (body == null) {
+ throw new IllegalArgumentException("Parameter body is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(body);
+ return service.update(this.client.subscriptionId(), resourceGroupName, accountName, body, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = updateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse updateDelegate(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())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AzureNetAppFilesManagementClientImpl.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AzureNetAppFilesManagementClientImpl.java
new file mode 100644
index 000000000000..65a003fe71e6
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/AzureNetAppFilesManagementClientImpl.java
@@ -0,0 +1,280 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the AzureNetAppFilesManagementClientImpl class.
+ */
+public class AzureNetAppFilesManagementClientImpl extends AzureServiceClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. */
+ private String subscriptionId;
+
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public AzureNetAppFilesManagementClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** Version of the API to be used with the client request. */
+ private String apiVersion;
+
+ /**
+ * Gets Version of the API to be used with the client request.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public AzureNetAppFilesManagementClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public AzureNetAppFilesManagementClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public AzureNetAppFilesManagementClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The OperationsInner object to access its operations.
+ */
+ private OperationsInner operations;
+
+ /**
+ * Gets the OperationsInner object to access its operations.
+ * @return the OperationsInner object.
+ */
+ public OperationsInner operations() {
+ return this.operations;
+ }
+
+ /**
+ * The NetAppResourcesInner object to access its operations.
+ */
+ private NetAppResourcesInner netAppResources;
+
+ /**
+ * Gets the NetAppResourcesInner object to access its operations.
+ * @return the NetAppResourcesInner object.
+ */
+ public NetAppResourcesInner netAppResources() {
+ return this.netAppResources;
+ }
+
+ /**
+ * The AccountsInner object to access its operations.
+ */
+ private AccountsInner accounts;
+
+ /**
+ * Gets the AccountsInner object to access its operations.
+ * @return the AccountsInner object.
+ */
+ public AccountsInner accounts() {
+ return this.accounts;
+ }
+
+ /**
+ * The PoolsInner object to access its operations.
+ */
+ private PoolsInner pools;
+
+ /**
+ * Gets the PoolsInner object to access its operations.
+ * @return the PoolsInner object.
+ */
+ public PoolsInner pools() {
+ return this.pools;
+ }
+
+ /**
+ * The VolumesInner object to access its operations.
+ */
+ private VolumesInner volumes;
+
+ /**
+ * Gets the VolumesInner object to access its operations.
+ * @return the VolumesInner object.
+ */
+ public VolumesInner volumes() {
+ return this.volumes;
+ }
+
+ /**
+ * The MountTargetsInner object to access its operations.
+ */
+ private MountTargetsInner mountTargets;
+
+ /**
+ * Gets the MountTargetsInner object to access its operations.
+ * @return the MountTargetsInner object.
+ */
+ public MountTargetsInner mountTargets() {
+ return this.mountTargets;
+ }
+
+ /**
+ * The SnapshotsInner object to access its operations.
+ */
+ private SnapshotsInner snapshots;
+
+ /**
+ * Gets the SnapshotsInner object to access its operations.
+ * @return the SnapshotsInner object.
+ */
+ public SnapshotsInner snapshots() {
+ return this.snapshots;
+ }
+
+ /**
+ * Initializes an instance of AzureNetAppFilesManagementClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public AzureNetAppFilesManagementClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of AzureNetAppFilesManagementClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public AzureNetAppFilesManagementClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of AzureNetAppFilesManagementClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public AzureNetAppFilesManagementClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2019-10-01";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.operations = new OperationsInner(restClient().retrofit(), this);
+ this.netAppResources = new NetAppResourcesInner(restClient().retrofit(), this);
+ this.accounts = new AccountsInner(restClient().retrofit(), this);
+ this.pools = new PoolsInner(restClient().retrofit(), this);
+ this.volumes = new VolumesInner(restClient().retrofit(), this);
+ this.mountTargets = new MountTargetsInner(restClient().retrofit(), this);
+ this.snapshots = new SnapshotsInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "AzureNetAppFilesManagementClient", "2019-10-01");
+ }
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolImpl.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolImpl.java
new file mode 100644
index 000000000000..0e4e53654e91
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolImpl.java
@@ -0,0 +1,186 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import com.microsoft.azure.management.netapp.v2019_10_01.CapacityPool;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_10_01.CapacityPoolPatch;
+import com.microsoft.azure.management.netapp.v2019_10_01.ServiceLevel;
+import java.util.Map;
+import rx.functions.Func1;
+
+class CapacityPoolImpl extends CreatableUpdatableImpl implements CapacityPool, CapacityPool.Definition, CapacityPool.Update {
+ private final NetAppManager manager;
+ private String resourceGroupName;
+ private String accountName;
+ private String poolName;
+ private CapacityPoolPatch updateParameter;
+
+ CapacityPoolImpl(String name, NetAppManager manager) {
+ super(name, new CapacityPoolInner());
+ this.manager = manager;
+ // Set resource name
+ this.poolName = name;
+ //
+ this.updateParameter = new CapacityPoolPatch();
+ }
+
+ CapacityPoolImpl(CapacityPoolInner inner, NetAppManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.poolName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.accountName = IdParsingUtils.getValueFromIdByName(inner.id(), "netAppAccounts");
+ this.poolName = IdParsingUtils.getValueFromIdByName(inner.id(), "capacityPools");
+ //
+ this.updateParameter = new CapacityPoolPatch();
+ }
+
+ @Override
+ public NetAppManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ PoolsInner client = this.manager().inner().pools();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.accountName, this.poolName, this.inner())
+ .map(new Func1() {
+ @Override
+ public CapacityPoolInner call(CapacityPoolInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ PoolsInner client = this.manager().inner().pools();
+ return client.updateAsync(this.resourceGroupName, this.accountName, this.poolName, this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public CapacityPoolInner call(CapacityPoolInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ PoolsInner client = this.manager().inner().pools();
+ return client.getAsync(this.resourceGroupName, this.accountName, this.poolName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.updateParameter = new CapacityPoolPatch();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String location() {
+ return this.inner().location();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String poolId() {
+ return this.inner().poolId();
+ }
+
+ @Override
+ public String provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public ServiceLevel serviceLevel() {
+ return this.inner().serviceLevel();
+ }
+
+ @Override
+ public long size() {
+ return this.inner().size();
+ }
+
+ @Override
+ public Map tags() {
+ return this.inner().getTags();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public CapacityPoolImpl withExistingNetAppAccount(String resourceGroupName, String accountName) {
+ this.resourceGroupName = resourceGroupName;
+ this.accountName = accountName;
+ return this;
+ }
+
+ @Override
+ public CapacityPoolImpl withLocation(String location) {
+ this.inner().withLocation(location);
+ return this;
+ }
+
+ @Override
+ public CapacityPoolImpl withSize(long size) {
+ this.inner().withSize(size);
+ return this;
+ }
+
+ @Override
+ public CapacityPoolImpl withSize(Long size) {
+ this.updateParameter.withSize(size);
+ return this;
+ }
+
+ @Override
+ public CapacityPoolImpl withServiceLevel(ServiceLevel serviceLevel) {
+ if (isInCreateMode()) {
+ this.inner().withServiceLevel(serviceLevel);
+ } else {
+ this.updateParameter.withServiceLevel(serviceLevel);
+ }
+ return this;
+ }
+
+ @Override
+ public CapacityPoolImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.inner().withTags(tags);
+ } else {
+ this.updateParameter.withTags(tags);
+ }
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolInner.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolInner.java
new file mode 100644
index 000000000000..743ac1884044
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/CapacityPoolInner.java
@@ -0,0 +1,108 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import com.microsoft.azure.management.netapp.v2019_10_01.ServiceLevel;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Capacity pool resource.
+ */
+@JsonFlatten
+public class CapacityPoolInner extends Resource {
+ /**
+ * poolId.
+ * UUID v4 used to identify the Pool.
+ */
+ @JsonProperty(value = "properties.poolId", access = JsonProperty.Access.WRITE_ONLY)
+ private String poolId;
+
+ /**
+ * size.
+ * Provisioned size of the pool (in bytes). Allowed values are in 4TiB
+ * chunks (value must be multiply of 4398046511104).
+ */
+ @JsonProperty(value = "properties.size", required = true)
+ private long size;
+
+ /**
+ * serviceLevel.
+ * The service level of the file system. Possible values include:
+ * 'Standard', 'Premium', 'Ultra'.
+ */
+ @JsonProperty(value = "properties.serviceLevel", required = true)
+ private ServiceLevel serviceLevel;
+
+ /**
+ * Azure lifecycle management.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get uUID v4 used to identify the Pool.
+ *
+ * @return the poolId value
+ */
+ public String poolId() {
+ return this.poolId;
+ }
+
+ /**
+ * 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 CapacityPoolInner object itself.
+ */
+ public CapacityPoolInner withSize(long size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * 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 CapacityPoolInner object itself.
+ */
+ public CapacityPoolInner withServiceLevel(ServiceLevel serviceLevel) {
+ this.serviceLevel = serviceLevel;
+ return this;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/IdParsingUtils.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..3d0693510bf1
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/IdParsingUtils.java
@@ -0,0 +1,57 @@
+/**
+ * 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.v2019_10_01.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetImpl.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetImpl.java
new file mode 100644
index 000000000000..a6f6c1843898
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetImpl.java
@@ -0,0 +1,106 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import com.microsoft.azure.management.netapp.v2019_10_01.MountTarget;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import rx.Observable;
+import java.util.Map;
+
+class MountTargetImpl extends WrapperImpl implements MountTarget {
+ private final NetAppManager manager;
+
+ MountTargetImpl(MountTargetInner inner, NetAppManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public NetAppManager manager() {
+ return this.manager;
+ }
+
+
+
+ @Override
+ public String endIp() {
+ return this.inner().endIp();
+ }
+
+ @Override
+ public String fileSystemId() {
+ return this.inner().fileSystemId();
+ }
+
+ @Override
+ public String gateway() {
+ return this.inner().gateway();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String ipAddress() {
+ return this.inner().ipAddress();
+ }
+
+ @Override
+ public String location() {
+ return this.inner().location();
+ }
+
+ @Override
+ public String mountTargetId() {
+ return this.inner().mountTargetId();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String netmask() {
+ return this.inner().netmask();
+ }
+
+ @Override
+ public String provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public String smbServerFqdn() {
+ return this.inner().smbServerFqdn();
+ }
+
+ @Override
+ public String startIp() {
+ return this.inner().startIp();
+ }
+
+ @Override
+ public String subnet() {
+ return this.inner().subnet();
+ }
+
+ @Override
+ public Map tags() {
+ return this.inner().tags();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetInner.java b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetInner.java
new file mode 100644
index 000000000000..0173b775a483
--- /dev/null
+++ b/sdk/netapp/mgmt-v2019_10_01/src/main/java/com/microsoft/azure/management/netapp/v2019_10_01/implementation/MountTargetInner.java
@@ -0,0 +1,355 @@
+/**
+ * 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.v2019_10_01.implementation;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Mount Target.
+ */
+@JsonFlatten
+public class MountTargetInner {
+ /**
+ * 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