diff --git a/netapp/resource-manager/v2019_07_01/pom.xml b/netapp/resource-manager/v2019_07_01/pom.xml
new file mode 100644
index 000000000000..868aba8885c0
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.netapp.v2019_07_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.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
+
+
+
+
+
+ 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Accounts.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Accounts.java
new file mode 100644
index 000000000000..2957a8285af3
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Accounts.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.AccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Accounts.
+ */
+public interface Accounts extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, HasInner {
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ActiveDirectory.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ActiveDirectory.java
new file mode 100644
index 000000000000..6c7e8f768a91
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_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 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 for the Active Directory domain.
+ *
+ * @return the dns value
+ */
+ public String dns() {
+ return this.dns;
+ }
+
+ /**
+ * Set comma separated list of DNS server IP addresses 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CapacityPool.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CapacityPool.java
new file mode 100644
index 000000000000..6fcd4193bee7
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.CapacityPoolInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppManager;
+import java.util.Map;
+
+/**
+ * Type representing CapacityPool.
+ */
+public interface CapacityPool extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the poolId value.
+ */
+ String poolId();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CapacityPoolPatch.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CapacityPoolPatch.java
new file mode 100644
index 000000000000..808e3b0dd40c
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Capacity pool patch resource.
+ */
+@JsonFlatten
+public class CapacityPoolPatch extends Resource {
+ /**
+ * size.
+ * Provisioned size of the pool (in bytes). Allowed values are in 4TiB
+ * chunks (value must be multiply of 4398046511104).
+ */
+ @JsonProperty(value = "properties.size")
+ private Long size;
+
+ /**
+ * 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CheckNameResourceTypes.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CheckNameResourceTypes.java
new file mode 100644
index 000000000000..ac03c233711c
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/CheckNameResourceTypes.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CheckNameResourceTypes.
+ */
+public final class CheckNameResourceTypes extends ExpandableStringEnum {
+ /** Static value Microsoft.NetApp/netAppAccounts for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTS = fromString("Microsoft.NetApp/netAppAccounts");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMES = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMESSNAPSHOTS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots");
+
+ /**
+ * Creates or finds a CheckNameResourceTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CheckNameResourceTypes
+ */
+ @JsonCreator
+ public static CheckNameResourceTypes fromString(String name) {
+ return fromString(name, CheckNameResourceTypes.class);
+ }
+
+ /**
+ * @return known CheckNameResourceTypes values
+ */
+ public static Collection values() {
+ return values(CheckNameResourceTypes.class);
+ }
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Dimension.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Dimension.java
new file mode 100644
index 000000000000..ad33765c8ade
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Dimension.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Dimension of blobs, possibly be blob type or access tier.
+ */
+public class Dimension {
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param name the name value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param displayName the displayName value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ExportPolicyRule.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ExportPolicyRule.java
new file mode 100644
index 000000000000..703b92a6cee6
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume Export Policy Rule.
+ */
+public class ExportPolicyRule {
+ /**
+ * Order index.
+ */
+ @JsonProperty(value = "ruleIndex")
+ private Integer ruleIndex;
+
+ /**
+ * Read only access.
+ */
+ @JsonProperty(value = "unixReadOnly")
+ private Boolean unixReadOnly;
+
+ /**
+ * Read and write access.
+ */
+ @JsonProperty(value = "unixReadWrite")
+ private Boolean unixReadWrite;
+
+ /**
+ * 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/InAvailabilityReasonType.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/InAvailabilityReasonType.java
new file mode 100644
index 000000000000..770964ba5de0
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/InAvailabilityReasonType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InAvailabilityReasonType.
+ */
+public final class InAvailabilityReasonType extends ExpandableStringEnum {
+ /** Static value Invalid for InAvailabilityReasonType. */
+ public static final InAvailabilityReasonType INVALID = fromString("Invalid");
+
+ /** Static value AlreadyExists for InAvailabilityReasonType. */
+ public static final InAvailabilityReasonType ALREADY_EXISTS = fromString("AlreadyExists");
+
+ /**
+ * Creates or finds a InAvailabilityReasonType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InAvailabilityReasonType
+ */
+ @JsonCreator
+ public static InAvailabilityReasonType fromString(String name) {
+ return fromString(name, InAvailabilityReasonType.class);
+ }
+
+ /**
+ * @return known InAvailabilityReasonType values
+ */
+ public static Collection values() {
+ return values(InAvailabilityReasonType.class);
+ }
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MetricSpecification.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MetricSpecification.java
new file mode 100644
index 000000000000..75d4cb5b0eb2
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MetricSpecification.java
@@ -0,0 +1,252 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metric specification of operation.
+ */
+public class MetricSpecification {
+ /**
+ * Name of metric specification.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of metric specification.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Display description of metric specification.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Unit could be Bytes or Count.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Dimensions of blobs, including blob type and access tier.
+ */
+ @JsonProperty(value = "dimensions")
+ private List dimensions;
+
+ /**
+ * Aggregation type could be Average.
+ */
+ @JsonProperty(value = "aggregationType")
+ private String aggregationType;
+
+ /**
+ * The property to decide fill gap with zero or not.
+ */
+ @JsonProperty(value = "fillGapWithZero")
+ private Boolean fillGapWithZero;
+
+ /**
+ * The category this metric specification belong to, could be Capacity.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /**
+ * Account Resource Id.
+ */
+ @JsonProperty(value = "resourceIdDimensionNameOverride")
+ private String resourceIdDimensionNameOverride;
+
+ /**
+ * Get name of metric specification.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of metric specification.
+ *
+ * @param name the name value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of metric specification.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of metric specification.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get display description of metric specification.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set display description of metric specification.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get unit could be Bytes or Count.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set unit could be Bytes or Count.
+ *
+ * @param unit the unit value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get dimensions of blobs, including blob type and access tier.
+ *
+ * @return the dimensions value
+ */
+ public List dimensions() {
+ return this.dimensions;
+ }
+
+ /**
+ * Set dimensions of blobs, including blob type and access tier.
+ *
+ * @param dimensions the dimensions value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDimensions(List dimensions) {
+ this.dimensions = dimensions;
+ return this;
+ }
+
+ /**
+ * Get aggregation type could be Average.
+ *
+ * @return the aggregationType value
+ */
+ public String aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set aggregation type could be Average.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withAggregationType(String aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get the property to decide fill gap with zero or not.
+ *
+ * @return the fillGapWithZero value
+ */
+ public Boolean fillGapWithZero() {
+ return this.fillGapWithZero;
+ }
+
+ /**
+ * Set the property to decide fill gap with zero or not.
+ *
+ * @param fillGapWithZero the fillGapWithZero value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withFillGapWithZero(Boolean fillGapWithZero) {
+ this.fillGapWithZero = fillGapWithZero;
+ return this;
+ }
+
+ /**
+ * Get the category this metric specification belong to, could be Capacity.
+ *
+ * @return the category value
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category this metric specification belong to, could be Capacity.
+ *
+ * @param category the category value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get account Resource Id.
+ *
+ * @return the resourceIdDimensionNameOverride value
+ */
+ public String resourceIdDimensionNameOverride() {
+ return this.resourceIdDimensionNameOverride;
+ }
+
+ /**
+ * Set account Resource Id.
+ *
+ * @param resourceIdDimensionNameOverride the resourceIdDimensionNameOverride value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withResourceIdDimensionNameOverride(String resourceIdDimensionNameOverride) {
+ this.resourceIdDimensionNameOverride = resourceIdDimensionNameOverride;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MountTarget.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MountTarget.java
new file mode 100644
index 000000000000..8d4b8a72ecbd
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MountTarget.java
@@ -0,0 +1,90 @@
+/**
+ * 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_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.MountTargetInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppManager;
+
+/**
+ * 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.
+ */
+ Object tags();
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MountTargets.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/MountTargets.java
new file mode 100644
index 000000000000..90a67edf0100
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccount.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccount.java
new file mode 100644
index 000000000000..62ee8bbe0cd5
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccount.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppManager;
+import java.util.List;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppAccountInner;
+
+/**
+ * Type representing NetAppAccount.
+ */
+public interface NetAppAccount extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the activeDirectories value.
+ */
+ List activeDirectories();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * The entirety of the NetAppAccount definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of NetAppAccount definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a NetAppAccount definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the NetAppAccount definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the netappaccount definition allowing to specify ActiveDirectories.
+ */
+ interface WithActiveDirectories {
+ /**
+ * Specifies activeDirectories.
+ * @param activeDirectories Active Directories
+ * @return the next definition stage
+ */
+ WithCreate withActiveDirectories(List activeDirectories);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithActiveDirectories {
+ }
+ }
+ /**
+ * The template for a NetAppAccount update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithActiveDirectories {
+ }
+
+ /**
+ * Grouping of NetAppAccount update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the netappaccount update allowing to specify ActiveDirectories.
+ */
+ interface WithActiveDirectories {
+ /**
+ * Specifies activeDirectories.
+ * @param activeDirectories Active Directories
+ * @return the next update stage
+ */
+ Update withActiveDirectories(List activeDirectories);
+ }
+
+ }
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccountPatch.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccountPatch.java
new file mode 100644
index 000000000000..56b83b1811f9
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/NetAppAccountPatch.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * NetApp account patch resource.
+ */
+@JsonFlatten
+public class NetAppAccountPatch extends Resource {
+ /**
+ * Azure lifecycle management.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Active Directories.
+ */
+ @JsonProperty(value = "properties.activeDirectories")
+ private List activeDirectories;
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get active Directories.
+ *
+ * @return the activeDirectories value
+ */
+ public List activeDirectories() {
+ return this.activeDirectories;
+ }
+
+ /**
+ * Set active Directories.
+ *
+ * @param activeDirectories the activeDirectories value to set
+ * @return the NetAppAccountPatch object itself.
+ */
+ public NetAppAccountPatch withActiveDirectories(List activeDirectories) {
+ this.activeDirectories = activeDirectories;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operation.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operation.java
new file mode 100644
index 000000000000..616ecfbe4791
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operation.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the serviceSpecification value.
+ */
+ ServiceSpecification serviceSpecification();
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/OperationDisplay.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/OperationDisplay.java
new file mode 100644
index 000000000000..cc850dab3928
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft NetApp.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Type of operation: get, read, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Operation description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft NetApp.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft NetApp.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get type of operation: get, read, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set type of operation: get, read, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get operation description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set operation description.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operations.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operations.java
new file mode 100644
index 000000000000..416cdcdbb62b
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Operations.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Describes the Resource Provider.
+ * Lists all of the available Microsoft.NetApp Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Pools.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Pools.java
new file mode 100644
index 000000000000..af8d2df4d232
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Pools.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.PoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Pools.
+ */
+public interface Pools extends SupportsCreating, HasInner {
+ /**
+ * Describe a Capacity Pool.
+ * Get details of the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * Describe all Capacity Pools.
+ * List all capacity pools in the NetApp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Delete a capacity pool.
+ * Delete the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName);
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ResourceNameAvailabilityRequest.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ResourceNameAvailabilityRequest.java
new file mode 100644
index 000000000000..763086a310db
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ResourceNameAvailabilityRequest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Resource name availability request content.
+ */
+public class ResourceNameAvailabilityRequest {
+ /**
+ * Resource name to verify.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Resource type used for verification. Possible values include:
+ * 'Microsoft.NetApp/netAppAccounts',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private CheckNameResourceTypes type;
+
+ /**
+ * Resource group name.
+ */
+ @JsonProperty(value = "resourceGroup", required = true)
+ private String resourceGroup;
+
+ /**
+ * Get resource name to verify.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set resource name to verify.
+ *
+ * @param name the name value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @return the type value
+ */
+ public CheckNameResourceTypes type() {
+ return this.type;
+ }
+
+ /**
+ * Set resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @param type the type value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withType(CheckNameResourceTypes type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get resource group name.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Set resource group name.
+ *
+ * @param resourceGroup the resourceGroup value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withResourceGroup(String resourceGroup) {
+ this.resourceGroup = resourceGroup;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceLevel.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceLevel.java
new file mode 100644
index 000000000000..6ddf39b9db8d
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceLevel.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ServiceLevel.
+ */
+public final class ServiceLevel extends ExpandableStringEnum {
+ /** Static value Standard for ServiceLevel. */
+ public static final ServiceLevel STANDARD = fromString("Standard");
+
+ /** Static value Premium for ServiceLevel. */
+ public static final ServiceLevel PREMIUM = fromString("Premium");
+
+ /** Static value Ultra for ServiceLevel. */
+ public static final ServiceLevel ULTRA = fromString("Ultra");
+
+ /**
+ * Creates or finds a ServiceLevel from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ServiceLevel
+ */
+ @JsonCreator
+ public static ServiceLevel fromString(String name) {
+ return fromString(name, ServiceLevel.class);
+ }
+
+ /**
+ * @return known ServiceLevel values
+ */
+ public static Collection values() {
+ return values(ServiceLevel.class);
+ }
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceSpecification.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceSpecification.java
new file mode 100644
index 000000000000..9d1802902c47
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/ServiceSpecification.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * One property of operation, include metric specifications.
+ */
+public class ServiceSpecification {
+ /**
+ * Metric specifications of operation.
+ */
+ @JsonProperty(value = "metricSpecifications")
+ private List metricSpecifications;
+
+ /**
+ * Get metric specifications of operation.
+ *
+ * @return the metricSpecifications value
+ */
+ public List metricSpecifications() {
+ return this.metricSpecifications;
+ }
+
+ /**
+ * Set metric specifications of operation.
+ *
+ * @param metricSpecifications the metricSpecifications value to set
+ * @return the ServiceSpecification object itself.
+ */
+ public ServiceSpecification withMetricSpecifications(List metricSpecifications) {
+ this.metricSpecifications = metricSpecifications;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Snapshot.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Snapshot.java
new file mode 100644
index 000000000000..3967339da799
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.SnapshotInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/SnapshotPatch.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/SnapshotPatch.java
new file mode 100644
index 000000000000..29b641132350
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/SnapshotPatch.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_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Snapshot patch.
+ */
+public class SnapshotPatch {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the SnapshotPatch object itself.
+ */
+ public SnapshotPatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Snapshots.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Snapshots.java
new file mode 100644
index 000000000000..8e56771107c4
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Snapshots.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.SnapshotsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Snapshots.
+ */
+public interface Snapshots extends SupportsCreating, HasInner {
+ /**
+ * Describe a snapshot.
+ * Get details of the specified snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @param volumeName The name of the volume
+ * @param snapshotName The name of the mount target
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+ /**
+ * Describe all snapshots.
+ * List all snapshots associated with the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @param volumeName The name of the volume
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete a snapshot.
+ * Delete snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @param volumeName The name of the volume
+ * @param snapshotName The name of the mount target
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volume.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volume.java
new file mode 100644
index 000000000000..44c35070043c
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volume.java
@@ -0,0 +1,324 @@
+/**
+ * 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_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.VolumeInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.NetAppManager;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing Volume.
+ */
+public interface Volume extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the baremetalTenantId value.
+ */
+ String baremetalTenantId();
+
+ /**
+ * @return the creationToken value.
+ */
+ String creationToken();
+
+ /**
+ * @return the exportPolicy value.
+ */
+ VolumePropertiesExportPolicy exportPolicy();
+
+ /**
+ * @return the fileSystemId value.
+ */
+ String fileSystemId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @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();
+
+ /**
+ * 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 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 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 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.WithExportPolicy, DefinitionStages.WithMountTargets, DefinitionStages.WithProtocolTypes, DefinitionStages.WithServiceLevel, DefinitionStages.WithSnapshotId, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePatch.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePatch.java
new file mode 100644
index 000000000000..f7d66fbd51b4
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Volume patch resource.
+ */
+@JsonFlatten
+public class VolumePatch extends Resource {
+ /**
+ * serviceLevel.
+ * The service level of the file system. Possible values include:
+ * 'Standard', 'Premium', 'Ultra'.
+ */
+ @JsonProperty(value = "properties.serviceLevel")
+ private ServiceLevel serviceLevel;
+
+ /**
+ * usageThreshold.
+ * Maximum storage quota allowed for a file system in bytes. This is a soft
+ * quota used for alerting only. Minimum size is 100 GiB. Upper limit is
+ * 100TiB. Specified in bytes.
+ */
+ @JsonProperty(value = "properties.usageThreshold")
+ private Long usageThreshold;
+
+ /**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+ @JsonProperty(value = "properties.exportPolicy")
+ private VolumePatchPropertiesExportPolicy exportPolicy;
+
+ /**
+ * 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePatchPropertiesExportPolicy.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePatchPropertiesExportPolicy.java
new file mode 100644
index 000000000000..ad3bba3ed703
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePatchPropertiesExportPolicy.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+public class VolumePatchPropertiesExportPolicy {
+ /**
+ * Export policy rule.
+ * Export policy rule.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get export policy rule.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set export policy rule.
+ *
+ * @param rules the rules value to set
+ * @return the VolumePatchPropertiesExportPolicy object itself.
+ */
+ public VolumePatchPropertiesExportPolicy withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePropertiesExportPolicy.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePropertiesExportPolicy.java
new file mode 100644
index 000000000000..3f967d2d3017
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/VolumePropertiesExportPolicy.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+public class VolumePropertiesExportPolicy {
+ /**
+ * Export policy rule.
+ * Export policy rule.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get export policy rule.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set export policy rule.
+ *
+ * @param rules the rules value to set
+ * @return the VolumePropertiesExportPolicy object itself.
+ */
+ public VolumePropertiesExportPolicy withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volumes.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volumes.java
new file mode 100644
index 000000000000..1b414cf5c815
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/Volumes.java
@@ -0,0 +1,59 @@
+/**
+ * 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_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_01.implementation.VolumesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Volumes.
+ */
+public interface Volumes extends SupportsCreating, HasInner {
+ /**
+ * 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);
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AccountsImpl.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AccountsImpl.java
new file mode 100644
index 000000000000..900f3c9319ef
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AccountsImpl.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * def
+ */
+
+package com.microsoft.azure.management.netapp.v2019_07_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.netapp.v2019_07_01.Accounts;
+import com.microsoft.azure.management.netapp.v2019_07_01.NetAppAccount;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+
+class AccountsImpl extends GroupableResourcesCoreImpl implements Accounts {
+ protected AccountsImpl(NetAppManager manager) {
+ super(manager.inner().accounts(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ AccountsInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ AccountsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> 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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AccountsInner.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AccountsInner.java
new file mode 100644
index 000000000000..3401988f0679
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_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_07_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_07_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_07_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_07_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_07_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_07_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_07_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_07_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/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AzureNetAppFilesManagementClientImpl.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AzureNetAppFilesManagementClientImpl.java
new file mode 100644
index 000000000000..cd31b4282cd2
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/AzureNetAppFilesManagementClientImpl.java
@@ -0,0 +1,523 @@
+/**
+ * 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_07_01.implementation;
+
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.management.netapp.v2019_07_01.CheckNameResourceTypes;
+import com.microsoft.azure.management.netapp.v2019_07_01.ResourceNameAvailabilityRequest;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * Initializes a new instance of the AzureNetAppFilesManagementClientImpl class.
+ */
+public class AzureNetAppFilesManagementClientImpl extends AzureServiceClient {
+ /** The Retrofit service to perform REST calls. */
+ private AzureNetAppFilesManagementClientService service;
+ /** 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 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-07-01";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.operations = new OperationsInner(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);
+ initializeService();
+ }
+
+ /**
+ * 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-07-01");
+ }
+
+ private void initializeService() {
+ service = restClient().retrofit().create(AzureNetAppFilesManagementClientService.class);
+ }
+
+ /**
+ * The interface defining all the services for AzureNetAppFilesManagementClient to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AzureNetAppFilesManagementClientService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2019_07_01.AzureNetAppFilesManagementClient checkNameAvailability" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability")
+ Observable> checkNameAvailability(@Path("subscriptionId") String subscriptionId, @Path("location") String location, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body ResourceNameAvailabilityRequest body, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2019_07_01.AzureNetAppFilesManagementClient checkFilePathAvailability" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability")
+ Observable> checkFilePathAvailability(@Path("subscriptionId") String subscriptionId, @Path("location") String location, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body ResourceNameAvailabilityRequest body, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * 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
+ * @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 ResourceNameAvailabilityInner object if successful.
+ */
+ public ResourceNameAvailabilityInner checkNameAvailability(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ return checkNameAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup).toBlocking().single().body();
+ }
+
+ /**
+ * 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.
+ * @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 checkNameAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(checkNameAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup), serviceCallback);
+ }
+
+ /**
+ * 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 to the ResourceNameAvailabilityInner object
+ */
+ public Observable checkNameAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ return checkNameAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup).map(new Func1, ResourceNameAvailabilityInner>() {
+ @Override
+ public ResourceNameAvailabilityInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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 to the ResourceNameAvailabilityInner object
+ */
+ public Observable> checkNameAvailabilityWithServiceResponseAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ if (this.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.subscriptionId() is required and cannot be null.");
+ }
+ if (location == null) {
+ throw new IllegalArgumentException("Parameter location is required and cannot be null.");
+ }
+ if (this.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.apiVersion() is required and cannot be null.");
+ }
+ if (name == null) {
+ throw new IllegalArgumentException("Parameter name is required and cannot be null.");
+ }
+ if (type == null) {
+ throw new IllegalArgumentException("Parameter type is required and cannot be null.");
+ }
+ if (resourceGroup == null) {
+ throw new IllegalArgumentException("Parameter resourceGroup is required and cannot be null.");
+ }
+ ResourceNameAvailabilityRequest body = new ResourceNameAvailabilityRequest();
+ body.withName(name);
+ body.withType(type);
+ body.withResourceGroup(resourceGroup);
+ return service.checkNameAvailability(this.subscriptionId(), location, this.apiVersion(), this.acceptLanguage(), body, this.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = checkNameAvailabilityDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse checkNameAvailabilityDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.restClient().responseBuilderFactory().newInstance(this.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * 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
+ * @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 ResourceNameAvailabilityInner object if successful.
+ */
+ public ResourceNameAvailabilityInner checkFilePathAvailability(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ return checkFilePathAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup).toBlocking().single().body();
+ }
+
+ /**
+ * 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.
+ * @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 checkFilePathAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(checkFilePathAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup), serviceCallback);
+ }
+
+ /**
+ * 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 to the ResourceNameAvailabilityInner object
+ */
+ public Observable checkFilePathAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ return checkFilePathAvailabilityWithServiceResponseAsync(location, name, type, resourceGroup).map(new Func1, ResourceNameAvailabilityInner>() {
+ @Override
+ public ResourceNameAvailabilityInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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 to the ResourceNameAvailabilityInner object
+ */
+ public Observable> checkFilePathAvailabilityWithServiceResponseAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup) {
+ if (this.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.subscriptionId() is required and cannot be null.");
+ }
+ if (location == null) {
+ throw new IllegalArgumentException("Parameter location is required and cannot be null.");
+ }
+ if (this.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.apiVersion() is required and cannot be null.");
+ }
+ if (name == null) {
+ throw new IllegalArgumentException("Parameter name is required and cannot be null.");
+ }
+ if (type == null) {
+ throw new IllegalArgumentException("Parameter type is required and cannot be null.");
+ }
+ if (resourceGroup == null) {
+ throw new IllegalArgumentException("Parameter resourceGroup is required and cannot be null.");
+ }
+ ResourceNameAvailabilityRequest body = new ResourceNameAvailabilityRequest();
+ body.withName(name);
+ body.withType(type);
+ body.withResourceGroup(resourceGroup);
+ return service.checkFilePathAvailability(this.subscriptionId(), location, this.apiVersion(), this.acceptLanguage(), body, this.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = checkFilePathAvailabilityDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse checkFilePathAvailabilityDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.restClient().responseBuilderFactory().newInstance(this.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/CapacityPoolImpl.java b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_01/implementation/CapacityPoolImpl.java
new file mode 100644
index 000000000000..81f5891b0975
--- /dev/null
+++ b/netapp/resource-manager/v2019_07_01/src/main/java/com/microsoft/azure/management/netapp/v2019_07_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_07_01.implementation;
+
+import com.microsoft.azure.management.netapp.v2019_07_01.CapacityPool;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2019_07_01.CapacityPoolPatch;
+import com.microsoft.azure.management.netapp.v2019_07_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