diff --git a/sdk/storage/mgmt-v2019_08_01_preview/pom.xml b/sdk/storage/mgmt-v2019_08_01_preview/pom.xml
new file mode 100644
index 0000000000000..0e367cbc089d8
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.storage.v2019_08_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-storage
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Storage Management
+ This package contains Microsoft Storage Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccessTier.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccessTier.java
new file mode 100644
index 0000000000000..0c169440ff984
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccessTier.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AccessTier.
+ */
+public enum AccessTier {
+ /** Enum value Hot. */
+ HOT("Hot"),
+
+ /** Enum value Cool. */
+ COOL("Cool");
+
+ /** The actual serialized value for a AccessTier instance. */
+ private String value;
+
+ AccessTier(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AccessTier instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AccessTier object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AccessTier fromString(String value) {
+ AccessTier[] items = AccessTier.values();
+ for (AccessTier item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountSasParameters.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountSasParameters.java
new file mode 100644
index 0000000000000..ba53764be066a
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountSasParameters.java
@@ -0,0 +1,236 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters to list SAS credentials of a storage account.
+ */
+public class AccountSasParameters {
+ /**
+ * The signed services accessible with the account SAS. Possible values
+ * include: Blob (b), Queue (q), Table (t), File (f). Possible values
+ * include: 'b', 'q', 't', 'f'.
+ */
+ @JsonProperty(value = "signedServices", required = true)
+ private Services services;
+
+ /**
+ * The signed resource types that are accessible with the account SAS.
+ * Service (s): Access to service-level APIs; Container (c): Access to
+ * container-level APIs; Object (o): Access to object-level APIs for blobs,
+ * queue messages, table entities, and files. Possible values include: 's',
+ * 'c', 'o'.
+ */
+ @JsonProperty(value = "signedResourceTypes", required = true)
+ private SignedResourceTypes resourceTypes;
+
+ /**
+ * The signed permissions for the account SAS. Possible values include:
+ * Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update
+ * (u) and Process (p). Possible values include: 'r', 'd', 'w', 'l', 'a',
+ * 'c', 'u', 'p'.
+ */
+ @JsonProperty(value = "signedPermission", required = true)
+ private Permissions permissions;
+
+ /**
+ * An IP address or a range of IP addresses from which to accept requests.
+ */
+ @JsonProperty(value = "signedIp")
+ private String iPAddressOrRange;
+
+ /**
+ * The protocol permitted for a request made with the account SAS. Possible
+ * values include: 'https,http', 'https'.
+ */
+ @JsonProperty(value = "signedProtocol")
+ private HttpProtocol protocols;
+
+ /**
+ * The time at which the SAS becomes valid.
+ */
+ @JsonProperty(value = "signedStart")
+ private DateTime sharedAccessStartTime;
+
+ /**
+ * The time at which the shared access signature becomes invalid.
+ */
+ @JsonProperty(value = "signedExpiry", required = true)
+ private DateTime sharedAccessExpiryTime;
+
+ /**
+ * The key to sign the account SAS token with.
+ */
+ @JsonProperty(value = "keyToSign")
+ private String keyToSign;
+
+ /**
+ * Get the signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). Possible values include: 'b', 'q', 't', 'f'.
+ *
+ * @return the services value
+ */
+ public Services services() {
+ return this.services;
+ }
+
+ /**
+ * Set the signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). Possible values include: 'b', 'q', 't', 'f'.
+ *
+ * @param services the services value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withServices(Services services) {
+ this.services = services;
+ return this;
+ }
+
+ /**
+ * Get the signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files. Possible values include: 's', 'c', 'o'.
+ *
+ * @return the resourceTypes value
+ */
+ public SignedResourceTypes resourceTypes() {
+ return this.resourceTypes;
+ }
+
+ /**
+ * Set the signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files. Possible values include: 's', 'c', 'o'.
+ *
+ * @param resourceTypes the resourceTypes value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withResourceTypes(SignedResourceTypes resourceTypes) {
+ this.resourceTypes = resourceTypes;
+ return this;
+ }
+
+ /**
+ * Get the signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). Possible values include: 'r', 'd', 'w', 'l', 'a', 'c', 'u', 'p'.
+ *
+ * @return the permissions value
+ */
+ public Permissions permissions() {
+ return this.permissions;
+ }
+
+ /**
+ * Set the signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). Possible values include: 'r', 'd', 'w', 'l', 'a', 'c', 'u', 'p'.
+ *
+ * @param permissions the permissions value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withPermissions(Permissions permissions) {
+ this.permissions = permissions;
+ return this;
+ }
+
+ /**
+ * Get an IP address or a range of IP addresses from which to accept requests.
+ *
+ * @return the iPAddressOrRange value
+ */
+ public String iPAddressOrRange() {
+ return this.iPAddressOrRange;
+ }
+
+ /**
+ * Set an IP address or a range of IP addresses from which to accept requests.
+ *
+ * @param iPAddressOrRange the iPAddressOrRange value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withIPAddressOrRange(String iPAddressOrRange) {
+ this.iPAddressOrRange = iPAddressOrRange;
+ return this;
+ }
+
+ /**
+ * Get the protocol permitted for a request made with the account SAS. Possible values include: 'https,http', 'https'.
+ *
+ * @return the protocols value
+ */
+ public HttpProtocol protocols() {
+ return this.protocols;
+ }
+
+ /**
+ * Set the protocol permitted for a request made with the account SAS. Possible values include: 'https,http', 'https'.
+ *
+ * @param protocols the protocols value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withProtocols(HttpProtocol protocols) {
+ this.protocols = protocols;
+ return this;
+ }
+
+ /**
+ * Get the time at which the SAS becomes valid.
+ *
+ * @return the sharedAccessStartTime value
+ */
+ public DateTime sharedAccessStartTime() {
+ return this.sharedAccessStartTime;
+ }
+
+ /**
+ * Set the time at which the SAS becomes valid.
+ *
+ * @param sharedAccessStartTime the sharedAccessStartTime value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withSharedAccessStartTime(DateTime sharedAccessStartTime) {
+ this.sharedAccessStartTime = sharedAccessStartTime;
+ return this;
+ }
+
+ /**
+ * Get the time at which the shared access signature becomes invalid.
+ *
+ * @return the sharedAccessExpiryTime value
+ */
+ public DateTime sharedAccessExpiryTime() {
+ return this.sharedAccessExpiryTime;
+ }
+
+ /**
+ * Set the time at which the shared access signature becomes invalid.
+ *
+ * @param sharedAccessExpiryTime the sharedAccessExpiryTime value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withSharedAccessExpiryTime(DateTime sharedAccessExpiryTime) {
+ this.sharedAccessExpiryTime = sharedAccessExpiryTime;
+ return this;
+ }
+
+ /**
+ * Get the key to sign the account SAS token with.
+ *
+ * @return the keyToSign value
+ */
+ public String keyToSign() {
+ return this.keyToSign;
+ }
+
+ /**
+ * Set the key to sign the account SAS token with.
+ *
+ * @param keyToSign the keyToSign value to set
+ * @return the AccountSasParameters object itself.
+ */
+ public AccountSasParameters withKeyToSign(String keyToSign) {
+ this.keyToSign = keyToSign;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountStatus.java
new file mode 100644
index 0000000000000..28fbdfe8538de
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AccountStatus.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AccountStatus.
+ */
+public enum AccountStatus {
+ /** Enum value available. */
+ AVAILABLE("available"),
+
+ /** Enum value unavailable. */
+ UNAVAILABLE("unavailable");
+
+ /** The actual serialized value for a AccountStatus instance. */
+ private String value;
+
+ AccountStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AccountStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AccountStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AccountStatus fromString(String value) {
+ AccountStatus[] items = AccountStatus.values();
+ for (AccountStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Action.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Action.java
new file mode 100644
index 0000000000000..6a29420705a3e
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Action.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for Action.
+ */
+public enum Action {
+ /** Enum value Allow. */
+ ALLOW("Allow");
+
+ /** The actual serialized value for a Action instance. */
+ private String value;
+
+ Action(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a Action instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed Action object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static Action fromString(String value) {
+ Action[] items = Action.values();
+ for (Action item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ActiveDirectoryProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ActiveDirectoryProperties.java
new file mode 100644
index 0000000000000..952331e603d5e
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ActiveDirectoryProperties.java
@@ -0,0 +1,174 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Settings properties for Active Directory (AD).
+ */
+public class ActiveDirectoryProperties {
+ /**
+ * Specifies the primary domain that the AD DNS server is authoritative
+ * for.
+ */
+ @JsonProperty(value = "domainName", required = true)
+ private String domainName;
+
+ /**
+ * Specifies the NetBIOS domain name.
+ */
+ @JsonProperty(value = "netBiosDomainName", required = true)
+ private String netBiosDomainName;
+
+ /**
+ * Specifies the Active Directory forest to get.
+ */
+ @JsonProperty(value = "forestName", required = true)
+ private String forestName;
+
+ /**
+ * Specifies the domain GUID.
+ */
+ @JsonProperty(value = "domainGuid", required = true)
+ private String domainGuid;
+
+ /**
+ * Specifies the security identifier (SID).
+ */
+ @JsonProperty(value = "domainSid", required = true)
+ private String domainSid;
+
+ /**
+ * Specifies the security identifier (SID) for Azure Storage.
+ */
+ @JsonProperty(value = "azureStorageSid", required = true)
+ private String azureStorageSid;
+
+ /**
+ * Get specifies the primary domain that the AD DNS server is authoritative for.
+ *
+ * @return the domainName value
+ */
+ public String domainName() {
+ return this.domainName;
+ }
+
+ /**
+ * Set specifies the primary domain that the AD DNS server is authoritative for.
+ *
+ * @param domainName the domainName value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withDomainName(String domainName) {
+ this.domainName = domainName;
+ return this;
+ }
+
+ /**
+ * Get specifies the NetBIOS domain name.
+ *
+ * @return the netBiosDomainName value
+ */
+ public String netBiosDomainName() {
+ return this.netBiosDomainName;
+ }
+
+ /**
+ * Set specifies the NetBIOS domain name.
+ *
+ * @param netBiosDomainName the netBiosDomainName value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withNetBiosDomainName(String netBiosDomainName) {
+ this.netBiosDomainName = netBiosDomainName;
+ return this;
+ }
+
+ /**
+ * Get specifies the Active Directory forest to get.
+ *
+ * @return the forestName value
+ */
+ public String forestName() {
+ return this.forestName;
+ }
+
+ /**
+ * Set specifies the Active Directory forest to get.
+ *
+ * @param forestName the forestName value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withForestName(String forestName) {
+ this.forestName = forestName;
+ return this;
+ }
+
+ /**
+ * Get specifies the domain GUID.
+ *
+ * @return the domainGuid value
+ */
+ public String domainGuid() {
+ return this.domainGuid;
+ }
+
+ /**
+ * Set specifies the domain GUID.
+ *
+ * @param domainGuid the domainGuid value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withDomainGuid(String domainGuid) {
+ this.domainGuid = domainGuid;
+ return this;
+ }
+
+ /**
+ * Get specifies the security identifier (SID).
+ *
+ * @return the domainSid value
+ */
+ public String domainSid() {
+ return this.domainSid;
+ }
+
+ /**
+ * Set specifies the security identifier (SID).
+ *
+ * @param domainSid the domainSid value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withDomainSid(String domainSid) {
+ this.domainSid = domainSid;
+ return this;
+ }
+
+ /**
+ * Get specifies the security identifier (SID) for Azure Storage.
+ *
+ * @return the azureStorageSid value
+ */
+ public String azureStorageSid() {
+ return this.azureStorageSid;
+ }
+
+ /**
+ * Set specifies the security identifier (SID) for Azure Storage.
+ *
+ * @param azureStorageSid the azureStorageSid value to set
+ * @return the ActiveDirectoryProperties object itself.
+ */
+ public ActiveDirectoryProperties withAzureStorageSid(String azureStorageSid) {
+ this.azureStorageSid = azureStorageSid;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureEntityResource.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureEntityResource.java
new file mode 100644
index 0000000000000..24ef236955934
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureEntityResource.java
@@ -0,0 +1,34 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a Azure Resource Manager resource with an
+ * etag.
+ */
+public class AzureEntityResource extends ProxyResource {
+ /**
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get resource Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureFilesIdentityBasedAuthentication.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureFilesIdentityBasedAuthentication.java
new file mode 100644
index 0000000000000..067f070d73203
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/AzureFilesIdentityBasedAuthentication.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Settings for Azure Files identity based authentication.
+ */
+public class AzureFilesIdentityBasedAuthentication {
+ /**
+ * Indicates the directory service used. Possible values include: 'None',
+ * 'AADDS', 'AD'.
+ */
+ @JsonProperty(value = "directoryServiceOptions", required = true)
+ private DirectoryServiceOptions directoryServiceOptions;
+
+ /**
+ * Required if choose AD.
+ */
+ @JsonProperty(value = "activeDirectoryProperties")
+ private ActiveDirectoryProperties activeDirectoryProperties;
+
+ /**
+ * Get indicates the directory service used. Possible values include: 'None', 'AADDS', 'AD'.
+ *
+ * @return the directoryServiceOptions value
+ */
+ public DirectoryServiceOptions directoryServiceOptions() {
+ return this.directoryServiceOptions;
+ }
+
+ /**
+ * Set indicates the directory service used. Possible values include: 'None', 'AADDS', 'AD'.
+ *
+ * @param directoryServiceOptions the directoryServiceOptions value to set
+ * @return the AzureFilesIdentityBasedAuthentication object itself.
+ */
+ public AzureFilesIdentityBasedAuthentication withDirectoryServiceOptions(DirectoryServiceOptions directoryServiceOptions) {
+ this.directoryServiceOptions = directoryServiceOptions;
+ return this;
+ }
+
+ /**
+ * Get required if choose AD.
+ *
+ * @return the activeDirectoryProperties value
+ */
+ public ActiveDirectoryProperties activeDirectoryProperties() {
+ return this.activeDirectoryProperties;
+ }
+
+ /**
+ * Set required if choose AD.
+ *
+ * @param activeDirectoryProperties the activeDirectoryProperties value to set
+ * @return the AzureFilesIdentityBasedAuthentication object itself.
+ */
+ public AzureFilesIdentityBasedAuthentication withActiveDirectoryProperties(ActiveDirectoryProperties activeDirectoryProperties) {
+ this.activeDirectoryProperties = activeDirectoryProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainer.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainer.java
new file mode 100644
index 0000000000000..d9ae899a522cf
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainer.java
@@ -0,0 +1,270 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.BlobContainerInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing BlobContainer.
+ */
+public interface BlobContainer extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the defaultEncryptionScope value.
+ */
+ String defaultEncryptionScope();
+
+ /**
+ * @return the deleted value.
+ */
+ Boolean deleted();
+
+ /**
+ * @return the deletedTime value.
+ */
+ DateTime deletedTime();
+
+ /**
+ * @return the denyEncryptionScopeOverride value.
+ */
+ Boolean denyEncryptionScopeOverride();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the hasImmutabilityPolicy value.
+ */
+ Boolean hasImmutabilityPolicy();
+
+ /**
+ * @return the hasLegalHold value.
+ */
+ Boolean hasLegalHold();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the immutabilityPolicy value.
+ */
+ ImmutabilityPolicyProperties immutabilityPolicy();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the leaseDuration value.
+ */
+ LeaseDuration leaseDuration();
+
+ /**
+ * @return the leaseState value.
+ */
+ LeaseState leaseState();
+
+ /**
+ * @return the leaseStatus value.
+ */
+ LeaseStatus leaseStatus();
+
+ /**
+ * @return the legalHold value.
+ */
+ LegalHoldProperties legalHold();
+
+ /**
+ * @return the metadata value.
+ */
+ Map metadata();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the publicAccess value.
+ */
+ PublicAccess publicAccess();
+
+ /**
+ * @return the remainingRetentionDays value.
+ */
+ Integer remainingRetentionDays();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the version value.
+ */
+ String version();
+
+ /**
+ * The entirety of the BlobContainer definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithBlobService, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BlobContainer definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BlobContainer definition.
+ */
+ interface Blank extends WithBlobService {
+ }
+
+ /**
+ * The stage of the blobcontainer definition allowing to specify BlobService.
+ */
+ interface WithBlobService {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCreate withExistingBlobService(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the blobcontainer definition allowing to specify DefaultEncryptionScope.
+ */
+ interface WithDefaultEncryptionScope {
+ /**
+ * Specifies defaultEncryptionScope.
+ * @param defaultEncryptionScope Default the container to use specified encryption scope for all writes
+ * @return the next definition stage
+ */
+ WithCreate withDefaultEncryptionScope(String defaultEncryptionScope);
+ }
+
+ /**
+ * The stage of the blobcontainer definition allowing to specify DenyEncryptionScopeOverride.
+ */
+ interface WithDenyEncryptionScopeOverride {
+ /**
+ * Specifies denyEncryptionScopeOverride.
+ * @param denyEncryptionScopeOverride Block override of encryption scope from the container default
+ * @return the next definition stage
+ */
+ WithCreate withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride);
+ }
+
+ /**
+ * The stage of the blobcontainer definition allowing to specify Metadata.
+ */
+ interface WithMetadata {
+ /**
+ * Specifies metadata.
+ * @param metadata A name-value pair to associate with the container as metadata
+ * @return the next definition stage
+ */
+ WithCreate withMetadata(Map metadata);
+ }
+
+ /**
+ * The stage of the blobcontainer definition allowing to specify PublicAccess.
+ */
+ interface WithPublicAccess {
+ /**
+ * Specifies publicAccess.
+ * @param publicAccess Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'Container', 'Blob', 'None'
+ * @return the next definition stage
+ */
+ WithCreate withPublicAccess(PublicAccess publicAccess);
+ }
+
+ /**
+ * 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.WithDefaultEncryptionScope, DefinitionStages.WithDenyEncryptionScopeOverride, DefinitionStages.WithMetadata, DefinitionStages.WithPublicAccess {
+ }
+ }
+ /**
+ * The template for a BlobContainer update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDefaultEncryptionScope, UpdateStages.WithDenyEncryptionScopeOverride, UpdateStages.WithMetadata, UpdateStages.WithPublicAccess {
+ }
+
+ /**
+ * Grouping of BlobContainer update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the blobcontainer update allowing to specify DefaultEncryptionScope.
+ */
+ interface WithDefaultEncryptionScope {
+ /**
+ * Specifies defaultEncryptionScope.
+ * @param defaultEncryptionScope Default the container to use specified encryption scope for all writes
+ * @return the next update stage
+ */
+ Update withDefaultEncryptionScope(String defaultEncryptionScope);
+ }
+
+ /**
+ * The stage of the blobcontainer update allowing to specify DenyEncryptionScopeOverride.
+ */
+ interface WithDenyEncryptionScopeOverride {
+ /**
+ * Specifies denyEncryptionScopeOverride.
+ * @param denyEncryptionScopeOverride Block override of encryption scope from the container default
+ * @return the next update stage
+ */
+ Update withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride);
+ }
+
+ /**
+ * The stage of the blobcontainer update allowing to specify Metadata.
+ */
+ interface WithMetadata {
+ /**
+ * Specifies metadata.
+ * @param metadata A name-value pair to associate with the container as metadata
+ * @return the next update stage
+ */
+ Update withMetadata(Map metadata);
+ }
+
+ /**
+ * The stage of the blobcontainer update allowing to specify PublicAccess.
+ */
+ interface WithPublicAccess {
+ /**
+ * Specifies publicAccess.
+ * @param publicAccess Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'Container', 'Blob', 'None'
+ * @return the next update stage
+ */
+ Update withPublicAccess(PublicAccess publicAccess);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainers.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainers.java
new file mode 100644
index 0000000000000..6729492d4c2d0
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainers.java
@@ -0,0 +1,147 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import rx.Completable;
+import rx.Observable;
+import java.util.List;
+
+/**
+ * Type representing BlobContainers.
+ */
+public interface BlobContainers {
+ /**
+ * Begins definition for a new Container resource.
+ * @param name resource name.
+ * @return the first stage of the new Container definition.
+ */
+ BlobContainer.DefinitionStages.Blank defineContainer(String name);
+
+ /**
+ * Begins definition for a new ImmutabilityPolicy resource.
+ * @param name resource name.
+ * @return the first stage of the new ImmutabilityPolicy definition.
+ */
+ ImmutabilityPolicy.DefinitionStages.Blank defineImmutabilityPolicy(String name);
+
+ /**
+ * Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String accountName);
+
+ /**
+ * Gets properties of a specified container.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * Deletes specified container under its account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * Sets legal hold tags. Setting the same tag results in an idempotent operation. SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param tags Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable setLegalHoldAsync(String resourceGroupName, String accountName, String containerName, List tags);
+
+ /**
+ * Clears legal hold tags. Clearing the same or non-existent tag results in an idempotent operation. ClearLegalHold clears out only the specified tags in the request.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param tags Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable clearLegalHoldAsync(String resourceGroupName, String accountName, String containerName, List tags);
+
+ /**
+ * The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable leaseAsync(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * Gets the existing immutability policy along with the corresponding ETag in response headers and body.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getImmutabilityPolicyAsync(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * Aborts an unlocked immutability policy. The response of delete has immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is required for this operation. Deleting a locked immutability policy is not allowed, the only way is to delete the container after deleting all expired blobs inside the policy locked container.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param ifMatch The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteImmutabilityPolicyAsync(String resourceGroupName, String accountName, String containerName, String ifMatch);
+
+ /**
+ * Sets the ImmutabilityPolicy to Locked state. The only action allowed on a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is required for this operation.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param ifMatch The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable lockImmutabilityPolicyAsync(String resourceGroupName, String accountName, String containerName, String ifMatch);
+
+ /**
+ * Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy. The only action allowed on a Locked policy will be this action. ETag in If-Match is required for this operation.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param ifMatch The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable extendImmutabilityPolicyAsync(String resourceGroupName, String accountName, String containerName, String ifMatch);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersCreateOrUpdateImmutabilityPolicyHeaders.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersCreateOrUpdateImmutabilityPolicyHeaders.java
new file mode 100644
index 0000000000000..f7f7a034c3b46
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersCreateOrUpdateImmutabilityPolicyHeaders.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdateImmutabilityPolicy operation.
+ */
+public class BlobContainersCreateOrUpdateImmutabilityPolicyHeaders {
+ /**
+ * The ETag HTTP response header. This is an opaque string. You can use it
+ * to detect whether the resource has changed between requests. In
+ * particular, you can pass the ETag to one of the If-Match or
+ * If-None-Match headers.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @param eTag the eTag value to set
+ * @return the BlobContainersCreateOrUpdateImmutabilityPolicyHeaders object itself.
+ */
+ public BlobContainersCreateOrUpdateImmutabilityPolicyHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersDeleteImmutabilityPolicyHeaders.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersDeleteImmutabilityPolicyHeaders.java
new file mode 100644
index 0000000000000..10ef7f5c14503
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersDeleteImmutabilityPolicyHeaders.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for DeleteImmutabilityPolicy operation.
+ */
+public class BlobContainersDeleteImmutabilityPolicyHeaders {
+ /**
+ * The ETag HTTP response header. This is an opaque string. You can use it
+ * to detect whether the resource has changed between requests. In
+ * particular, you can pass the ETag to one of the If-Match or
+ * If-None-Match headers.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @param eTag the eTag value to set
+ * @return the BlobContainersDeleteImmutabilityPolicyHeaders object itself.
+ */
+ public BlobContainersDeleteImmutabilityPolicyHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersExtendImmutabilityPolicyHeaders.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersExtendImmutabilityPolicyHeaders.java
new file mode 100644
index 0000000000000..7615a64571ca6
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersExtendImmutabilityPolicyHeaders.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for ExtendImmutabilityPolicy operation.
+ */
+public class BlobContainersExtendImmutabilityPolicyHeaders {
+ /**
+ * The ETag HTTP response header. This is an opaque string. You can use it
+ * to detect whether the resource has changed between requests. In
+ * particular, you can pass the ETag to one of the If-Match or
+ * If-None-Match headers.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @param eTag the eTag value to set
+ * @return the BlobContainersExtendImmutabilityPolicyHeaders object itself.
+ */
+ public BlobContainersExtendImmutabilityPolicyHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersGetImmutabilityPolicyHeaders.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersGetImmutabilityPolicyHeaders.java
new file mode 100644
index 0000000000000..54d986f6217d1
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersGetImmutabilityPolicyHeaders.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetImmutabilityPolicy operation.
+ */
+public class BlobContainersGetImmutabilityPolicyHeaders {
+ /**
+ * The ETag HTTP response header. This is an opaque string. You can use it
+ * to detect whether the resource has changed between requests. In
+ * particular, you can pass the ETag to one of the If-Match or
+ * If-None-Match headers.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @param eTag the eTag value to set
+ * @return the BlobContainersGetImmutabilityPolicyHeaders object itself.
+ */
+ public BlobContainersGetImmutabilityPolicyHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersLockImmutabilityPolicyHeaders.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersLockImmutabilityPolicyHeaders.java
new file mode 100644
index 0000000000000..cfc5d63509fd0
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobContainersLockImmutabilityPolicyHeaders.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for LockImmutabilityPolicy operation.
+ */
+public class BlobContainersLockImmutabilityPolicyHeaders {
+ /**
+ * The ETag HTTP response header. This is an opaque string. You can use it
+ * to detect whether the resource has changed between requests. In
+ * particular, you can pass the ETag to one of the If-Match or
+ * If-None-Match headers.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set the ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
+ *
+ * @param eTag the eTag value to set
+ * @return the BlobContainersLockImmutabilityPolicyHeaders object itself.
+ */
+ public BlobContainersLockImmutabilityPolicyHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreParameters.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreParameters.java
new file mode 100644
index 0000000000000..63a093c795213
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreParameters.java
@@ -0,0 +1,71 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Blob restore parameters.
+ */
+public class BlobRestoreParameters {
+ /**
+ * Restore blob to the specified time.
+ */
+ @JsonProperty(value = "timeToRestore", required = true)
+ private DateTime timeToRestore;
+
+ /**
+ * Blob ranges to restore.
+ */
+ @JsonProperty(value = "blobRanges", required = true)
+ private List blobRanges;
+
+ /**
+ * Get restore blob to the specified time.
+ *
+ * @return the timeToRestore value
+ */
+ public DateTime timeToRestore() {
+ return this.timeToRestore;
+ }
+
+ /**
+ * Set restore blob to the specified time.
+ *
+ * @param timeToRestore the timeToRestore value to set
+ * @return the BlobRestoreParameters object itself.
+ */
+ public BlobRestoreParameters withTimeToRestore(DateTime timeToRestore) {
+ this.timeToRestore = timeToRestore;
+ return this;
+ }
+
+ /**
+ * Get blob ranges to restore.
+ *
+ * @return the blobRanges value
+ */
+ public List blobRanges() {
+ return this.blobRanges;
+ }
+
+ /**
+ * Set blob ranges to restore.
+ *
+ * @param blobRanges the blobRanges value to set
+ * @return the BlobRestoreParameters object itself.
+ */
+ public BlobRestoreParameters withBlobRanges(List blobRanges) {
+ this.blobRanges = blobRanges;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreProgressStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreProgressStatus.java
new file mode 100644
index 0000000000000..55277442b94fc
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreProgressStatus.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BlobRestoreProgressStatus.
+ */
+public final class BlobRestoreProgressStatus extends ExpandableStringEnum {
+ /** Static value InProgress for BlobRestoreProgressStatus. */
+ public static final BlobRestoreProgressStatus IN_PROGRESS = fromString("InProgress");
+
+ /** Static value Complete for BlobRestoreProgressStatus. */
+ public static final BlobRestoreProgressStatus COMPLETE = fromString("Complete");
+
+ /** Static value Failed for BlobRestoreProgressStatus. */
+ public static final BlobRestoreProgressStatus FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a BlobRestoreProgressStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BlobRestoreProgressStatus
+ */
+ @JsonCreator
+ public static BlobRestoreProgressStatus fromString(String name) {
+ return fromString(name, BlobRestoreProgressStatus.class);
+ }
+
+ /**
+ * @return known BlobRestoreProgressStatus values
+ */
+ public static Collection values() {
+ return values(BlobRestoreProgressStatus.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreRange.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreRange.java
new file mode 100644
index 0000000000000..a8452d65ac515
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreRange.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Blob range.
+ */
+public class BlobRestoreRange {
+ /**
+ * Blob start range. This is inclusive. Empty means account start.
+ */
+ @JsonProperty(value = "startRange", required = true)
+ private String startRange;
+
+ /**
+ * Blob end range. This is exclusive. Empty means account end.
+ */
+ @JsonProperty(value = "endRange", required = true)
+ private String endRange;
+
+ /**
+ * Get blob start range. This is inclusive. Empty means account start.
+ *
+ * @return the startRange value
+ */
+ public String startRange() {
+ return this.startRange;
+ }
+
+ /**
+ * Set blob start range. This is inclusive. Empty means account start.
+ *
+ * @param startRange the startRange value to set
+ * @return the BlobRestoreRange object itself.
+ */
+ public BlobRestoreRange withStartRange(String startRange) {
+ this.startRange = startRange;
+ return this;
+ }
+
+ /**
+ * Get blob end range. This is exclusive. Empty means account end.
+ *
+ * @return the endRange value
+ */
+ public String endRange() {
+ return this.endRange;
+ }
+
+ /**
+ * Set blob end range. This is exclusive. Empty means account end.
+ *
+ * @param endRange the endRange value to set
+ * @return the BlobRestoreRange object itself.
+ */
+ public BlobRestoreRange withEndRange(String endRange) {
+ this.endRange = endRange;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreStatus.java
new file mode 100644
index 0000000000000..da55a051b792c
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobRestoreStatus.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.BlobRestoreStatusInner;
+
+/**
+ * Type representing BlobRestoreStatus.
+ */
+public interface BlobRestoreStatus extends HasInner, HasManager {
+ /**
+ * @return the failureReason value.
+ */
+ String failureReason();
+
+ /**
+ * @return the parameters value.
+ */
+ BlobRestoreParameters parameters();
+
+ /**
+ * @return the restoreId value.
+ */
+ String restoreId();
+
+ /**
+ * @return the status value.
+ */
+ BlobRestoreProgressStatus status();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServiceProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServiceProperties.java
new file mode 100644
index 0000000000000..ba8ce47fd94bc
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServiceProperties.java
@@ -0,0 +1,354 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.BlobServicePropertiesInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+
+/**
+ * Type representing BlobServiceProperties.
+ */
+public interface BlobServiceProperties extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the automaticSnapshotPolicyEnabled value.
+ */
+ Boolean automaticSnapshotPolicyEnabled();
+
+ /**
+ * @return the changeFeed value.
+ */
+ ChangeFeed changeFeed();
+
+ /**
+ * @return the containerDeleteRetentionPolicy value.
+ */
+ DeleteRetentionPolicy containerDeleteRetentionPolicy();
+
+ /**
+ * @return the cors value.
+ */
+ CorsRules cors();
+
+ /**
+ * @return the defaultServiceVersion value.
+ */
+ String defaultServiceVersion();
+
+ /**
+ * @return the deleteRetentionPolicy value.
+ */
+ DeleteRetentionPolicy deleteRetentionPolicy();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isVersioningEnabled value.
+ */
+ Boolean isVersioningEnabled();
+
+ /**
+ * @return the lastAccessTimeTrackingPolicy value.
+ */
+ LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the restorePolicy value.
+ */
+ RestorePolicyProperties restorePolicy();
+
+ /**
+ * @return the sku value.
+ */
+ SkuInner sku();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BlobServiceProperties definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BlobServiceProperties definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BlobServiceProperties definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCreate withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify AutomaticSnapshotPolicyEnabled.
+ */
+ interface WithAutomaticSnapshotPolicyEnabled {
+ /**
+ * Specifies automaticSnapshotPolicyEnabled.
+ * @param automaticSnapshotPolicyEnabled Deprecated in favor of isVersioningEnabled property
+ * @return the next definition stage
+ */
+ WithCreate withAutomaticSnapshotPolicyEnabled(Boolean automaticSnapshotPolicyEnabled);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify ChangeFeed.
+ */
+ interface WithChangeFeed {
+ /**
+ * Specifies changeFeed.
+ * @param changeFeed The blob service properties for change feed events
+ * @return the next definition stage
+ */
+ WithCreate withChangeFeed(ChangeFeed changeFeed);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify ContainerDeleteRetentionPolicy.
+ */
+ interface WithContainerDeleteRetentionPolicy {
+ /**
+ * Specifies containerDeleteRetentionPolicy.
+ * @param containerDeleteRetentionPolicy The blob service properties for container soft delete
+ * @return the next definition stage
+ */
+ WithCreate withContainerDeleteRetentionPolicy(DeleteRetentionPolicy containerDeleteRetentionPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service
+ * @return the next definition stage
+ */
+ WithCreate withCors(CorsRules cors);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify DefaultServiceVersion.
+ */
+ interface WithDefaultServiceVersion {
+ /**
+ * Specifies defaultServiceVersion.
+ * @param defaultServiceVersion DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions
+ * @return the next definition stage
+ */
+ WithCreate withDefaultServiceVersion(String defaultServiceVersion);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify DeleteRetentionPolicy.
+ */
+ interface WithDeleteRetentionPolicy {
+ /**
+ * Specifies deleteRetentionPolicy.
+ * @param deleteRetentionPolicy The blob service properties for blob soft delete
+ * @return the next definition stage
+ */
+ WithCreate withDeleteRetentionPolicy(DeleteRetentionPolicy deleteRetentionPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify IsVersioningEnabled.
+ */
+ interface WithIsVersioningEnabled {
+ /**
+ * Specifies isVersioningEnabled.
+ * @param isVersioningEnabled Versioning is enabled if set to true
+ * @return the next definition stage
+ */
+ WithCreate withIsVersioningEnabled(Boolean isVersioningEnabled);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify LastAccessTimeTrackingPolicy.
+ */
+ interface WithLastAccessTimeTrackingPolicy {
+ /**
+ * Specifies lastAccessTimeTrackingPolicy.
+ * @param lastAccessTimeTrackingPolicy The blob service property to configure last access time based tracking policy
+ * @return the next definition stage
+ */
+ WithCreate withLastAccessTimeTrackingPolicy(LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties definition allowing to specify RestorePolicy.
+ */
+ interface WithRestorePolicy {
+ /**
+ * Specifies restorePolicy.
+ * @param restorePolicy The blob service properties for blob restore policy
+ * @return the next definition stage
+ */
+ WithCreate withRestorePolicy(RestorePolicyProperties restorePolicy);
+ }
+
+ /**
+ * 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.WithAutomaticSnapshotPolicyEnabled, DefinitionStages.WithChangeFeed, DefinitionStages.WithContainerDeleteRetentionPolicy, DefinitionStages.WithCors, DefinitionStages.WithDefaultServiceVersion, DefinitionStages.WithDeleteRetentionPolicy, DefinitionStages.WithIsVersioningEnabled, DefinitionStages.WithLastAccessTimeTrackingPolicy, DefinitionStages.WithRestorePolicy {
+ }
+ }
+ /**
+ * The template for a BlobServiceProperties update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAutomaticSnapshotPolicyEnabled, UpdateStages.WithChangeFeed, UpdateStages.WithContainerDeleteRetentionPolicy, UpdateStages.WithCors, UpdateStages.WithDefaultServiceVersion, UpdateStages.WithDeleteRetentionPolicy, UpdateStages.WithIsVersioningEnabled, UpdateStages.WithLastAccessTimeTrackingPolicy, UpdateStages.WithRestorePolicy {
+ }
+
+ /**
+ * Grouping of BlobServiceProperties update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the blobserviceproperties update allowing to specify AutomaticSnapshotPolicyEnabled.
+ */
+ interface WithAutomaticSnapshotPolicyEnabled {
+ /**
+ * Specifies automaticSnapshotPolicyEnabled.
+ * @param automaticSnapshotPolicyEnabled Deprecated in favor of isVersioningEnabled property
+ * @return the next update stage
+ */
+ Update withAutomaticSnapshotPolicyEnabled(Boolean automaticSnapshotPolicyEnabled);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify ChangeFeed.
+ */
+ interface WithChangeFeed {
+ /**
+ * Specifies changeFeed.
+ * @param changeFeed The blob service properties for change feed events
+ * @return the next update stage
+ */
+ Update withChangeFeed(ChangeFeed changeFeed);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify ContainerDeleteRetentionPolicy.
+ */
+ interface WithContainerDeleteRetentionPolicy {
+ /**
+ * Specifies containerDeleteRetentionPolicy.
+ * @param containerDeleteRetentionPolicy The blob service properties for container soft delete
+ * @return the next update stage
+ */
+ Update withContainerDeleteRetentionPolicy(DeleteRetentionPolicy containerDeleteRetentionPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service
+ * @return the next update stage
+ */
+ Update withCors(CorsRules cors);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify DefaultServiceVersion.
+ */
+ interface WithDefaultServiceVersion {
+ /**
+ * Specifies defaultServiceVersion.
+ * @param defaultServiceVersion DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions
+ * @return the next update stage
+ */
+ Update withDefaultServiceVersion(String defaultServiceVersion);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify DeleteRetentionPolicy.
+ */
+ interface WithDeleteRetentionPolicy {
+ /**
+ * Specifies deleteRetentionPolicy.
+ * @param deleteRetentionPolicy The blob service properties for blob soft delete
+ * @return the next update stage
+ */
+ Update withDeleteRetentionPolicy(DeleteRetentionPolicy deleteRetentionPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify IsVersioningEnabled.
+ */
+ interface WithIsVersioningEnabled {
+ /**
+ * Specifies isVersioningEnabled.
+ * @param isVersioningEnabled Versioning is enabled if set to true
+ * @return the next update stage
+ */
+ Update withIsVersioningEnabled(Boolean isVersioningEnabled);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify LastAccessTimeTrackingPolicy.
+ */
+ interface WithLastAccessTimeTrackingPolicy {
+ /**
+ * Specifies lastAccessTimeTrackingPolicy.
+ * @param lastAccessTimeTrackingPolicy The blob service property to configure last access time based tracking policy
+ * @return the next update stage
+ */
+ Update withLastAccessTimeTrackingPolicy(LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy);
+ }
+
+ /**
+ * The stage of the blobserviceproperties update allowing to specify RestorePolicy.
+ */
+ interface WithRestorePolicy {
+ /**
+ * Specifies restorePolicy.
+ * @param restorePolicy The blob service properties for blob restore policy
+ * @return the next update stage
+ */
+ Update withRestorePolicy(RestorePolicyProperties restorePolicy);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServices.java
new file mode 100644
index 0000000000000..5dd51d8dc4308
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/BlobServices.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.BlobServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BlobServices.
+ */
+public interface BlobServices extends SupportsCreating, HasInner {
+ /**
+ * Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getServicePropertiesAsync(String resourceGroupName, String accountName);
+
+ /**
+ * List blob services of storage account. It returns a collection of one object named default.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Bypass.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Bypass.java
new file mode 100644
index 0000000000000..724b7ee9b6458
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Bypass.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Bypass.
+ */
+public final class Bypass extends ExpandableStringEnum {
+ /** Static value None for Bypass. */
+ public static final Bypass NONE = fromString("None");
+
+ /** Static value Logging for Bypass. */
+ public static final Bypass LOGGING = fromString("Logging");
+
+ /** Static value Metrics for Bypass. */
+ public static final Bypass METRICS = fromString("Metrics");
+
+ /** Static value AzureServices for Bypass. */
+ public static final Bypass AZURE_SERVICES = fromString("AzureServices");
+
+ /**
+ * Creates or finds a Bypass from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Bypass
+ */
+ @JsonCreator
+ public static Bypass fromString(String name) {
+ return fromString(name, Bypass.class);
+ }
+
+ /**
+ * @return known Bypass values
+ */
+ public static Collection values() {
+ return values(Bypass.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ChangeFeed.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ChangeFeed.java
new file mode 100644
index 0000000000000..23700118a3900
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ChangeFeed.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The blob service properties for change feed events.
+ */
+public class ChangeFeed {
+ /**
+ * Indicates whether change feed event logging is enabled for the Blob
+ * service.
+ */
+ @JsonProperty(value = "enabled")
+ private Boolean enabled;
+
+ /**
+ * Get indicates whether change feed event logging is enabled for the Blob service.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set indicates whether change feed event logging is enabled for the Blob service.
+ *
+ * @param enabled the enabled value to set
+ * @return the ChangeFeed object itself.
+ */
+ public ChangeFeed withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CheckNameAvailabilityResult.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CheckNameAvailabilityResult.java
new file mode 100644
index 0000000000000..b7fe9de953f76
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CheckNameAvailabilityResult.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.CheckNameAvailabilityResultInner;
+
+/**
+ * Type representing CheckNameAvailabilityResult.
+ */
+public interface CheckNameAvailabilityResult extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ Reason reason();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRule.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRule.java
new file mode 100644
index 0000000000000..909ffb1d3fa8c
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRule.java
@@ -0,0 +1,153 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Specifies a CORS rule for the Blob service.
+ */
+public class CorsRule {
+ /**
+ * Required if CorsRule element is present. A list of origin domains that
+ * will be allowed via CORS, or "*" to allow all domains.
+ */
+ @JsonProperty(value = "allowedOrigins", required = true)
+ private List allowedOrigins;
+
+ /**
+ * Required if CorsRule element is present. A list of HTTP methods that are
+ * allowed to be executed by the origin.
+ */
+ @JsonProperty(value = "allowedMethods", required = true)
+ private List allowedMethods;
+
+ /**
+ * Required if CorsRule element is present. The number of seconds that the
+ * client/browser should cache a preflight response.
+ */
+ @JsonProperty(value = "maxAgeInSeconds", required = true)
+ private int maxAgeInSeconds;
+
+ /**
+ * Required if CorsRule element is present. A list of response headers to
+ * expose to CORS clients.
+ */
+ @JsonProperty(value = "exposedHeaders", required = true)
+ private List exposedHeaders;
+
+ /**
+ * Required if CorsRule element is present. A list of headers allowed to be
+ * part of the cross-origin request.
+ */
+ @JsonProperty(value = "allowedHeaders", required = true)
+ private List allowedHeaders;
+
+ /**
+ * Get required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains.
+ *
+ * @return the allowedOrigins value
+ */
+ public List allowedOrigins() {
+ return this.allowedOrigins;
+ }
+
+ /**
+ * Set required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains.
+ *
+ * @param allowedOrigins the allowedOrigins value to set
+ * @return the CorsRule object itself.
+ */
+ public CorsRule withAllowedOrigins(List allowedOrigins) {
+ this.allowedOrigins = allowedOrigins;
+ return this;
+ }
+
+ /**
+ * Get required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
+ *
+ * @return the allowedMethods value
+ */
+ public List allowedMethods() {
+ return this.allowedMethods;
+ }
+
+ /**
+ * Set required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
+ *
+ * @param allowedMethods the allowedMethods value to set
+ * @return the CorsRule object itself.
+ */
+ public CorsRule withAllowedMethods(List allowedMethods) {
+ this.allowedMethods = allowedMethods;
+ return this;
+ }
+
+ /**
+ * Get required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
+ *
+ * @return the maxAgeInSeconds value
+ */
+ public int maxAgeInSeconds() {
+ return this.maxAgeInSeconds;
+ }
+
+ /**
+ * Set required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
+ *
+ * @param maxAgeInSeconds the maxAgeInSeconds value to set
+ * @return the CorsRule object itself.
+ */
+ public CorsRule withMaxAgeInSeconds(int maxAgeInSeconds) {
+ this.maxAgeInSeconds = maxAgeInSeconds;
+ return this;
+ }
+
+ /**
+ * Get required if CorsRule element is present. A list of response headers to expose to CORS clients.
+ *
+ * @return the exposedHeaders value
+ */
+ public List exposedHeaders() {
+ return this.exposedHeaders;
+ }
+
+ /**
+ * Set required if CorsRule element is present. A list of response headers to expose to CORS clients.
+ *
+ * @param exposedHeaders the exposedHeaders value to set
+ * @return the CorsRule object itself.
+ */
+ public CorsRule withExposedHeaders(List exposedHeaders) {
+ this.exposedHeaders = exposedHeaders;
+ return this;
+ }
+
+ /**
+ * Get required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
+ *
+ * @return the allowedHeaders value
+ */
+ public List allowedHeaders() {
+ return this.allowedHeaders;
+ }
+
+ /**
+ * Set required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
+ *
+ * @param allowedHeaders the allowedHeaders value to set
+ * @return the CorsRule object itself.
+ */
+ public CorsRule withAllowedHeaders(List allowedHeaders) {
+ this.allowedHeaders = allowedHeaders;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRules.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRules.java
new file mode 100644
index 0000000000000..e32fe01a55078
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CorsRules.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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Sets the CORS rules. You can include up to five CorsRule elements in the
+ * request.
+ */
+public class CorsRules {
+ /**
+ * The List of CORS rules. You can include up to five CorsRule elements in
+ * the request.
+ */
+ @JsonProperty(value = "corsRules")
+ private List corsRules;
+
+ /**
+ * Get the List of CORS rules. You can include up to five CorsRule elements in the request.
+ *
+ * @return the corsRules value
+ */
+ public List corsRules() {
+ return this.corsRules;
+ }
+
+ /**
+ * Set the List of CORS rules. You can include up to five CorsRule elements in the request.
+ *
+ * @param corsRules the corsRules value to set
+ * @return the CorsRules object itself.
+ */
+ public CorsRules withCorsRules(List corsRules) {
+ this.corsRules = corsRules;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CustomDomain.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CustomDomain.java
new file mode 100644
index 0000000000000..6687fd2fcbdf4
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/CustomDomain.java
@@ -0,0 +1,72 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The custom domain assigned to this storage account. This can be set via
+ * Update.
+ */
+public class CustomDomain {
+ /**
+ * Gets or sets the custom domain name assigned to the storage account.
+ * Name is the CNAME source.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Indicates whether indirect CName validation is enabled. Default value is
+ * false. This should only be set on updates.
+ */
+ @JsonProperty(value = "useSubDomainName")
+ private Boolean useSubDomainName;
+
+ /**
+ * Get gets or sets the custom domain name assigned to the storage account. Name is the CNAME source.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set gets or sets the custom domain name assigned to the storage account. Name is the CNAME source.
+ *
+ * @param name the name value to set
+ * @return the CustomDomain object itself.
+ */
+ public CustomDomain withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates.
+ *
+ * @return the useSubDomainName value
+ */
+ public Boolean useSubDomainName() {
+ return this.useSubDomainName;
+ }
+
+ /**
+ * Set indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates.
+ *
+ * @param useSubDomainName the useSubDomainName value to set
+ * @return the CustomDomain object itself.
+ */
+ public CustomDomain withUseSubDomainName(Boolean useSubDomainName) {
+ this.useSubDomainName = useSubDomainName;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterCreation.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterCreation.java
new file mode 100644
index 0000000000000..b45c0b852f7fc
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterCreation.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Object to define the number of days after creation.
+ */
+public class DateAfterCreation {
+ /**
+ * Value indicating the age in days after creation.
+ */
+ @JsonProperty(value = "daysAfterCreationGreaterThan", required = true)
+ private double daysAfterCreationGreaterThan;
+
+ /**
+ * Get value indicating the age in days after creation.
+ *
+ * @return the daysAfterCreationGreaterThan value
+ */
+ public double daysAfterCreationGreaterThan() {
+ return this.daysAfterCreationGreaterThan;
+ }
+
+ /**
+ * Set value indicating the age in days after creation.
+ *
+ * @param daysAfterCreationGreaterThan the daysAfterCreationGreaterThan value to set
+ * @return the DateAfterCreation object itself.
+ */
+ public DateAfterCreation withDaysAfterCreationGreaterThan(double daysAfterCreationGreaterThan) {
+ this.daysAfterCreationGreaterThan = daysAfterCreationGreaterThan;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterModification.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterModification.java
new file mode 100644
index 0000000000000..4e4217afd3355
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DateAfterModification.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Object to define the number of days after last modification.
+ */
+public class DateAfterModification {
+ /**
+ * Value indicating the age in days after last modification.
+ */
+ @JsonProperty(value = "daysAfterModificationGreaterThan")
+ private Double daysAfterModificationGreaterThan;
+
+ /**
+ * Value indicating the age in days after last blob access. This property
+ * can only be used in conjunction with last access time tracking policy.
+ */
+ @JsonProperty(value = "daysAfterLastAccessTimeGreaterThan")
+ private Double daysAfterLastAccessTimeGreaterThan;
+
+ /**
+ * Get value indicating the age in days after last modification.
+ *
+ * @return the daysAfterModificationGreaterThan value
+ */
+ public Double daysAfterModificationGreaterThan() {
+ return this.daysAfterModificationGreaterThan;
+ }
+
+ /**
+ * Set value indicating the age in days after last modification.
+ *
+ * @param daysAfterModificationGreaterThan the daysAfterModificationGreaterThan value to set
+ * @return the DateAfterModification object itself.
+ */
+ public DateAfterModification withDaysAfterModificationGreaterThan(Double daysAfterModificationGreaterThan) {
+ this.daysAfterModificationGreaterThan = daysAfterModificationGreaterThan;
+ return this;
+ }
+
+ /**
+ * Get value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy.
+ *
+ * @return the daysAfterLastAccessTimeGreaterThan value
+ */
+ public Double daysAfterLastAccessTimeGreaterThan() {
+ return this.daysAfterLastAccessTimeGreaterThan;
+ }
+
+ /**
+ * Set value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy.
+ *
+ * @param daysAfterLastAccessTimeGreaterThan the daysAfterLastAccessTimeGreaterThan value to set
+ * @return the DateAfterModification object itself.
+ */
+ public DateAfterModification withDaysAfterLastAccessTimeGreaterThan(Double daysAfterLastAccessTimeGreaterThan) {
+ this.daysAfterLastAccessTimeGreaterThan = daysAfterLastAccessTimeGreaterThan;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DefaultAction.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DefaultAction.java
new file mode 100644
index 0000000000000..2fd33143508ea
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DefaultAction.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DefaultAction.
+ */
+public enum DefaultAction {
+ /** Enum value Allow. */
+ ALLOW("Allow"),
+
+ /** Enum value Deny. */
+ DENY("Deny");
+
+ /** The actual serialized value for a DefaultAction instance. */
+ private String value;
+
+ DefaultAction(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DefaultAction instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DefaultAction object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DefaultAction fromString(String value) {
+ DefaultAction[] items = DefaultAction.values();
+ for (DefaultAction item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeleteRetentionPolicy.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeleteRetentionPolicy.java
new file mode 100644
index 0000000000000..00af28ca976d4
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeleteRetentionPolicy.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The service properties for soft delete.
+ */
+public class DeleteRetentionPolicy {
+ /**
+ * Indicates whether DeleteRetentionPolicy is enabled.
+ */
+ @JsonProperty(value = "enabled")
+ private Boolean enabled;
+
+ /**
+ * Indicates the number of days that the deleted item should be retained.
+ * The minimum specified value can be 1 and the maximum value can be 365.
+ */
+ @JsonProperty(value = "days")
+ private Integer days;
+
+ /**
+ * Get indicates whether DeleteRetentionPolicy is enabled.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set indicates whether DeleteRetentionPolicy is enabled.
+ *
+ * @param enabled the enabled value to set
+ * @return the DeleteRetentionPolicy object itself.
+ */
+ public DeleteRetentionPolicy withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365.
+ *
+ * @return the days value
+ */
+ public Integer days() {
+ return this.days;
+ }
+
+ /**
+ * Set indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365.
+ *
+ * @param days the days value to set
+ * @return the DeleteRetentionPolicy object itself.
+ */
+ public DeleteRetentionPolicy withDays(Integer days) {
+ this.days = days;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccount.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccount.java
new file mode 100644
index 0000000000000..015cde0ece077
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccount.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.DeletedAccountInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+
+/**
+ * Type representing DeletedAccount.
+ */
+public interface DeletedAccount extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the creationTime value.
+ */
+ String creationTime();
+
+ /**
+ * @return the deletionTime value.
+ */
+ String deletionTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the restoreReference value.
+ */
+ String restoreReference();
+
+ /**
+ * @return the storageAccountResourceId value.
+ */
+ String storageAccountResourceId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccounts.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccounts.java
new file mode 100644
index 0000000000000..d98daf384298a
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedAccounts.java
@@ -0,0 +1,37 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.DeletedAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DeletedAccounts.
+ */
+public interface DeletedAccounts extends HasInner {
+ /**
+ * Lists deleted accounts under the subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Get properties of specified deleted account resource.
+ *
+ * @param deletedAccountName Name of the deleted storage account.
+ * @param location The location of the deleted storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String deletedAccountName, String location);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedShare.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedShare.java
new file mode 100644
index 0000000000000..03a09cb22d6b4
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DeletedShare.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The deleted share to be restored.
+ */
+public class DeletedShare {
+ /**
+ * Required. Identify the name of the deleted share that will be restored.
+ */
+ @JsonProperty(value = "deletedShareName", required = true)
+ private String deletedShareName;
+
+ /**
+ * Required. Identify the version of the deleted share that will be
+ * restored.
+ */
+ @JsonProperty(value = "deletedShareVersion", required = true)
+ private String deletedShareVersion;
+
+ /**
+ * Get required. Identify the name of the deleted share that will be restored.
+ *
+ * @return the deletedShareName value
+ */
+ public String deletedShareName() {
+ return this.deletedShareName;
+ }
+
+ /**
+ * Set required. Identify the name of the deleted share that will be restored.
+ *
+ * @param deletedShareName the deletedShareName value to set
+ * @return the DeletedShare object itself.
+ */
+ public DeletedShare withDeletedShareName(String deletedShareName) {
+ this.deletedShareName = deletedShareName;
+ return this;
+ }
+
+ /**
+ * Get required. Identify the version of the deleted share that will be restored.
+ *
+ * @return the deletedShareVersion value
+ */
+ public String deletedShareVersion() {
+ return this.deletedShareVersion;
+ }
+
+ /**
+ * Set required. Identify the version of the deleted share that will be restored.
+ *
+ * @param deletedShareVersion the deletedShareVersion value to set
+ * @return the DeletedShare object itself.
+ */
+ public DeletedShare withDeletedShareVersion(String deletedShareVersion) {
+ this.deletedShareVersion = deletedShareVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Dimension.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Dimension.java
new file mode 100644
index 0000000000000..0e77013212dce
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Dimension of blobs, possibly be blob type or access tier.
+ */
+public class Dimension {
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param name the name value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param displayName the displayName value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DirectoryServiceOptions.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DirectoryServiceOptions.java
new file mode 100644
index 0000000000000..edcc7eebf09e0
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/DirectoryServiceOptions.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DirectoryServiceOptions.
+ */
+public final class DirectoryServiceOptions extends ExpandableStringEnum {
+ /** Static value None for DirectoryServiceOptions. */
+ public static final DirectoryServiceOptions NONE = fromString("None");
+
+ /** Static value AADDS for DirectoryServiceOptions. */
+ public static final DirectoryServiceOptions AADDS = fromString("AADDS");
+
+ /** Static value AD for DirectoryServiceOptions. */
+ public static final DirectoryServiceOptions AD = fromString("AD");
+
+ /**
+ * Creates or finds a DirectoryServiceOptions from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DirectoryServiceOptions
+ */
+ @JsonCreator
+ public static DirectoryServiceOptions fromString(String name) {
+ return fromString(name, DirectoryServiceOptions.class);
+ }
+
+ /**
+ * @return known DirectoryServiceOptions values
+ */
+ public static Collection values() {
+ return values(DirectoryServiceOptions.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EnabledProtocols.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EnabledProtocols.java
new file mode 100644
index 0000000000000..597f38aa68fe5
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EnabledProtocols.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EnabledProtocols.
+ */
+public final class EnabledProtocols extends ExpandableStringEnum {
+ /** Static value SMB for EnabledProtocols. */
+ public static final EnabledProtocols SMB = fromString("SMB");
+
+ /** Static value NFS for EnabledProtocols. */
+ public static final EnabledProtocols NFS = fromString("NFS");
+
+ /**
+ * Creates or finds a EnabledProtocols from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EnabledProtocols
+ */
+ @JsonCreator
+ public static EnabledProtocols fromString(String name) {
+ return fromString(name, EnabledProtocols.class);
+ }
+
+ /**
+ * @return known EnabledProtocols values
+ */
+ public static Collection values() {
+ return values(EnabledProtocols.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Encryption.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Encryption.java
new file mode 100644
index 0000000000000..a18b3c28fb344
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Encryption.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The encryption settings on the storage account.
+ */
+public class Encryption {
+ /**
+ * List of services which support encryption.
+ */
+ @JsonProperty(value = "services")
+ private EncryptionServices services;
+
+ /**
+ * The encryption keySource (provider). Possible values (case-insensitive):
+ * Microsoft.Storage, Microsoft.Keyvault. Possible values include:
+ * 'Microsoft.Storage', 'Microsoft.Keyvault'.
+ */
+ @JsonProperty(value = "keySource", required = true)
+ private KeySource keySource;
+
+ /**
+ * A boolean indicating whether or not the service applies a secondary
+ * layer of encryption with platform managed keys for data at rest.
+ */
+ @JsonProperty(value = "requireInfrastructureEncryption")
+ private Boolean requireInfrastructureEncryption;
+
+ /**
+ * Properties provided by key vault.
+ */
+ @JsonProperty(value = "keyvaultproperties")
+ private KeyVaultProperties keyVaultProperties;
+
+ /**
+ * Get list of services which support encryption.
+ *
+ * @return the services value
+ */
+ public EncryptionServices services() {
+ return this.services;
+ }
+
+ /**
+ * Set list of services which support encryption.
+ *
+ * @param services the services value to set
+ * @return the Encryption object itself.
+ */
+ public Encryption withServices(EncryptionServices services) {
+ this.services = services;
+ return this;
+ }
+
+ /**
+ * Get the encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault. Possible values include: 'Microsoft.Storage', 'Microsoft.Keyvault'.
+ *
+ * @return the keySource value
+ */
+ public KeySource keySource() {
+ return this.keySource;
+ }
+
+ /**
+ * Set the encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault. Possible values include: 'Microsoft.Storage', 'Microsoft.Keyvault'.
+ *
+ * @param keySource the keySource value to set
+ * @return the Encryption object itself.
+ */
+ public Encryption withKeySource(KeySource keySource) {
+ this.keySource = keySource;
+ return this;
+ }
+
+ /**
+ * Get a boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest.
+ *
+ * @return the requireInfrastructureEncryption value
+ */
+ public Boolean requireInfrastructureEncryption() {
+ return this.requireInfrastructureEncryption;
+ }
+
+ /**
+ * Set a boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest.
+ *
+ * @param requireInfrastructureEncryption the requireInfrastructureEncryption value to set
+ * @return the Encryption object itself.
+ */
+ public Encryption withRequireInfrastructureEncryption(Boolean requireInfrastructureEncryption) {
+ this.requireInfrastructureEncryption = requireInfrastructureEncryption;
+ return this;
+ }
+
+ /**
+ * Get properties provided by key vault.
+ *
+ * @return the keyVaultProperties value
+ */
+ public KeyVaultProperties keyVaultProperties() {
+ return this.keyVaultProperties;
+ }
+
+ /**
+ * Set properties provided by key vault.
+ *
+ * @param keyVaultProperties the keyVaultProperties value to set
+ * @return the Encryption object itself.
+ */
+ public Encryption withKeyVaultProperties(KeyVaultProperties keyVaultProperties) {
+ this.keyVaultProperties = keyVaultProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScope.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScope.java
new file mode 100644
index 0000000000000..5951f08f09fc6
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScope.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.EncryptionScopeInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing EncryptionScope.
+ */
+public interface EncryptionScope extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the creationTime value.
+ */
+ DateTime creationTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the keyVaultProperties value.
+ */
+ EncryptionScopeKeyVaultProperties keyVaultProperties();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the source value.
+ */
+ EncryptionScopeSource source();
+
+ /**
+ * @return the state value.
+ */
+ EncryptionScopeState state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the EncryptionScope definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of EncryptionScope definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a EncryptionScope definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the encryptionscope definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCreate withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the encryptionscope definition allowing to specify KeyVaultProperties.
+ */
+ interface WithKeyVaultProperties {
+ /**
+ * Specifies keyVaultProperties.
+ * @param keyVaultProperties The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'
+ * @return the next definition stage
+ */
+ WithCreate withKeyVaultProperties(EncryptionScopeKeyVaultProperties keyVaultProperties);
+ }
+
+ /**
+ * The stage of the encryptionscope definition allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ * @param source The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault. Possible values include: 'Microsoft.Storage', 'Microsoft.KeyVault'
+ * @return the next definition stage
+ */
+ WithCreate withSource(EncryptionScopeSource source);
+ }
+
+ /**
+ * The stage of the encryptionscope definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ * @param state The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withState(EncryptionScopeState state);
+ }
+
+ /**
+ * 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.WithKeyVaultProperties, DefinitionStages.WithSource, DefinitionStages.WithState {
+ }
+ }
+ /**
+ * The template for a EncryptionScope update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithKeyVaultProperties, UpdateStages.WithSource, UpdateStages.WithState {
+ }
+
+ /**
+ * Grouping of EncryptionScope update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the encryptionscope update allowing to specify KeyVaultProperties.
+ */
+ interface WithKeyVaultProperties {
+ /**
+ * Specifies keyVaultProperties.
+ * @param keyVaultProperties The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'
+ * @return the next update stage
+ */
+ Update withKeyVaultProperties(EncryptionScopeKeyVaultProperties keyVaultProperties);
+ }
+
+ /**
+ * The stage of the encryptionscope update allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ * @param source The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault. Possible values include: 'Microsoft.Storage', 'Microsoft.KeyVault'
+ * @return the next update stage
+ */
+ Update withSource(EncryptionScopeSource source);
+ }
+
+ /**
+ * The stage of the encryptionscope update allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ * @param state The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled. Possible values include: 'Enabled', 'Disabled'
+ * @return the next update stage
+ */
+ Update withState(EncryptionScopeState state);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeKeyVaultProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeKeyVaultProperties.java
new file mode 100644
index 0000000000000..96387e2a2bc47
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeKeyVaultProperties.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The key vault properties for the encryption scope. This is a required field
+ * if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'.
+ */
+public class EncryptionScopeKeyVaultProperties {
+ /**
+ * The object identifier for a key vault key object. When applied, the
+ * encryption scope will use the key referenced by the identifier to enable
+ * customer-managed key support on this encryption scope.
+ */
+ @JsonProperty(value = "keyUri")
+ private String keyUri;
+
+ /**
+ * Get the object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope.
+ *
+ * @return the keyUri value
+ */
+ public String keyUri() {
+ return this.keyUri;
+ }
+
+ /**
+ * Set the object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope.
+ *
+ * @param keyUri the keyUri value to set
+ * @return the EncryptionScopeKeyVaultProperties object itself.
+ */
+ public EncryptionScopeKeyVaultProperties withKeyUri(String keyUri) {
+ this.keyUri = keyUri;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeSource.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeSource.java
new file mode 100644
index 0000000000000..c4f0b01c3fc6e
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeSource.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EncryptionScopeSource.
+ */
+public final class EncryptionScopeSource extends ExpandableStringEnum {
+ /** Static value Microsoft.Storage for EncryptionScopeSource. */
+ public static final EncryptionScopeSource MICROSOFT_STORAGE = fromString("Microsoft.Storage");
+
+ /** Static value Microsoft.KeyVault for EncryptionScopeSource. */
+ public static final EncryptionScopeSource MICROSOFT_KEY_VAULT = fromString("Microsoft.KeyVault");
+
+ /**
+ * Creates or finds a EncryptionScopeSource from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EncryptionScopeSource
+ */
+ @JsonCreator
+ public static EncryptionScopeSource fromString(String name) {
+ return fromString(name, EncryptionScopeSource.class);
+ }
+
+ /**
+ * @return known EncryptionScopeSource values
+ */
+ public static Collection values() {
+ return values(EncryptionScopeSource.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeState.java
new file mode 100644
index 0000000000000..51013d6b04f8d
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopeState.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EncryptionScopeState.
+ */
+public final class EncryptionScopeState extends ExpandableStringEnum {
+ /** Static value Enabled for EncryptionScopeState. */
+ public static final EncryptionScopeState ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for EncryptionScopeState. */
+ public static final EncryptionScopeState DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a EncryptionScopeState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EncryptionScopeState
+ */
+ @JsonCreator
+ public static EncryptionScopeState fromString(String name) {
+ return fromString(name, EncryptionScopeState.class);
+ }
+
+ /**
+ * @return known EncryptionScopeState values
+ */
+ public static Collection values() {
+ return values(EncryptionScopeState.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopes.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopes.java
new file mode 100644
index 0000000000000..1a198ef4ce494
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionScopes.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.EncryptionScopesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing EncryptionScopes.
+ */
+public interface EncryptionScopes extends SupportsCreating, HasInner {
+ /**
+ * Returns the properties for the specified encryption scope.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param encryptionScopeName The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String encryptionScopeName);
+
+ /**
+ * Lists all the encryption scopes available under the specified storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String accountName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionService.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionService.java
new file mode 100644
index 0000000000000..fc24247d1a3e5
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionService.java
@@ -0,0 +1,92 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A service that allows server-side encryption to be used.
+ */
+public class EncryptionService {
+ /**
+ * A boolean indicating whether or not the service encrypts the data as it
+ * is stored.
+ */
+ @JsonProperty(value = "enabled")
+ private Boolean enabled;
+
+ /**
+ * Gets a rough estimate of the date/time when the encryption was last
+ * enabled by the user. Only returned when encryption is enabled. There
+ * might be some unencrypted blobs which were written after this time, as
+ * it is just a rough estimate.
+ */
+ @JsonProperty(value = "lastEnabledTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastEnabledTime;
+
+ /**
+ * Encryption key type to be used for the encryption service. 'Account' key
+ * type implies that an account-scoped encryption key will be used.
+ * 'Service' key type implies that a default service key is used. Possible
+ * values include: 'Service', 'Account'.
+ */
+ @JsonProperty(value = "keyType")
+ private KeyType keyType;
+
+ /**
+ * Get a boolean indicating whether or not the service encrypts the data as it is stored.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set a boolean indicating whether or not the service encrypts the data as it is stored.
+ *
+ * @param enabled the enabled value to set
+ * @return the EncryptionService object itself.
+ */
+ public EncryptionService withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get gets a rough estimate of the date/time when the encryption was last enabled by the user. Only returned when encryption is enabled. There might be some unencrypted blobs which were written after this time, as it is just a rough estimate.
+ *
+ * @return the lastEnabledTime value
+ */
+ public DateTime lastEnabledTime() {
+ return this.lastEnabledTime;
+ }
+
+ /**
+ * Get encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. Possible values include: 'Service', 'Account'.
+ *
+ * @return the keyType value
+ */
+ public KeyType keyType() {
+ return this.keyType;
+ }
+
+ /**
+ * Set encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. Possible values include: 'Service', 'Account'.
+ *
+ * @param keyType the keyType value to set
+ * @return the EncryptionService object itself.
+ */
+ public EncryptionService withKeyType(KeyType keyType) {
+ this.keyType = keyType;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionServices.java
new file mode 100644
index 0000000000000..58e75e12abbd7
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/EncryptionServices.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A list of services that support encryption.
+ */
+public class EncryptionServices {
+ /**
+ * The encryption function of the blob storage service.
+ */
+ @JsonProperty(value = "blob")
+ private EncryptionService blob;
+
+ /**
+ * The encryption function of the file storage service.
+ */
+ @JsonProperty(value = "file")
+ private EncryptionService file;
+
+ /**
+ * The encryption function of the table storage service.
+ */
+ @JsonProperty(value = "table")
+ private EncryptionService table;
+
+ /**
+ * The encryption function of the queue storage service.
+ */
+ @JsonProperty(value = "queue")
+ private EncryptionService queue;
+
+ /**
+ * Get the encryption function of the blob storage service.
+ *
+ * @return the blob value
+ */
+ public EncryptionService blob() {
+ return this.blob;
+ }
+
+ /**
+ * Set the encryption function of the blob storage service.
+ *
+ * @param blob the blob value to set
+ * @return the EncryptionServices object itself.
+ */
+ public EncryptionServices withBlob(EncryptionService blob) {
+ this.blob = blob;
+ return this;
+ }
+
+ /**
+ * Get the encryption function of the file storage service.
+ *
+ * @return the file value
+ */
+ public EncryptionService file() {
+ return this.file;
+ }
+
+ /**
+ * Set the encryption function of the file storage service.
+ *
+ * @param file the file value to set
+ * @return the EncryptionServices object itself.
+ */
+ public EncryptionServices withFile(EncryptionService file) {
+ this.file = file;
+ return this;
+ }
+
+ /**
+ * Get the encryption function of the table storage service.
+ *
+ * @return the table value
+ */
+ public EncryptionService table() {
+ return this.table;
+ }
+
+ /**
+ * Set the encryption function of the table storage service.
+ *
+ * @param table the table value to set
+ * @return the EncryptionServices object itself.
+ */
+ public EncryptionServices withTable(EncryptionService table) {
+ this.table = table;
+ return this;
+ }
+
+ /**
+ * Get the encryption function of the queue storage service.
+ *
+ * @return the queue value
+ */
+ public EncryptionService queue() {
+ return this.queue;
+ }
+
+ /**
+ * Set the encryption function of the queue storage service.
+ *
+ * @param queue the queue value to set
+ * @return the EncryptionServices object itself.
+ */
+ public EncryptionServices withQueue(EncryptionService queue) {
+ this.queue = queue;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Endpoints.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Endpoints.java
new file mode 100644
index 0000000000000..8883875037953
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Endpoints.java
@@ -0,0 +1,160 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The URIs that are used to perform a retrieval of a public blob, queue,
+ * table, web or dfs object.
+ */
+public class Endpoints {
+ /**
+ * Gets the blob endpoint.
+ */
+ @JsonProperty(value = "blob", access = JsonProperty.Access.WRITE_ONLY)
+ private String blob;
+
+ /**
+ * Gets the queue endpoint.
+ */
+ @JsonProperty(value = "queue", access = JsonProperty.Access.WRITE_ONLY)
+ private String queue;
+
+ /**
+ * Gets the table endpoint.
+ */
+ @JsonProperty(value = "table", access = JsonProperty.Access.WRITE_ONLY)
+ private String table;
+
+ /**
+ * Gets the file endpoint.
+ */
+ @JsonProperty(value = "file", access = JsonProperty.Access.WRITE_ONLY)
+ private String file;
+
+ /**
+ * Gets the web endpoint.
+ */
+ @JsonProperty(value = "web", access = JsonProperty.Access.WRITE_ONLY)
+ private String web;
+
+ /**
+ * Gets the dfs endpoint.
+ */
+ @JsonProperty(value = "dfs", access = JsonProperty.Access.WRITE_ONLY)
+ private String dfs;
+
+ /**
+ * Gets the microsoft routing storage endpoints.
+ */
+ @JsonProperty(value = "microsoftEndpoints")
+ private StorageAccountMicrosoftEndpoints microsoftEndpoints;
+
+ /**
+ * Gets the internet routing storage endpoints.
+ */
+ @JsonProperty(value = "internetEndpoints")
+ private StorageAccountInternetEndpoints internetEndpoints;
+
+ /**
+ * Get gets the blob endpoint.
+ *
+ * @return the blob value
+ */
+ public String blob() {
+ return this.blob;
+ }
+
+ /**
+ * Get gets the queue endpoint.
+ *
+ * @return the queue value
+ */
+ public String queue() {
+ return this.queue;
+ }
+
+ /**
+ * Get gets the table endpoint.
+ *
+ * @return the table value
+ */
+ public String table() {
+ return this.table;
+ }
+
+ /**
+ * Get gets the file endpoint.
+ *
+ * @return the file value
+ */
+ public String file() {
+ return this.file;
+ }
+
+ /**
+ * Get gets the web endpoint.
+ *
+ * @return the web value
+ */
+ public String web() {
+ return this.web;
+ }
+
+ /**
+ * Get gets the dfs endpoint.
+ *
+ * @return the dfs value
+ */
+ public String dfs() {
+ return this.dfs;
+ }
+
+ /**
+ * Get gets the microsoft routing storage endpoints.
+ *
+ * @return the microsoftEndpoints value
+ */
+ public StorageAccountMicrosoftEndpoints microsoftEndpoints() {
+ return this.microsoftEndpoints;
+ }
+
+ /**
+ * Set gets the microsoft routing storage endpoints.
+ *
+ * @param microsoftEndpoints the microsoftEndpoints value to set
+ * @return the Endpoints object itself.
+ */
+ public Endpoints withMicrosoftEndpoints(StorageAccountMicrosoftEndpoints microsoftEndpoints) {
+ this.microsoftEndpoints = microsoftEndpoints;
+ return this;
+ }
+
+ /**
+ * Get gets the internet routing storage endpoints.
+ *
+ * @return the internetEndpoints value
+ */
+ public StorageAccountInternetEndpoints internetEndpoints() {
+ return this.internetEndpoints;
+ }
+
+ /**
+ * Set gets the internet routing storage endpoints.
+ *
+ * @param internetEndpoints the internetEndpoints value to set
+ * @return the Endpoints object itself.
+ */
+ public Endpoints withInternetEndpoints(StorageAccountInternetEndpoints internetEndpoints) {
+ this.internetEndpoints = internetEndpoints;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponse.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponse.java
new file mode 100644
index 0000000000000..6f11b73a7e57d
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponse.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An error response from the storage resource provider.
+ */
+public class ErrorResponse {
+ /**
+ * Azure Storage Resource Provider error response body.
+ */
+ @JsonProperty(value = "error")
+ private ErrorResponseBody error;
+
+ /**
+ * Get azure Storage Resource Provider error response body.
+ *
+ * @return the error value
+ */
+ public ErrorResponseBody error() {
+ return this.error;
+ }
+
+ /**
+ * Set azure Storage Resource Provider error response body.
+ *
+ * @param error the error value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withError(ErrorResponseBody error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseBody.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseBody.java
new file mode 100644
index 0000000000000..971caa71b42ab
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseBody.java
@@ -0,0 +1,71 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error response body contract.
+ */
+public class ErrorResponseBody {
+ /**
+ * An identifier for the error. Codes are invariant and are intended to be
+ * consumed programmatically.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * A message describing the error, intended to be suitable for display in a
+ * user interface.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get an identifier for the error. Codes are invariant and are intended to be consumed programmatically.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set an identifier for the error. Codes are invariant and are intended to be consumed programmatically.
+ *
+ * @param code the code value to set
+ * @return the ErrorResponseBody object itself.
+ */
+ public ErrorResponseBody withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get a message describing the error, intended to be suitable for display in a user interface.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set a message describing the error, intended to be suitable for display in a user interface.
+ *
+ * @param message the message value to set
+ * @return the ErrorResponseBody object itself.
+ */
+ public ErrorResponseBody withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseException.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseException.java
new file mode 100644
index 0000000000000..01528046c5fb8
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ErrorResponseException.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.storage.v2019_08_01_preview;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocation.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocation.java
new file mode 100644
index 0000000000000..042bed699a6bb
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocation.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The complex type of the extended location.
+ */
+public class ExtendedLocation {
+ /**
+ * The name of the extended location.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The type of the extended location. Possible values include: 'EdgeZone'.
+ */
+ @JsonProperty(value = "type")
+ private ExtendedLocationTypes type;
+
+ /**
+ * Get the name of the extended location.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the extended location.
+ *
+ * @param name the name value to set
+ * @return the ExtendedLocation object itself.
+ */
+ public ExtendedLocation withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of the extended location. Possible values include: 'EdgeZone'.
+ *
+ * @return the type value
+ */
+ public ExtendedLocationTypes type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of the extended location. Possible values include: 'EdgeZone'.
+ *
+ * @param type the type value to set
+ * @return the ExtendedLocation object itself.
+ */
+ public ExtendedLocation withType(ExtendedLocationTypes type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocationTypes.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocationTypes.java
new file mode 100644
index 0000000000000..c918c6e5779af
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ExtendedLocationTypes.java
@@ -0,0 +1,38 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ExtendedLocationTypes.
+ */
+public final class ExtendedLocationTypes extends ExpandableStringEnum {
+ /** Static value EdgeZone for ExtendedLocationTypes. */
+ public static final ExtendedLocationTypes EDGE_ZONE = fromString("EdgeZone");
+
+ /**
+ * Creates or finds a ExtendedLocationTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ExtendedLocationTypes
+ */
+ @JsonCreator
+ public static ExtendedLocationTypes fromString(String name) {
+ return fromString(name, ExtendedLocationTypes.class);
+ }
+
+ /**
+ * @return known ExtendedLocationTypes values
+ */
+ public static Collection values() {
+ return values(ExtendedLocationTypes.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceItems.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceItems.java
new file mode 100644
index 0000000000000..28160b07bdf17
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceItems.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileServiceItemsInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileServicePropertiesInner;
+import java.util.List;
+
+/**
+ * Type representing FileServiceItems.
+ */
+public interface FileServiceItems extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceProperties.java
new file mode 100644
index 0000000000000..d8beec826fa99
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServiceProperties.java
@@ -0,0 +1,180 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileServicePropertiesInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+
+/**
+ * Type representing FileServiceProperties.
+ */
+public interface FileServiceProperties extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the cors value.
+ */
+ CorsRules cors();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the protocolSettings value.
+ */
+ ProtocolSettings protocolSettings();
+
+ /**
+ * @return the shareDeleteRetentionPolicy value.
+ */
+ DeleteRetentionPolicy shareDeleteRetentionPolicy();
+
+ /**
+ * @return the sku value.
+ */
+ SkuInner sku();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the FileServiceProperties definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of FileServiceProperties definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a FileServiceProperties definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the fileserviceproperties definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCreate withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the fileserviceproperties definition allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the File service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the File service
+ * @return the next definition stage
+ */
+ WithCreate withCors(CorsRules cors);
+ }
+
+ /**
+ * The stage of the fileserviceproperties definition allowing to specify ProtocolSettings.
+ */
+ interface WithProtocolSettings {
+ /**
+ * Specifies protocolSettings.
+ * @param protocolSettings Protocol settings for file service
+ * @return the next definition stage
+ */
+ WithCreate withProtocolSettings(ProtocolSettings protocolSettings);
+ }
+
+ /**
+ * The stage of the fileserviceproperties definition allowing to specify ShareDeleteRetentionPolicy.
+ */
+ interface WithShareDeleteRetentionPolicy {
+ /**
+ * Specifies shareDeleteRetentionPolicy.
+ * @param shareDeleteRetentionPolicy The file service properties for share soft delete
+ * @return the next definition stage
+ */
+ WithCreate withShareDeleteRetentionPolicy(DeleteRetentionPolicy shareDeleteRetentionPolicy);
+ }
+
+ /**
+ * 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.WithCors, DefinitionStages.WithProtocolSettings, DefinitionStages.WithShareDeleteRetentionPolicy {
+ }
+ }
+ /**
+ * The template for a FileServiceProperties update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCors, UpdateStages.WithProtocolSettings, UpdateStages.WithShareDeleteRetentionPolicy {
+ }
+
+ /**
+ * Grouping of FileServiceProperties update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the fileserviceproperties update allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the File service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the File service
+ * @return the next update stage
+ */
+ Update withCors(CorsRules cors);
+ }
+
+ /**
+ * The stage of the fileserviceproperties update allowing to specify ProtocolSettings.
+ */
+ interface WithProtocolSettings {
+ /**
+ * Specifies protocolSettings.
+ * @param protocolSettings Protocol settings for file service
+ * @return the next update stage
+ */
+ Update withProtocolSettings(ProtocolSettings protocolSettings);
+ }
+
+ /**
+ * The stage of the fileserviceproperties update allowing to specify ShareDeleteRetentionPolicy.
+ */
+ interface WithShareDeleteRetentionPolicy {
+ /**
+ * Specifies shareDeleteRetentionPolicy.
+ * @param shareDeleteRetentionPolicy The file service properties for share soft delete
+ * @return the next update stage
+ */
+ Update withShareDeleteRetentionPolicy(DeleteRetentionPolicy shareDeleteRetentionPolicy);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServices.java
new file mode 100644
index 0000000000000..95352f8eed1a1
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileServices.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing FileServices.
+ */
+public interface FileServices extends SupportsCreating, HasInner {
+ /**
+ * List all file services in storage accounts.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getServicePropertiesAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShare.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShare.java
new file mode 100644
index 0000000000000..841c768c76d64
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShare.java
@@ -0,0 +1,279 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileShareInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing FileShare.
+ */
+public interface FileShare extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the accessTier value.
+ */
+ ShareAccessTier accessTier();
+
+ /**
+ * @return the accessTierChangeTime value.
+ */
+ DateTime accessTierChangeTime();
+
+ /**
+ * @return the accessTierStatus value.
+ */
+ String accessTierStatus();
+
+ /**
+ * @return the deleted value.
+ */
+ Boolean deleted();
+
+ /**
+ * @return the deletedTime value.
+ */
+ DateTime deletedTime();
+
+ /**
+ * @return the enabledProtocols value.
+ */
+ EnabledProtocols enabledProtocols();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the metadata value.
+ */
+ Map metadata();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the remainingRetentionDays value.
+ */
+ Integer remainingRetentionDays();
+
+ /**
+ * @return the rootSquash value.
+ */
+ RootSquashType rootSquash();
+
+ /**
+ * @return the shareQuota value.
+ */
+ Integer shareQuota();
+
+ /**
+ * @return the shareUsageBytes value.
+ */
+ Long shareUsageBytes();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the version value.
+ */
+ String version();
+
+ /**
+ * The entirety of the FileShare definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithFileService, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of FileShare definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a FileShare definition.
+ */
+ interface Blank extends WithFileService {
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify FileService.
+ */
+ interface WithFileService {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCreate withExistingFileService(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify AccessTier.
+ */
+ interface WithAccessTier {
+ /**
+ * Specifies accessTier.
+ * @param accessTier Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. Possible values include: 'TransactionOptimized', 'Hot', 'Cool', 'Premium'
+ * @return the next definition stage
+ */
+ WithCreate withAccessTier(ShareAccessTier accessTier);
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify EnabledProtocols.
+ */
+ interface WithEnabledProtocols {
+ /**
+ * Specifies enabledProtocols.
+ * @param enabledProtocols The authentication protocol that is used for the file share. Can only be specified when creating a share. Possible values include: 'SMB', 'NFS'
+ * @return the next definition stage
+ */
+ WithCreate withEnabledProtocols(EnabledProtocols enabledProtocols);
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify Metadata.
+ */
+ interface WithMetadata {
+ /**
+ * Specifies metadata.
+ * @param metadata A name-value pair to associate with the share as metadata
+ * @return the next definition stage
+ */
+ WithCreate withMetadata(Map metadata);
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify RootSquash.
+ */
+ interface WithRootSquash {
+ /**
+ * Specifies rootSquash.
+ * @param rootSquash The property is for NFS share only. The default is NoRootSquash. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash'
+ * @return the next definition stage
+ */
+ WithCreate withRootSquash(RootSquashType rootSquash);
+ }
+
+ /**
+ * The stage of the fileshare definition allowing to specify ShareQuota.
+ */
+ interface WithShareQuota {
+ /**
+ * Specifies shareQuota.
+ * @param shareQuota The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400
+ * @return the next definition stage
+ */
+ WithCreate withShareQuota(Integer shareQuota);
+ }
+
+ /**
+ * 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.WithAccessTier, DefinitionStages.WithEnabledProtocols, DefinitionStages.WithMetadata, DefinitionStages.WithRootSquash, DefinitionStages.WithShareQuota {
+ }
+ }
+ /**
+ * The template for a FileShare update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAccessTier, UpdateStages.WithEnabledProtocols, UpdateStages.WithMetadata, UpdateStages.WithRootSquash, UpdateStages.WithShareQuota {
+ }
+
+ /**
+ * Grouping of FileShare update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the fileshare update allowing to specify AccessTier.
+ */
+ interface WithAccessTier {
+ /**
+ * Specifies accessTier.
+ * @param accessTier Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. Possible values include: 'TransactionOptimized', 'Hot', 'Cool', 'Premium'
+ * @return the next update stage
+ */
+ Update withAccessTier(ShareAccessTier accessTier);
+ }
+
+ /**
+ * The stage of the fileshare update allowing to specify EnabledProtocols.
+ */
+ interface WithEnabledProtocols {
+ /**
+ * Specifies enabledProtocols.
+ * @param enabledProtocols The authentication protocol that is used for the file share. Can only be specified when creating a share. Possible values include: 'SMB', 'NFS'
+ * @return the next update stage
+ */
+ Update withEnabledProtocols(EnabledProtocols enabledProtocols);
+ }
+
+ /**
+ * The stage of the fileshare update allowing to specify Metadata.
+ */
+ interface WithMetadata {
+ /**
+ * Specifies metadata.
+ * @param metadata A name-value pair to associate with the share as metadata
+ * @return the next update stage
+ */
+ Update withMetadata(Map metadata);
+ }
+
+ /**
+ * The stage of the fileshare update allowing to specify RootSquash.
+ */
+ interface WithRootSquash {
+ /**
+ * Specifies rootSquash.
+ * @param rootSquash The property is for NFS share only. The default is NoRootSquash. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash'
+ * @return the next update stage
+ */
+ Update withRootSquash(RootSquashType rootSquash);
+ }
+
+ /**
+ * The stage of the fileshare update allowing to specify ShareQuota.
+ */
+ interface WithShareQuota {
+ /**
+ * Specifies shareQuota.
+ * @param shareQuota The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400
+ * @return the next update stage
+ */
+ Update withShareQuota(Integer shareQuota);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShareItem.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShareItem.java
new file mode 100644
index 0000000000000..587a0ebd6a189
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShareItem.java
@@ -0,0 +1,107 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileShareItemInner;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing FileShareItem.
+ */
+public interface FileShareItem extends HasInner, HasManager {
+ /**
+ * @return the accessTier value.
+ */
+ ShareAccessTier accessTier();
+
+ /**
+ * @return the accessTierChangeTime value.
+ */
+ DateTime accessTierChangeTime();
+
+ /**
+ * @return the accessTierStatus value.
+ */
+ String accessTierStatus();
+
+ /**
+ * @return the deleted value.
+ */
+ Boolean deleted();
+
+ /**
+ * @return the deletedTime value.
+ */
+ DateTime deletedTime();
+
+ /**
+ * @return the enabledProtocols value.
+ */
+ EnabledProtocols enabledProtocols();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the metadata value.
+ */
+ Map metadata();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the remainingRetentionDays value.
+ */
+ Integer remainingRetentionDays();
+
+ /**
+ * @return the rootSquash value.
+ */
+ RootSquashType rootSquash();
+
+ /**
+ * @return the shareQuota value.
+ */
+ Integer shareQuota();
+
+ /**
+ * @return the shareUsageBytes value.
+ */
+ Long shareUsageBytes();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the version value.
+ */
+ String version();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShares.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShares.java
new file mode 100644
index 0000000000000..8e137a6c944cf
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/FileShares.java
@@ -0,0 +1,66 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.FileSharesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing FileShares.
+ */
+public interface FileShares extends SupportsCreating, HasInner {
+ /**
+ * Lists all shares.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String accountName);
+
+ /**
+ * Gets properties of a specified share.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param shareName The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String shareName);
+
+ /**
+ * Deletes specified share under its account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param shareName The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String shareName);
+
+ /**
+ * Restore a file share within a valid retention days if share soft delete is enabled.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param shareName The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
+ * @param deletedShareName Required. Identify the name of the deleted share that will be restored.
+ * @param deletedShareVersion Required. Identify the version of the deleted share that will be restored.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable restoreAsync(String resourceGroupName, String accountName, String shareName, String deletedShareName, String deletedShareVersion);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStats.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStats.java
new file mode 100644
index 0000000000000..d41157c761f6f
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStats.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.storage.v2019_08_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Statistics related to replication for storage account's Blob, Table, Queue
+ * and File services. It is only available when geo-redundant replication is
+ * enabled for the storage account.
+ */
+public class GeoReplicationStats {
+ /**
+ * The status of the secondary location. Possible values are: - Live:
+ * Indicates that the secondary location is active and operational. -
+ * Bootstrap: Indicates initial synchronization from the primary location
+ * to the secondary location is in progress.This typically occurs when
+ * replication is first enabled. - Unavailable: Indicates that the
+ * secondary location is temporarily unavailable. Possible values include:
+ * 'Live', 'Bootstrap', 'Unavailable'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private GeoReplicationStatus status;
+
+ /**
+ * All primary writes preceding this UTC date/time value are guaranteed to
+ * be available for read operations. Primary writes following this point in
+ * time may or may not be available for reads. Element may be default value
+ * if value of LastSyncTime is not available, this can happen if secondary
+ * is offline or we are in bootstrap.
+ */
+ @JsonProperty(value = "lastSyncTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastSyncTime;
+
+ /**
+ * A boolean flag which indicates whether or not account failover is
+ * supported for the account.
+ */
+ @JsonProperty(value = "canFailover", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean canFailover;
+
+ /**
+ * Get the status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. Possible values include: 'Live', 'Bootstrap', 'Unavailable'.
+ *
+ * @return the status value
+ */
+ public GeoReplicationStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get all primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap.
+ *
+ * @return the lastSyncTime value
+ */
+ public DateTime lastSyncTime() {
+ return this.lastSyncTime;
+ }
+
+ /**
+ * Get a boolean flag which indicates whether or not account failover is supported for the account.
+ *
+ * @return the canFailover value
+ */
+ public Boolean canFailover() {
+ return this.canFailover;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStatus.java
new file mode 100644
index 0000000000000..38d93f163b2d5
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GeoReplicationStatus.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for GeoReplicationStatus.
+ */
+public final class GeoReplicationStatus extends ExpandableStringEnum {
+ /** Static value Live for GeoReplicationStatus. */
+ public static final GeoReplicationStatus LIVE = fromString("Live");
+
+ /** Static value Bootstrap for GeoReplicationStatus. */
+ public static final GeoReplicationStatus BOOTSTRAP = fromString("Bootstrap");
+
+ /** Static value Unavailable for GeoReplicationStatus. */
+ public static final GeoReplicationStatus UNAVAILABLE = fromString("Unavailable");
+
+ /**
+ * Creates or finds a GeoReplicationStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding GeoReplicationStatus
+ */
+ @JsonCreator
+ public static GeoReplicationStatus fromString(String name) {
+ return fromString(name, GeoReplicationStatus.class);
+ }
+
+ /**
+ * @return known GeoReplicationStatus values
+ */
+ public static Collection values() {
+ return values(GeoReplicationStatus.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GetShareExpand.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GetShareExpand.java
new file mode 100644
index 0000000000000..9cdc81b1896cd
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/GetShareExpand.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for GetShareExpand.
+ */
+public enum GetShareExpand {
+ /** Enum value stats. */
+ STATS("stats");
+
+ /** The actual serialized value for a GetShareExpand instance. */
+ private String value;
+
+ GetShareExpand(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a GetShareExpand instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed GetShareExpand object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static GetShareExpand fromString(String value) {
+ GetShareExpand[] items = GetShareExpand.values();
+ for (GetShareExpand item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/HttpProtocol.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/HttpProtocol.java
new file mode 100644
index 0000000000000..dc74ada3521ae
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/HttpProtocol.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for HttpProtocol.
+ */
+public enum HttpProtocol {
+ /** Enum value https,http. */
+ HTTPSHTTP("https,http"),
+
+ /** Enum value https. */
+ HTTPS("https");
+
+ /** The actual serialized value for a HttpProtocol instance. */
+ private String value;
+
+ HttpProtocol(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a HttpProtocol instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed HttpProtocol object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static HttpProtocol fromString(String value) {
+ HttpProtocol[] items = HttpProtocol.values();
+ for (HttpProtocol item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/IPRule.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/IPRule.java
new file mode 100644
index 0000000000000..81039bdfebd57
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/IPRule.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * IP rule with specific IP or IP range in CIDR format.
+ */
+public class IPRule {
+ /**
+ * Specifies the IP or IP range in CIDR format. Only IPV4 address is
+ * allowed.
+ */
+ @JsonProperty(value = "value", required = true)
+ private String iPAddressOrRange;
+
+ /**
+ * The action of IP ACL rule. Possible values include: 'Allow'.
+ */
+ @JsonProperty(value = "action")
+ private Action action;
+
+ /**
+ * Get specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
+ *
+ * @return the iPAddressOrRange value
+ */
+ public String iPAddressOrRange() {
+ return this.iPAddressOrRange;
+ }
+
+ /**
+ * Set specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
+ *
+ * @param iPAddressOrRange the iPAddressOrRange value to set
+ * @return the IPRule object itself.
+ */
+ public IPRule withIPAddressOrRange(String iPAddressOrRange) {
+ this.iPAddressOrRange = iPAddressOrRange;
+ return this;
+ }
+
+ /**
+ * Get the action of IP ACL rule. Possible values include: 'Allow'.
+ *
+ * @return the action value
+ */
+ public Action action() {
+ return this.action;
+ }
+
+ /**
+ * Set the action of IP ACL rule. Possible values include: 'Allow'.
+ *
+ * @param action the action value to set
+ * @return the IPRule object itself.
+ */
+ public IPRule withAction(Action action) {
+ this.action = action;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Identity.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Identity.java
new file mode 100644
index 0000000000000..be464d5d53478
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Identity.java
@@ -0,0 +1,80 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the resource.
+ */
+public class Identity {
+ /**
+ * The principal ID of resource identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant ID of resource.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The identity type.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of Identity class.
+ */
+ public Identity() {
+ type = "SystemAssigned";
+ }
+
+ /**
+ * Get the principal ID of resource identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant ID of resource.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the identity type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type.
+ *
+ * @param type the type value to set
+ * @return the Identity object itself.
+ */
+ public Identity withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicy.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicy.java
new file mode 100644
index 0000000000000..d0635380afc36
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicy.java
@@ -0,0 +1,181 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ImmutabilityPolicyInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+
+/**
+ * Type representing ImmutabilityPolicy.
+ */
+public interface ImmutabilityPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the allowProtectedAppendWrites value.
+ */
+ Boolean allowProtectedAppendWrites();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the immutabilityPeriodSinceCreationInDays value.
+ */
+ Integer immutabilityPeriodSinceCreationInDays();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ ImmutabilityPolicyState state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ImmutabilityPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithContainer, DefinitionStages.WithIfMatch, DefinitionStages.WithImmutabilityPeriodSinceCreationInDays, DefinitionStages.WithAllowProtectedAppendWrites, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ImmutabilityPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ImmutabilityPolicy definition.
+ */
+ interface Blank extends WithContainer {
+ }
+
+ /**
+ * The stage of the immutabilitypolicy definition allowing to specify Container.
+ */
+ interface WithContainer {
+ /**
+ * Specifies resourceGroupName, accountName, containerName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @param containerName The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number
+ * @return the next definition stage
+ */
+ WithIfMatch withExistingContainer(String resourceGroupName, String accountName, String containerName);
+ }
+
+ /**
+ * The stage of the immutabilitypolicy definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied
+ * @return the next definition stage
+ */
+ WithImmutabilityPeriodSinceCreationInDays withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the immutabilitypolicy definition allowing to specify ImmutabilityPeriodSinceCreationInDays.
+ */
+ interface WithImmutabilityPeriodSinceCreationInDays {
+ /**
+ * Specifies immutabilityPeriodSinceCreationInDays.
+ * @param immutabilityPeriodSinceCreationInDays The immutability period for the blobs in the container since the policy creation, in days
+ * @return the next definition stage
+ */
+ WithAllowProtectedAppendWrites withImmutabilityPeriodSinceCreationInDays(Integer immutabilityPeriodSinceCreationInDays);
+ }
+
+ /**
+ * The stage of the immutabilitypolicy definition allowing to specify AllowProtectedAppendWrites.
+ */
+ interface WithAllowProtectedAppendWrites {
+ /**
+ * Specifies allowProtectedAppendWrites.
+ * @param allowProtectedAppendWrites This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API
+ * @return the next definition stage
+ */
+ WithCreate withAllowProtectedAppendWrites(Boolean allowProtectedAppendWrites);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a ImmutabilityPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithImmutabilityPeriodSinceCreationInDays, UpdateStages.WithAllowProtectedAppendWrites {
+ }
+
+ /**
+ * Grouping of ImmutabilityPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the immutabilitypolicy update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the immutabilitypolicy update allowing to specify ImmutabilityPeriodSinceCreationInDays.
+ */
+ interface WithImmutabilityPeriodSinceCreationInDays {
+ /**
+ * Specifies immutabilityPeriodSinceCreationInDays.
+ * @param immutabilityPeriodSinceCreationInDays The immutability period for the blobs in the container since the policy creation, in days
+ * @return the next update stage
+ */
+ Update withImmutabilityPeriodSinceCreationInDays(Integer immutabilityPeriodSinceCreationInDays);
+ }
+
+ /**
+ * The stage of the immutabilitypolicy update allowing to specify AllowProtectedAppendWrites.
+ */
+ interface WithAllowProtectedAppendWrites {
+ /**
+ * Specifies allowProtectedAppendWrites.
+ * @param allowProtectedAppendWrites This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API
+ * @return the next update stage
+ */
+ Update withAllowProtectedAppendWrites(Boolean allowProtectedAppendWrites);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyProperties.java
new file mode 100644
index 0000000000000..bf5104400a680
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyProperties.java
@@ -0,0 +1,125 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The properties of an ImmutabilityPolicy of a blob container.
+ */
+@JsonFlatten
+public class ImmutabilityPolicyProperties {
+ /**
+ * The immutability period for the blobs in the container since the policy
+ * creation, in days.
+ */
+ @JsonProperty(value = "properties.immutabilityPeriodSinceCreationInDays")
+ private Integer immutabilityPeriodSinceCreationInDays;
+
+ /**
+ * The ImmutabilityPolicy state of a blob container, possible values
+ * include: Locked and Unlocked. Possible values include: 'Locked',
+ * 'Unlocked'.
+ */
+ @JsonProperty(value = "properties.state", access = JsonProperty.Access.WRITE_ONLY)
+ private ImmutabilityPolicyState state;
+
+ /**
+ * This property can only be changed for unlocked time-based retention
+ * policies. When enabled, new blocks can be written to an append blob
+ * while maintaining immutability protection and compliance. Only new
+ * blocks can be added and any existing blocks cannot be modified or
+ * deleted. This property cannot be changed with ExtendImmutabilityPolicy
+ * API.
+ */
+ @JsonProperty(value = "properties.allowProtectedAppendWrites")
+ private Boolean allowProtectedAppendWrites;
+
+ /**
+ * ImmutabilityPolicy Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * The ImmutabilityPolicy update history of the blob container.
+ */
+ @JsonProperty(value = "updateHistory", access = JsonProperty.Access.WRITE_ONLY)
+ private List updateHistory;
+
+ /**
+ * Get the immutability period for the blobs in the container since the policy creation, in days.
+ *
+ * @return the immutabilityPeriodSinceCreationInDays value
+ */
+ public Integer immutabilityPeriodSinceCreationInDays() {
+ return this.immutabilityPeriodSinceCreationInDays;
+ }
+
+ /**
+ * Set the immutability period for the blobs in the container since the policy creation, in days.
+ *
+ * @param immutabilityPeriodSinceCreationInDays the immutabilityPeriodSinceCreationInDays value to set
+ * @return the ImmutabilityPolicyProperties object itself.
+ */
+ public ImmutabilityPolicyProperties withImmutabilityPeriodSinceCreationInDays(Integer immutabilityPeriodSinceCreationInDays) {
+ this.immutabilityPeriodSinceCreationInDays = immutabilityPeriodSinceCreationInDays;
+ return this;
+ }
+
+ /**
+ * Get the ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. Possible values include: 'Locked', 'Unlocked'.
+ *
+ * @return the state value
+ */
+ public ImmutabilityPolicyState state() {
+ return this.state;
+ }
+
+ /**
+ * Get this property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API.
+ *
+ * @return the allowProtectedAppendWrites value
+ */
+ public Boolean allowProtectedAppendWrites() {
+ return this.allowProtectedAppendWrites;
+ }
+
+ /**
+ * Set this property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API.
+ *
+ * @param allowProtectedAppendWrites the allowProtectedAppendWrites value to set
+ * @return the ImmutabilityPolicyProperties object itself.
+ */
+ public ImmutabilityPolicyProperties withAllowProtectedAppendWrites(Boolean allowProtectedAppendWrites) {
+ this.allowProtectedAppendWrites = allowProtectedAppendWrites;
+ return this;
+ }
+
+ /**
+ * Get immutabilityPolicy Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Get the ImmutabilityPolicy update history of the blob container.
+ *
+ * @return the updateHistory value
+ */
+ public List updateHistory() {
+ return this.updateHistory;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyState.java
new file mode 100644
index 0000000000000..c25ceed3c88e8
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyState.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ImmutabilityPolicyState.
+ */
+public final class ImmutabilityPolicyState extends ExpandableStringEnum {
+ /** Static value Locked for ImmutabilityPolicyState. */
+ public static final ImmutabilityPolicyState LOCKED = fromString("Locked");
+
+ /** Static value Unlocked for ImmutabilityPolicyState. */
+ public static final ImmutabilityPolicyState UNLOCKED = fromString("Unlocked");
+
+ /**
+ * Creates or finds a ImmutabilityPolicyState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ImmutabilityPolicyState
+ */
+ @JsonCreator
+ public static ImmutabilityPolicyState fromString(String name) {
+ return fromString(name, ImmutabilityPolicyState.class);
+ }
+
+ /**
+ * @return known ImmutabilityPolicyState values
+ */
+ public static Collection values() {
+ return values(ImmutabilityPolicyState.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyUpdateType.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyUpdateType.java
new file mode 100644
index 0000000000000..dc6c8dbd2c044
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ImmutabilityPolicyUpdateType.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ImmutabilityPolicyUpdateType.
+ */
+public final class ImmutabilityPolicyUpdateType extends ExpandableStringEnum {
+ /** Static value put for ImmutabilityPolicyUpdateType. */
+ public static final ImmutabilityPolicyUpdateType PUT = fromString("put");
+
+ /** Static value lock for ImmutabilityPolicyUpdateType. */
+ public static final ImmutabilityPolicyUpdateType LOCK = fromString("lock");
+
+ /** Static value extend for ImmutabilityPolicyUpdateType. */
+ public static final ImmutabilityPolicyUpdateType EXTEND = fromString("extend");
+
+ /**
+ * Creates or finds a ImmutabilityPolicyUpdateType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ImmutabilityPolicyUpdateType
+ */
+ @JsonCreator
+ public static ImmutabilityPolicyUpdateType fromString(String name) {
+ return fromString(name, ImmutabilityPolicyUpdateType.class);
+ }
+
+ /**
+ * @return known ImmutabilityPolicyUpdateType values
+ */
+ public static Collection values() {
+ return values(ImmutabilityPolicyUpdateType.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyPermission.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyPermission.java
new file mode 100644
index 0000000000000..c9cf28ad5916a
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyPermission.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for KeyPermission.
+ */
+public enum KeyPermission {
+ /** Enum value Read. */
+ READ("Read"),
+
+ /** Enum value Full. */
+ FULL("Full");
+
+ /** The actual serialized value for a KeyPermission instance. */
+ private String value;
+
+ KeyPermission(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a KeyPermission instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed KeyPermission object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static KeyPermission fromString(String value) {
+ KeyPermission[] items = KeyPermission.values();
+ for (KeyPermission item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeySource.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeySource.java
new file mode 100644
index 0000000000000..e6430b1578566
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeySource.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for KeySource.
+ */
+public final class KeySource extends ExpandableStringEnum {
+ /** Static value Microsoft.Storage for KeySource. */
+ public static final KeySource MICROSOFT_STORAGE = fromString("Microsoft.Storage");
+
+ /** Static value Microsoft.Keyvault for KeySource. */
+ public static final KeySource MICROSOFT_KEYVAULT = fromString("Microsoft.Keyvault");
+
+ /**
+ * Creates or finds a KeySource from its string representation.
+ * @param name a name to look for
+ * @return the corresponding KeySource
+ */
+ @JsonCreator
+ public static KeySource fromString(String name) {
+ return fromString(name, KeySource.class);
+ }
+
+ /**
+ * @return known KeySource values
+ */
+ public static Collection values() {
+ return values(KeySource.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyType.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyType.java
new file mode 100644
index 0000000000000..4a035af7e6326
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyType.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for KeyType.
+ */
+public final class KeyType extends ExpandableStringEnum {
+ /** Static value Service for KeyType. */
+ public static final KeyType SERVICE = fromString("Service");
+
+ /** Static value Account for KeyType. */
+ public static final KeyType ACCOUNT = fromString("Account");
+
+ /**
+ * Creates or finds a KeyType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding KeyType
+ */
+ @JsonCreator
+ public static KeyType fromString(String name) {
+ return fromString(name, KeyType.class);
+ }
+
+ /**
+ * @return known KeyType values
+ */
+ public static Collection values() {
+ return values(KeyType.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyVaultProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyVaultProperties.java
new file mode 100644
index 0000000000000..7e2d3dcd9c951
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/KeyVaultProperties.java
@@ -0,0 +1,126 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of key vault.
+ */
+public class KeyVaultProperties {
+ /**
+ * The name of KeyVault key.
+ */
+ @JsonProperty(value = "keyname")
+ private String keyName;
+
+ /**
+ * The version of KeyVault key.
+ */
+ @JsonProperty(value = "keyversion")
+ private String keyVersion;
+
+ /**
+ * The Uri of KeyVault.
+ */
+ @JsonProperty(value = "keyvaulturi")
+ private String keyVaultUri;
+
+ /**
+ * The object identifier of the current versioned Key Vault Key in use.
+ */
+ @JsonProperty(value = "currentVersionedKeyIdentifier", access = JsonProperty.Access.WRITE_ONLY)
+ private String currentVersionedKeyIdentifier;
+
+ /**
+ * Timestamp of last rotation of the Key Vault Key.
+ */
+ @JsonProperty(value = "lastKeyRotationTimestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastKeyRotationTimestamp;
+
+ /**
+ * Get the name of KeyVault key.
+ *
+ * @return the keyName value
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set the name of KeyVault key.
+ *
+ * @param keyName the keyName value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+ /**
+ * Get the version of KeyVault key.
+ *
+ * @return the keyVersion value
+ */
+ public String keyVersion() {
+ return this.keyVersion;
+ }
+
+ /**
+ * Set the version of KeyVault key.
+ *
+ * @param keyVersion the keyVersion value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyVersion(String keyVersion) {
+ this.keyVersion = keyVersion;
+ return this;
+ }
+
+ /**
+ * Get the Uri of KeyVault.
+ *
+ * @return the keyVaultUri value
+ */
+ public String keyVaultUri() {
+ return this.keyVaultUri;
+ }
+
+ /**
+ * Set the Uri of KeyVault.
+ *
+ * @param keyVaultUri the keyVaultUri value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyVaultUri(String keyVaultUri) {
+ this.keyVaultUri = keyVaultUri;
+ return this;
+ }
+
+ /**
+ * Get the object identifier of the current versioned Key Vault Key in use.
+ *
+ * @return the currentVersionedKeyIdentifier value
+ */
+ public String currentVersionedKeyIdentifier() {
+ return this.currentVersionedKeyIdentifier;
+ }
+
+ /**
+ * Get timestamp of last rotation of the Key Vault Key.
+ *
+ * @return the lastKeyRotationTimestamp value
+ */
+ public DateTime lastKeyRotationTimestamp() {
+ return this.lastKeyRotationTimestamp;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Kind.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Kind.java
new file mode 100644
index 0000000000000..4d69217196d4a
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Kind.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Kind.
+ */
+public final class Kind extends ExpandableStringEnum {
+ /** Static value Storage for Kind. */
+ public static final Kind STORAGE = fromString("Storage");
+
+ /** Static value StorageV2 for Kind. */
+ public static final Kind STORAGE_V2 = fromString("StorageV2");
+
+ /** Static value BlobStorage for Kind. */
+ public static final Kind BLOB_STORAGE = fromString("BlobStorage");
+
+ /** Static value FileStorage for Kind. */
+ public static final Kind FILE_STORAGE = fromString("FileStorage");
+
+ /** Static value BlockBlobStorage for Kind. */
+ public static final Kind BLOCK_BLOB_STORAGE = fromString("BlockBlobStorage");
+
+ /**
+ * Creates or finds a Kind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Kind
+ */
+ @JsonCreator
+ public static Kind fromString(String name) {
+ return fromString(name, Kind.class);
+ }
+
+ /**
+ * @return known Kind values
+ */
+ public static Collection values() {
+ return values(Kind.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LargeFileSharesState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LargeFileSharesState.java
new file mode 100644
index 0000000000000..93dbb0ab0beb0
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LargeFileSharesState.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LargeFileSharesState.
+ */
+public final class LargeFileSharesState extends ExpandableStringEnum {
+ /** Static value Disabled for LargeFileSharesState. */
+ public static final LargeFileSharesState DISABLED = fromString("Disabled");
+
+ /** Static value Enabled for LargeFileSharesState. */
+ public static final LargeFileSharesState ENABLED = fromString("Enabled");
+
+ /**
+ * Creates or finds a LargeFileSharesState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LargeFileSharesState
+ */
+ @JsonCreator
+ public static LargeFileSharesState fromString(String name) {
+ return fromString(name, LargeFileSharesState.class);
+ }
+
+ /**
+ * @return known LargeFileSharesState values
+ */
+ public static Collection values() {
+ return values(LargeFileSharesState.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LastAccessTimeTrackingPolicy.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LastAccessTimeTrackingPolicy.java
new file mode 100644
index 0000000000000..a1e5ea2df9ccf
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LastAccessTimeTrackingPolicy.java
@@ -0,0 +1,126 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The blob service properties for Last access time based tracking policy.
+ */
+public class LastAccessTimeTrackingPolicy {
+ /**
+ * When set to true last access time based tracking is enabled.
+ */
+ @JsonProperty(value = "enable", required = true)
+ private boolean enable;
+
+ /**
+ * Name of the policy. The valid value is AccessTimeTracking. This field is
+ * currently read only. Possible values include: 'AccessTimeTracking'.
+ */
+ @JsonProperty(value = "name")
+ private Name name;
+
+ /**
+ * The field specifies blob object tracking granularity in days, typically
+ * how often the blob object should be tracked.This field is currently read
+ * only with value as 1.
+ */
+ @JsonProperty(value = "trackingGranularityInDays")
+ private Integer trackingGranularityInDays;
+
+ /**
+ * An array of predefined supported blob types. Only blockBlob is the
+ * supported value. This field is currently read only.
+ */
+ @JsonProperty(value = "blobType")
+ private List blobType;
+
+ /**
+ * Get when set to true last access time based tracking is enabled.
+ *
+ * @return the enable value
+ */
+ public boolean enable() {
+ return this.enable;
+ }
+
+ /**
+ * Set when set to true last access time based tracking is enabled.
+ *
+ * @param enable the enable value to set
+ * @return the LastAccessTimeTrackingPolicy object itself.
+ */
+ public LastAccessTimeTrackingPolicy withEnable(boolean enable) {
+ this.enable = enable;
+ return this;
+ }
+
+ /**
+ * Get name of the policy. The valid value is AccessTimeTracking. This field is currently read only. Possible values include: 'AccessTimeTracking'.
+ *
+ * @return the name value
+ */
+ public Name name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the policy. The valid value is AccessTimeTracking. This field is currently read only. Possible values include: 'AccessTimeTracking'.
+ *
+ * @param name the name value to set
+ * @return the LastAccessTimeTrackingPolicy object itself.
+ */
+ public LastAccessTimeTrackingPolicy withName(Name name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1.
+ *
+ * @return the trackingGranularityInDays value
+ */
+ public Integer trackingGranularityInDays() {
+ return this.trackingGranularityInDays;
+ }
+
+ /**
+ * Set the field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1.
+ *
+ * @param trackingGranularityInDays the trackingGranularityInDays value to set
+ * @return the LastAccessTimeTrackingPolicy object itself.
+ */
+ public LastAccessTimeTrackingPolicy withTrackingGranularityInDays(Integer trackingGranularityInDays) {
+ this.trackingGranularityInDays = trackingGranularityInDays;
+ return this;
+ }
+
+ /**
+ * Get an array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only.
+ *
+ * @return the blobType value
+ */
+ public List blobType() {
+ return this.blobType;
+ }
+
+ /**
+ * Set an array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only.
+ *
+ * @param blobType the blobType value to set
+ * @return the LastAccessTimeTrackingPolicy object itself.
+ */
+ public LastAccessTimeTrackingPolicy withBlobType(List blobType) {
+ this.blobType = blobType;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerRequest.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerRequest.java
new file mode 100644
index 0000000000000..f3bcc5e61df29
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerRequest.java
@@ -0,0 +1,152 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Lease Container request schema.
+ */
+public class LeaseContainerRequest {
+ /**
+ * Specifies the lease action. Can be one of the available actions.
+ * Possible values include: 'Acquire', 'Renew', 'Change', 'Release',
+ * 'Break'.
+ */
+ @JsonProperty(value = "action", required = true)
+ private String action;
+
+ /**
+ * Identifies the lease. Can be specified in any valid GUID string format.
+ */
+ @JsonProperty(value = "leaseId")
+ private String leaseId;
+
+ /**
+ * Optional. For a break action, proposed duration the lease should
+ * continue before it is broken, in seconds, between 0 and 60.
+ */
+ @JsonProperty(value = "breakPeriod")
+ private Integer breakPeriod;
+
+ /**
+ * Required for acquire. Specifies the duration of the lease, in seconds,
+ * or negative one (-1) for a lease that never expires.
+ */
+ @JsonProperty(value = "leaseDuration")
+ private Integer leaseDuration;
+
+ /**
+ * Optional for acquire, required for change. Proposed lease ID, in a GUID
+ * string format.
+ */
+ @JsonProperty(value = "proposedLeaseId")
+ private String proposedLeaseId;
+
+ /**
+ * Get specifies the lease action. Can be one of the available actions. Possible values include: 'Acquire', 'Renew', 'Change', 'Release', 'Break'.
+ *
+ * @return the action value
+ */
+ public String action() {
+ return this.action;
+ }
+
+ /**
+ * Set specifies the lease action. Can be one of the available actions. Possible values include: 'Acquire', 'Renew', 'Change', 'Release', 'Break'.
+ *
+ * @param action the action value to set
+ * @return the LeaseContainerRequest object itself.
+ */
+ public LeaseContainerRequest withAction(String action) {
+ this.action = action;
+ return this;
+ }
+
+ /**
+ * Get identifies the lease. Can be specified in any valid GUID string format.
+ *
+ * @return the leaseId value
+ */
+ public String leaseId() {
+ return this.leaseId;
+ }
+
+ /**
+ * Set identifies the lease. Can be specified in any valid GUID string format.
+ *
+ * @param leaseId the leaseId value to set
+ * @return the LeaseContainerRequest object itself.
+ */
+ public LeaseContainerRequest withLeaseId(String leaseId) {
+ this.leaseId = leaseId;
+ return this;
+ }
+
+ /**
+ * Get optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60.
+ *
+ * @return the breakPeriod value
+ */
+ public Integer breakPeriod() {
+ return this.breakPeriod;
+ }
+
+ /**
+ * Set optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60.
+ *
+ * @param breakPeriod the breakPeriod value to set
+ * @return the LeaseContainerRequest object itself.
+ */
+ public LeaseContainerRequest withBreakPeriod(Integer breakPeriod) {
+ this.breakPeriod = breakPeriod;
+ return this;
+ }
+
+ /**
+ * Get required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires.
+ *
+ * @return the leaseDuration value
+ */
+ public Integer leaseDuration() {
+ return this.leaseDuration;
+ }
+
+ /**
+ * Set required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires.
+ *
+ * @param leaseDuration the leaseDuration value to set
+ * @return the LeaseContainerRequest object itself.
+ */
+ public LeaseContainerRequest withLeaseDuration(Integer leaseDuration) {
+ this.leaseDuration = leaseDuration;
+ return this;
+ }
+
+ /**
+ * Get optional for acquire, required for change. Proposed lease ID, in a GUID string format.
+ *
+ * @return the proposedLeaseId value
+ */
+ public String proposedLeaseId() {
+ return this.proposedLeaseId;
+ }
+
+ /**
+ * Set optional for acquire, required for change. Proposed lease ID, in a GUID string format.
+ *
+ * @param proposedLeaseId the proposedLeaseId value to set
+ * @return the LeaseContainerRequest object itself.
+ */
+ public LeaseContainerRequest withProposedLeaseId(String proposedLeaseId) {
+ this.proposedLeaseId = proposedLeaseId;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerResponse.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerResponse.java
new file mode 100644
index 0000000000000..fae062cce29ed
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseContainerResponse.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.LeaseContainerResponseInner;
+
+/**
+ * Type representing LeaseContainerResponse.
+ */
+public interface LeaseContainerResponse extends HasInner, HasManager {
+ /**
+ * @return the leaseId value.
+ */
+ String leaseId();
+
+ /**
+ * @return the leaseTimeSeconds value.
+ */
+ String leaseTimeSeconds();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseDuration.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseDuration.java
new file mode 100644
index 0000000000000..b7e506b508709
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseDuration.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LeaseDuration.
+ */
+public final class LeaseDuration extends ExpandableStringEnum {
+ /** Static value Infinite for LeaseDuration. */
+ public static final LeaseDuration INFINITE = fromString("Infinite");
+
+ /** Static value Fixed for LeaseDuration. */
+ public static final LeaseDuration FIXED = fromString("Fixed");
+
+ /**
+ * Creates or finds a LeaseDuration from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LeaseDuration
+ */
+ @JsonCreator
+ public static LeaseDuration fromString(String name) {
+ return fromString(name, LeaseDuration.class);
+ }
+
+ /**
+ * @return known LeaseDuration values
+ */
+ public static Collection values() {
+ return values(LeaseDuration.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseState.java
new file mode 100644
index 0000000000000..0de715a4f0e58
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseState.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LeaseState.
+ */
+public final class LeaseState extends ExpandableStringEnum {
+ /** Static value Available for LeaseState. */
+ public static final LeaseState AVAILABLE = fromString("Available");
+
+ /** Static value Leased for LeaseState. */
+ public static final LeaseState LEASED = fromString("Leased");
+
+ /** Static value Expired for LeaseState. */
+ public static final LeaseState EXPIRED = fromString("Expired");
+
+ /** Static value Breaking for LeaseState. */
+ public static final LeaseState BREAKING = fromString("Breaking");
+
+ /** Static value Broken for LeaseState. */
+ public static final LeaseState BROKEN = fromString("Broken");
+
+ /**
+ * Creates or finds a LeaseState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LeaseState
+ */
+ @JsonCreator
+ public static LeaseState fromString(String name) {
+ return fromString(name, LeaseState.class);
+ }
+
+ /**
+ * @return known LeaseState values
+ */
+ public static Collection values() {
+ return values(LeaseState.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseStatus.java
new file mode 100644
index 0000000000000..1751c3f663166
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LeaseStatus.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LeaseStatus.
+ */
+public final class LeaseStatus extends ExpandableStringEnum {
+ /** Static value Locked for LeaseStatus. */
+ public static final LeaseStatus LOCKED = fromString("Locked");
+
+ /** Static value Unlocked for LeaseStatus. */
+ public static final LeaseStatus UNLOCKED = fromString("Unlocked");
+
+ /**
+ * Creates or finds a LeaseStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LeaseStatus
+ */
+ @JsonCreator
+ public static LeaseStatus fromString(String name) {
+ return fromString(name, LeaseStatus.class);
+ }
+
+ /**
+ * @return known LeaseStatus values
+ */
+ public static Collection values() {
+ return values(LeaseStatus.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHold.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHold.java
new file mode 100644
index 0000000000000..72d4a5cb47237
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHold.java
@@ -0,0 +1,31 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.LegalHoldInner;
+import java.util.List;
+
+/**
+ * Type representing LegalHold.
+ */
+public interface LegalHold extends HasInner, HasManager {
+ /**
+ * @return the hasLegalHold value.
+ */
+ Boolean hasLegalHold();
+
+ /**
+ * @return the tags value.
+ */
+ List tags();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHoldProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHoldProperties.java
new file mode 100644
index 0000000000000..3ea0a758eae30
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/LegalHoldProperties.java
@@ -0,0 +1,63 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The LegalHold property of a blob container.
+ */
+public class LegalHoldProperties {
+ /**
+ * The hasLegalHold public property is set to true by SRP if there are at
+ * least one existing tag. The hasLegalHold public property is set to false
+ * by SRP if all existing legal hold tags are cleared out. There can be a
+ * maximum of 1000 blob containers with hasLegalHold=true for a given
+ * account.
+ */
+ @JsonProperty(value = "hasLegalHold", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean hasLegalHold;
+
+ /**
+ * The list of LegalHold tags of a blob container.
+ */
+ @JsonProperty(value = "tags")
+ private List tags;
+
+ /**
+ * Get the hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.
+ *
+ * @return the hasLegalHold value
+ */
+ public Boolean hasLegalHold() {
+ return this.hasLegalHold;
+ }
+
+ /**
+ * Get the list of LegalHold tags of a blob container.
+ *
+ * @return the tags value
+ */
+ public List tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the list of LegalHold tags of a blob container.
+ *
+ * @param tags the tags value to set
+ * @return the LegalHoldProperties object itself.
+ */
+ public LegalHoldProperties withTags(List tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListAccountSasResponse.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListAccountSasResponse.java
new file mode 100644
index 0000000000000..409129cba6e19
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListAccountSasResponse.java
@@ -0,0 +1,25 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListAccountSasResponseInner;
+
+/**
+ * Type representing ListAccountSasResponse.
+ */
+public interface ListAccountSasResponse extends HasInner, HasManager {
+ /**
+ * @return the accountSasToken value.
+ */
+ String accountSasToken();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainerItem.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainerItem.java
new file mode 100644
index 0000000000000..04f730c3e43cb
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainerItem.java
@@ -0,0 +1,122 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListContainerItemInner;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing ListContainerItem.
+ */
+public interface ListContainerItem extends HasInner, HasManager {
+ /**
+ * @return the defaultEncryptionScope value.
+ */
+ String defaultEncryptionScope();
+
+ /**
+ * @return the deleted value.
+ */
+ Boolean deleted();
+
+ /**
+ * @return the deletedTime value.
+ */
+ DateTime deletedTime();
+
+ /**
+ * @return the denyEncryptionScopeOverride value.
+ */
+ Boolean denyEncryptionScopeOverride();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the hasImmutabilityPolicy value.
+ */
+ Boolean hasImmutabilityPolicy();
+
+ /**
+ * @return the hasLegalHold value.
+ */
+ Boolean hasLegalHold();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the immutabilityPolicy value.
+ */
+ ImmutabilityPolicyProperties immutabilityPolicy();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the leaseDuration value.
+ */
+ LeaseDuration leaseDuration();
+
+ /**
+ * @return the leaseState value.
+ */
+ LeaseState leaseState();
+
+ /**
+ * @return the leaseStatus value.
+ */
+ LeaseStatus leaseStatus();
+
+ /**
+ * @return the legalHold value.
+ */
+ LegalHoldProperties legalHold();
+
+ /**
+ * @return the metadata value.
+ */
+ Map metadata();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the publicAccess value.
+ */
+ PublicAccess publicAccess();
+
+ /**
+ * @return the remainingRetentionDays value.
+ */
+ Integer remainingRetentionDays();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the version value.
+ */
+ String version();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainersInclude.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainersInclude.java
new file mode 100644
index 0000000000000..8594762e319f2
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListContainersInclude.java
@@ -0,0 +1,38 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ListContainersInclude.
+ */
+public final class ListContainersInclude extends ExpandableStringEnum {
+ /** Static value deleted for ListContainersInclude. */
+ public static final ListContainersInclude DELETED = fromString("deleted");
+
+ /**
+ * Creates or finds a ListContainersInclude from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ListContainersInclude
+ */
+ @JsonCreator
+ public static ListContainersInclude fromString(String name) {
+ return fromString(name, ListContainersInclude.class);
+ }
+
+ /**
+ * @return known ListContainersInclude values
+ */
+ public static Collection values() {
+ return values(ListContainersInclude.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListKeyExpand.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListKeyExpand.java
new file mode 100644
index 0000000000000..336692470b006
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListKeyExpand.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ListKeyExpand.
+ */
+public enum ListKeyExpand {
+ /** Enum value kerb. */
+ KERB("kerb");
+
+ /** The actual serialized value for a ListKeyExpand instance. */
+ private String value;
+
+ ListKeyExpand(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ListKeyExpand instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ListKeyExpand object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ListKeyExpand fromString(String value) {
+ ListKeyExpand[] items = ListKeyExpand.values();
+ for (ListKeyExpand item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueue.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueue.java
new file mode 100644
index 0000000000000..45cd976f362e5
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueue.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListQueueInner;
+import java.util.Map;
+
+/**
+ * Type representing ListQueue.
+ */
+public interface ListQueue extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the metadata value.
+ */
+ Map metadata();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueueServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueueServices.java
new file mode 100644
index 0000000000000..7142daa32b7db
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListQueueServices.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListQueueServicesInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.QueueServicePropertiesInner;
+import java.util.List;
+
+/**
+ * Type representing ListQueueServices.
+ */
+public interface ListQueueServices extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListServiceSasResponse.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListServiceSasResponse.java
new file mode 100644
index 0000000000000..0fd9352d65c01
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListServiceSasResponse.java
@@ -0,0 +1,25 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListServiceSasResponseInner;
+
+/**
+ * Type representing ListServiceSasResponse.
+ */
+public interface ListServiceSasResponse extends HasInner, HasManager {
+ /**
+ * @return the serviceSasToken value.
+ */
+ String serviceSasToken();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListSharesExpand.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListSharesExpand.java
new file mode 100644
index 0000000000000..0a19a97fb73c7
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListSharesExpand.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ListSharesExpand.
+ */
+public enum ListSharesExpand {
+ /** Enum value deleted. */
+ DELETED("deleted");
+
+ /** The actual serialized value for a ListSharesExpand instance. */
+ private String value;
+
+ ListSharesExpand(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ListSharesExpand instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ListSharesExpand object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ListSharesExpand fromString(String value) {
+ ListSharesExpand[] items = ListSharesExpand.values();
+ for (ListSharesExpand item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListTableServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListTableServices.java
new file mode 100644
index 0000000000000..0e65d2832e172
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ListTableServices.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ListTableServicesInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.TableServicePropertiesInner;
+import java.util.List;
+
+/**
+ * Type representing ListTableServices.
+ */
+public interface ListTableServices extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicies.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicies.java
new file mode 100644
index 0000000000000..22b1c91341863
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicies.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ManagementPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ManagementPolicies.
+ */
+public interface ManagementPolicies extends SupportsCreating, HasInner {
+ /**
+ * Gets the managementpolicy associated with the specified storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes the managementpolicy associated with the specified storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicy.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicy.java
new file mode 100644
index 0000000000000..01f0446a3b7ea
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicy.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ManagementPolicyInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import java.util.List;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ManagementPolicy.
+ */
+public interface ManagementPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the policy value.
+ */
+ ManagementPolicySchema policy();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ManagementPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithPolicy, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ManagementPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ManagementPolicy definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the managementpolicy definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithPolicy withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the managementpolicy definition allowing to specify Policy.
+ */
+ interface WithPolicy {
+ /**
+ * Specifies policy.
+ * @param policy The Storage Account ManagementPolicy, in JSON format. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts
+ * @return the next definition stage
+ */
+ WithCreate withPolicy(ManagementPolicySchema policy);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a ManagementPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPolicy {
+ }
+
+ /**
+ * Grouping of ManagementPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the managementpolicy update allowing to specify Policy.
+ */
+ interface WithPolicy {
+ /**
+ * Specifies policy.
+ * @param policy The Storage Account ManagementPolicy, in JSON format. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts
+ * @return the next update stage
+ */
+ Update withPolicy(ManagementPolicySchema policy);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyAction.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyAction.java
new file mode 100644
index 0000000000000..b2dfd3dc1a918
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyAction.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Actions are applied to the filtered blobs when the execution condition is
+ * met.
+ */
+public class ManagementPolicyAction {
+ /**
+ * The management policy action for base blob.
+ */
+ @JsonProperty(value = "baseBlob")
+ private ManagementPolicyBaseBlob baseBlob;
+
+ /**
+ * The management policy action for snapshot.
+ */
+ @JsonProperty(value = "snapshot")
+ private ManagementPolicySnapShot snapshot;
+
+ /**
+ * Get the management policy action for base blob.
+ *
+ * @return the baseBlob value
+ */
+ public ManagementPolicyBaseBlob baseBlob() {
+ return this.baseBlob;
+ }
+
+ /**
+ * Set the management policy action for base blob.
+ *
+ * @param baseBlob the baseBlob value to set
+ * @return the ManagementPolicyAction object itself.
+ */
+ public ManagementPolicyAction withBaseBlob(ManagementPolicyBaseBlob baseBlob) {
+ this.baseBlob = baseBlob;
+ return this;
+ }
+
+ /**
+ * Get the management policy action for snapshot.
+ *
+ * @return the snapshot value
+ */
+ public ManagementPolicySnapShot snapshot() {
+ return this.snapshot;
+ }
+
+ /**
+ * Set the management policy action for snapshot.
+ *
+ * @param snapshot the snapshot value to set
+ * @return the ManagementPolicyAction object itself.
+ */
+ public ManagementPolicyAction withSnapshot(ManagementPolicySnapShot snapshot) {
+ this.snapshot = snapshot;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyBaseBlob.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyBaseBlob.java
new file mode 100644
index 0000000000000..fcc4a2eb7eafb
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyBaseBlob.java
@@ -0,0 +1,125 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Management policy action for base blob.
+ */
+public class ManagementPolicyBaseBlob {
+ /**
+ * The function to tier blobs to cool storage. Support blobs currently at
+ * Hot tier.
+ */
+ @JsonProperty(value = "tierToCool")
+ private DateAfterModification tierToCool;
+
+ /**
+ * The function to tier blobs to archive storage. Support blobs currently
+ * at Hot or Cool tier.
+ */
+ @JsonProperty(value = "tierToArchive")
+ private DateAfterModification tierToArchive;
+
+ /**
+ * The function to delete the blob.
+ */
+ @JsonProperty(value = "delete")
+ private DateAfterModification delete;
+
+ /**
+ * This property enables auto tiering of a blob from cool to hot on a blob
+ * access. This property requires
+ * tierToCool.daysAfterLastAccessTimeGreaterThan.
+ */
+ @JsonProperty(value = "enableAutoTierToHotFromCool")
+ private Boolean enableAutoTierToHotFromCool;
+
+ /**
+ * Get the function to tier blobs to cool storage. Support blobs currently at Hot tier.
+ *
+ * @return the tierToCool value
+ */
+ public DateAfterModification tierToCool() {
+ return this.tierToCool;
+ }
+
+ /**
+ * Set the function to tier blobs to cool storage. Support blobs currently at Hot tier.
+ *
+ * @param tierToCool the tierToCool value to set
+ * @return the ManagementPolicyBaseBlob object itself.
+ */
+ public ManagementPolicyBaseBlob withTierToCool(DateAfterModification tierToCool) {
+ this.tierToCool = tierToCool;
+ return this;
+ }
+
+ /**
+ * Get the function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier.
+ *
+ * @return the tierToArchive value
+ */
+ public DateAfterModification tierToArchive() {
+ return this.tierToArchive;
+ }
+
+ /**
+ * Set the function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier.
+ *
+ * @param tierToArchive the tierToArchive value to set
+ * @return the ManagementPolicyBaseBlob object itself.
+ */
+ public ManagementPolicyBaseBlob withTierToArchive(DateAfterModification tierToArchive) {
+ this.tierToArchive = tierToArchive;
+ return this;
+ }
+
+ /**
+ * Get the function to delete the blob.
+ *
+ * @return the delete value
+ */
+ public DateAfterModification delete() {
+ return this.delete;
+ }
+
+ /**
+ * Set the function to delete the blob.
+ *
+ * @param delete the delete value to set
+ * @return the ManagementPolicyBaseBlob object itself.
+ */
+ public ManagementPolicyBaseBlob withDelete(DateAfterModification delete) {
+ this.delete = delete;
+ return this;
+ }
+
+ /**
+ * Get this property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan.
+ *
+ * @return the enableAutoTierToHotFromCool value
+ */
+ public Boolean enableAutoTierToHotFromCool() {
+ return this.enableAutoTierToHotFromCool;
+ }
+
+ /**
+ * Set this property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan.
+ *
+ * @param enableAutoTierToHotFromCool the enableAutoTierToHotFromCool value to set
+ * @return the ManagementPolicyBaseBlob object itself.
+ */
+ public ManagementPolicyBaseBlob withEnableAutoTierToHotFromCool(Boolean enableAutoTierToHotFromCool) {
+ this.enableAutoTierToHotFromCool = enableAutoTierToHotFromCool;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyDefinition.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyDefinition.java
new file mode 100644
index 0000000000000..07bacf3d0ad78
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyDefinition.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An object that defines the Lifecycle rule. Each definition is made up with a
+ * filters set and an actions set.
+ */
+public class ManagementPolicyDefinition {
+ /**
+ * An object that defines the action set.
+ */
+ @JsonProperty(value = "actions", required = true)
+ private ManagementPolicyAction actions;
+
+ /**
+ * An object that defines the filter set.
+ */
+ @JsonProperty(value = "filters")
+ private ManagementPolicyFilter filters;
+
+ /**
+ * Get an object that defines the action set.
+ *
+ * @return the actions value
+ */
+ public ManagementPolicyAction actions() {
+ return this.actions;
+ }
+
+ /**
+ * Set an object that defines the action set.
+ *
+ * @param actions the actions value to set
+ * @return the ManagementPolicyDefinition object itself.
+ */
+ public ManagementPolicyDefinition withActions(ManagementPolicyAction actions) {
+ this.actions = actions;
+ return this;
+ }
+
+ /**
+ * Get an object that defines the filter set.
+ *
+ * @return the filters value
+ */
+ public ManagementPolicyFilter filters() {
+ return this.filters;
+ }
+
+ /**
+ * Set an object that defines the filter set.
+ *
+ * @param filters the filters value to set
+ * @return the ManagementPolicyDefinition object itself.
+ */
+ public ManagementPolicyDefinition withFilters(ManagementPolicyFilter filters) {
+ this.filters = filters;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyFilter.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyFilter.java
new file mode 100644
index 0000000000000..d77e330f715a0
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyFilter.java
@@ -0,0 +1,98 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters limit rule actions to a subset of blobs within the storage account.
+ * If multiple filters are defined, a logical AND is performed on all filters.
+ */
+public class ManagementPolicyFilter {
+ /**
+ * An array of strings for prefixes to be match.
+ */
+ @JsonProperty(value = "prefixMatch")
+ private List prefixMatch;
+
+ /**
+ * An array of predefined enum values. Only blockBlob is supported.
+ */
+ @JsonProperty(value = "blobTypes", required = true)
+ private List blobTypes;
+
+ /**
+ * An array of blob index tag based filters, there can be at most 10 tag
+ * filters.
+ */
+ @JsonProperty(value = "blobIndexMatch")
+ private List blobIndexMatch;
+
+ /**
+ * Get an array of strings for prefixes to be match.
+ *
+ * @return the prefixMatch value
+ */
+ public List prefixMatch() {
+ return this.prefixMatch;
+ }
+
+ /**
+ * Set an array of strings for prefixes to be match.
+ *
+ * @param prefixMatch the prefixMatch value to set
+ * @return the ManagementPolicyFilter object itself.
+ */
+ public ManagementPolicyFilter withPrefixMatch(List prefixMatch) {
+ this.prefixMatch = prefixMatch;
+ return this;
+ }
+
+ /**
+ * Get an array of predefined enum values. Only blockBlob is supported.
+ *
+ * @return the blobTypes value
+ */
+ public List blobTypes() {
+ return this.blobTypes;
+ }
+
+ /**
+ * Set an array of predefined enum values. Only blockBlob is supported.
+ *
+ * @param blobTypes the blobTypes value to set
+ * @return the ManagementPolicyFilter object itself.
+ */
+ public ManagementPolicyFilter withBlobTypes(List blobTypes) {
+ this.blobTypes = blobTypes;
+ return this;
+ }
+
+ /**
+ * Get an array of blob index tag based filters, there can be at most 10 tag filters.
+ *
+ * @return the blobIndexMatch value
+ */
+ public List blobIndexMatch() {
+ return this.blobIndexMatch;
+ }
+
+ /**
+ * Set an array of blob index tag based filters, there can be at most 10 tag filters.
+ *
+ * @param blobIndexMatch the blobIndexMatch value to set
+ * @return the ManagementPolicyFilter object itself.
+ */
+ public ManagementPolicyFilter withBlobIndexMatch(List blobIndexMatch) {
+ this.blobIndexMatch = blobIndexMatch;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyRule.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyRule.java
new file mode 100644
index 0000000000000..c3a5df47c10a9
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicyRule.java
@@ -0,0 +1,132 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An object that wraps the Lifecycle rule. Each rule is uniquely defined by
+ * name.
+ */
+public class ManagementPolicyRule {
+ /**
+ * Rule is enabled if set to true.
+ */
+ @JsonProperty(value = "enabled")
+ private Boolean enabled;
+
+ /**
+ * A rule name can contain any combination of alpha numeric characters.
+ * Rule name is case-sensitive. It must be unique within a policy.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The valid value is Lifecycle.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * An object that defines the Lifecycle rule.
+ */
+ @JsonProperty(value = "definition", required = true)
+ private ManagementPolicyDefinition definition;
+
+ /**
+ * Creates an instance of ManagementPolicyRule class.
+ * @param name a rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
+ * @param definition an object that defines the Lifecycle rule.
+ */
+ public ManagementPolicyRule() {
+ type = "Lifecycle";
+ }
+
+ /**
+ * Get rule is enabled if set to true.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set rule is enabled if set to true.
+ *
+ * @param enabled the enabled value to set
+ * @return the ManagementPolicyRule object itself.
+ */
+ public ManagementPolicyRule withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get a rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set a rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
+ *
+ * @param name the name value to set
+ * @return the ManagementPolicyRule object itself.
+ */
+ public ManagementPolicyRule withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the valid value is Lifecycle.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the valid value is Lifecycle.
+ *
+ * @param type the type value to set
+ * @return the ManagementPolicyRule object itself.
+ */
+ public ManagementPolicyRule withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get an object that defines the Lifecycle rule.
+ *
+ * @return the definition value
+ */
+ public ManagementPolicyDefinition definition() {
+ return this.definition;
+ }
+
+ /**
+ * Set an object that defines the Lifecycle rule.
+ *
+ * @param definition the definition value to set
+ * @return the ManagementPolicyRule object itself.
+ */
+ public ManagementPolicyRule withDefinition(ManagementPolicyDefinition definition) {
+ this.definition = definition;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySchema.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySchema.java
new file mode 100644
index 0000000000000..f66ea28a3b7da
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySchema.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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Storage Account ManagementPolicies Rules. See more details in:
+ * https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ */
+public class ManagementPolicySchema {
+ /**
+ * The Storage Account ManagementPolicies Rules. See more details in:
+ * https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ */
+ @JsonProperty(value = "rules", required = true)
+ private List rules;
+
+ /**
+ * Get the Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set the Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ *
+ * @param rules the rules value to set
+ * @return the ManagementPolicySchema object itself.
+ */
+ public ManagementPolicySchema withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySnapShot.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySnapShot.java
new file mode 100644
index 0000000000000..9e5c89aac1519
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ManagementPolicySnapShot.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Management policy action for snapshot.
+ */
+public class ManagementPolicySnapShot {
+ /**
+ * The function to delete the blob snapshot.
+ */
+ @JsonProperty(value = "delete")
+ private DateAfterCreation delete;
+
+ /**
+ * Get the function to delete the blob snapshot.
+ *
+ * @return the delete value
+ */
+ public DateAfterCreation delete() {
+ return this.delete;
+ }
+
+ /**
+ * Set the function to delete the blob snapshot.
+ *
+ * @param delete the delete value to set
+ * @return the ManagementPolicySnapShot object itself.
+ */
+ public ManagementPolicySnapShot withDelete(DateAfterCreation delete) {
+ this.delete = delete;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/MetricSpecification.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/MetricSpecification.java
new file mode 100644
index 0000000000000..a5aecb56e4df7
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metric specification of operation.
+ */
+public class MetricSpecification {
+ /**
+ * Name of metric specification.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of metric specification.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Display description of metric specification.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Unit could be Bytes or Count.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Dimensions of blobs, including blob type and access tier.
+ */
+ @JsonProperty(value = "dimensions")
+ private List dimensions;
+
+ /**
+ * Aggregation type could be Average.
+ */
+ @JsonProperty(value = "aggregationType")
+ private String aggregationType;
+
+ /**
+ * The property to decide fill gap with zero or not.
+ */
+ @JsonProperty(value = "fillGapWithZero")
+ private Boolean fillGapWithZero;
+
+ /**
+ * The category this metric specification belong to, could be Capacity.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /**
+ * Account Resource Id.
+ */
+ @JsonProperty(value = "resourceIdDimensionNameOverride")
+ private String resourceIdDimensionNameOverride;
+
+ /**
+ * Get name of metric specification.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of metric specification.
+ *
+ * @param name the name value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of metric specification.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of metric specification.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get display description of metric specification.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set display description of metric specification.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get unit could be Bytes or Count.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set unit could be Bytes or Count.
+ *
+ * @param unit the unit value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get dimensions of blobs, including blob type and access tier.
+ *
+ * @return the dimensions value
+ */
+ public List dimensions() {
+ return this.dimensions;
+ }
+
+ /**
+ * Set dimensions of blobs, including blob type and access tier.
+ *
+ * @param dimensions the dimensions value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDimensions(List dimensions) {
+ this.dimensions = dimensions;
+ return this;
+ }
+
+ /**
+ * Get aggregation type could be Average.
+ *
+ * @return the aggregationType value
+ */
+ public String aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set aggregation type could be Average.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withAggregationType(String aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get the property to decide fill gap with zero or not.
+ *
+ * @return the fillGapWithZero value
+ */
+ public Boolean fillGapWithZero() {
+ return this.fillGapWithZero;
+ }
+
+ /**
+ * Set the property to decide fill gap with zero or not.
+ *
+ * @param fillGapWithZero the fillGapWithZero value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withFillGapWithZero(Boolean fillGapWithZero) {
+ this.fillGapWithZero = fillGapWithZero;
+ return this;
+ }
+
+ /**
+ * Get the category this metric specification belong to, could be Capacity.
+ *
+ * @return the category value
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category this metric specification belong to, could be Capacity.
+ *
+ * @param category the category value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get account Resource Id.
+ *
+ * @return the resourceIdDimensionNameOverride value
+ */
+ public String resourceIdDimensionNameOverride() {
+ return this.resourceIdDimensionNameOverride;
+ }
+
+ /**
+ * Set account Resource Id.
+ *
+ * @param resourceIdDimensionNameOverride the resourceIdDimensionNameOverride value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withResourceIdDimensionNameOverride(String resourceIdDimensionNameOverride) {
+ this.resourceIdDimensionNameOverride = resourceIdDimensionNameOverride;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/MinimumTlsVersion.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/MinimumTlsVersion.java
new file mode 100644
index 0000000000000..b37b8fd3a7625
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/MinimumTlsVersion.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MinimumTlsVersion.
+ */
+public final class MinimumTlsVersion extends ExpandableStringEnum {
+ /** Static value TLS1_0 for MinimumTlsVersion. */
+ public static final MinimumTlsVersion TLS1_0 = fromString("TLS1_0");
+
+ /** Static value TLS1_1 for MinimumTlsVersion. */
+ public static final MinimumTlsVersion TLS1_1 = fromString("TLS1_1");
+
+ /** Static value TLS1_2 for MinimumTlsVersion. */
+ public static final MinimumTlsVersion TLS1_2 = fromString("TLS1_2");
+
+ /**
+ * Creates or finds a MinimumTlsVersion from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MinimumTlsVersion
+ */
+ @JsonCreator
+ public static MinimumTlsVersion fromString(String name) {
+ return fromString(name, MinimumTlsVersion.class);
+ }
+
+ /**
+ * @return known MinimumTlsVersion values
+ */
+ public static Collection values() {
+ return values(MinimumTlsVersion.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Multichannel.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Multichannel.java
new file mode 100644
index 0000000000000..c44c5d3fee25f
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Multichannel.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Multichannel setting. Applies to Premium FileStorage only.
+ */
+public class Multichannel {
+ /**
+ * Indicates whether multichannel is enabled.
+ */
+ @JsonProperty(value = "enabled")
+ private Boolean enabled;
+
+ /**
+ * Get indicates whether multichannel is enabled.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set indicates whether multichannel is enabled.
+ *
+ * @param enabled the enabled value to set
+ * @return the Multichannel object itself.
+ */
+ public Multichannel withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Name.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Name.java
new file mode 100644
index 0000000000000..22520ccb435e6
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Name.java
@@ -0,0 +1,38 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Name.
+ */
+public final class Name extends ExpandableStringEnum {
+ /** Static value AccessTimeTracking for Name. */
+ public static final Name ACCESS_TIME_TRACKING = fromString("AccessTimeTracking");
+
+ /**
+ * Creates or finds a Name from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Name
+ */
+ @JsonCreator
+ public static Name fromString(String name) {
+ return fromString(name, Name.class);
+ }
+
+ /**
+ * @return known Name values
+ */
+ public static Collection values() {
+ return values(Name.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/NetworkRuleSet.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/NetworkRuleSet.java
new file mode 100644
index 0000000000000..43a0248ca8075
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/NetworkRuleSet.java
@@ -0,0 +1,153 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Network rule set.
+ */
+public class NetworkRuleSet {
+ /**
+ * Specifies whether traffic is bypassed for Logging/Metrics/AzureServices.
+ * Possible values are any combination of Logging|Metrics|AzureServices
+ * (For example, "Logging, Metrics"), or None to bypass none of those
+ * traffics. Possible values include: 'None', 'Logging', 'Metrics',
+ * 'AzureServices'.
+ */
+ @JsonProperty(value = "bypass")
+ private Bypass bypass;
+
+ /**
+ * The resourceAccessRules property.
+ */
+ @JsonProperty(value = "resourceAccessRules")
+ private List resourceAccessRules;
+
+ /**
+ * Sets the virtual network rules.
+ */
+ @JsonProperty(value = "virtualNetworkRules")
+ private List virtualNetworkRules;
+
+ /**
+ * Sets the IP ACL rules.
+ */
+ @JsonProperty(value = "ipRules")
+ private List ipRules;
+
+ /**
+ * Specifies the default action of allow or deny when no other rules match.
+ * Possible values include: 'Allow', 'Deny'.
+ */
+ @JsonProperty(value = "defaultAction", required = true)
+ private DefaultAction defaultAction;
+
+ /**
+ * Get specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. Possible values include: 'None', 'Logging', 'Metrics', 'AzureServices'.
+ *
+ * @return the bypass value
+ */
+ public Bypass bypass() {
+ return this.bypass;
+ }
+
+ /**
+ * Set specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. Possible values include: 'None', 'Logging', 'Metrics', 'AzureServices'.
+ *
+ * @param bypass the bypass value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withBypass(Bypass bypass) {
+ this.bypass = bypass;
+ return this;
+ }
+
+ /**
+ * Get the resourceAccessRules value.
+ *
+ * @return the resourceAccessRules value
+ */
+ public List resourceAccessRules() {
+ return this.resourceAccessRules;
+ }
+
+ /**
+ * Set the resourceAccessRules value.
+ *
+ * @param resourceAccessRules the resourceAccessRules value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withResourceAccessRules(List resourceAccessRules) {
+ this.resourceAccessRules = resourceAccessRules;
+ return this;
+ }
+
+ /**
+ * Get sets the virtual network rules.
+ *
+ * @return the virtualNetworkRules value
+ */
+ public List virtualNetworkRules() {
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * Set sets the virtual network rules.
+ *
+ * @param virtualNetworkRules the virtualNetworkRules value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withVirtualNetworkRules(List virtualNetworkRules) {
+ this.virtualNetworkRules = virtualNetworkRules;
+ return this;
+ }
+
+ /**
+ * Get sets the IP ACL rules.
+ *
+ * @return the ipRules value
+ */
+ public List ipRules() {
+ return this.ipRules;
+ }
+
+ /**
+ * Set sets the IP ACL rules.
+ *
+ * @param ipRules the ipRules value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withIpRules(List ipRules) {
+ this.ipRules = ipRules;
+ return this;
+ }
+
+ /**
+ * Get specifies the default action of allow or deny when no other rules match. Possible values include: 'Allow', 'Deny'.
+ *
+ * @return the defaultAction value
+ */
+ public DefaultAction defaultAction() {
+ return this.defaultAction;
+ }
+
+ /**
+ * Set specifies the default action of allow or deny when no other rules match. Possible values include: 'Allow', 'Deny'.
+ *
+ * @param defaultAction the defaultAction value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withDefaultAction(DefaultAction defaultAction) {
+ this.defaultAction = defaultAction;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicies.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicies.java
new file mode 100644
index 0000000000000..649714860fa87
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicies.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ObjectReplicationPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ObjectReplicationPolicies.
+ */
+public interface ObjectReplicationPolicies extends SupportsCreating, HasInner {
+ /**
+ * Get the object replication policy of the storage account by policy ID.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param objectReplicationPolicyId The ID of object replication policy or 'default' if the policy ID is unknown.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String objectReplicationPolicyId);
+
+ /**
+ * List the object replication policies associated with the storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes the object replication policy associated with the specified storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param objectReplicationPolicyId The ID of object replication policy or 'default' if the policy ID is unknown.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String objectReplicationPolicyId);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicy.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicy.java
new file mode 100644
index 0000000000000..5b925720a9faa
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicy.java
@@ -0,0 +1,163 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.ObjectReplicationPolicyInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing ObjectReplicationPolicy.
+ */
+public interface ObjectReplicationPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the destinationAccount value.
+ */
+ String destinationAccount();
+
+ /**
+ * @return the enabledTime value.
+ */
+ DateTime enabledTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the policyId value.
+ */
+ String policyId();
+
+ /**
+ * @return the rules value.
+ */
+ List rules();
+
+ /**
+ * @return the sourceAccount value.
+ */
+ String sourceAccount();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ObjectReplicationPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithDestinationAccount, DefinitionStages.WithSourceAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ObjectReplicationPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ObjectReplicationPolicy definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the objectreplicationpolicy definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithDestinationAccount withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the objectreplicationpolicy definition allowing to specify DestinationAccount.
+ */
+ interface WithDestinationAccount {
+ /**
+ * Specifies destinationAccount.
+ * @param destinationAccount Required. Destination account name
+ * @return the next definition stage
+ */
+ WithSourceAccount withDestinationAccount(String destinationAccount);
+ }
+
+ /**
+ * The stage of the objectreplicationpolicy definition allowing to specify SourceAccount.
+ */
+ interface WithSourceAccount {
+ /**
+ * Specifies sourceAccount.
+ * @param sourceAccount Required. Source account name
+ * @return the next definition stage
+ */
+ WithCreate withSourceAccount(String sourceAccount);
+ }
+
+ /**
+ * The stage of the objectreplicationpolicy definition allowing to specify Rules.
+ */
+ interface WithRules {
+ /**
+ * Specifies rules.
+ * @param rules The storage account object replication rules
+ * @return the next definition stage
+ */
+ WithCreate withRules(List rules);
+ }
+
+ /**
+ * 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.WithRules {
+ }
+ }
+ /**
+ * The template for a ObjectReplicationPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithRules {
+ }
+
+ /**
+ * Grouping of ObjectReplicationPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the objectreplicationpolicy update allowing to specify Rules.
+ */
+ interface WithRules {
+ /**
+ * Specifies rules.
+ * @param rules The storage account object replication rules
+ * @return the next update stage
+ */
+ Update withRules(List rules);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyFilter.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyFilter.java
new file mode 100644
index 0000000000000..ccbcfce04f1e8
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyFilter.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters limit replication to a subset of blobs within the storage account. A
+ * logical OR is performed on values in the filter. If multiple filters are
+ * defined, a logical AND is performed on all filters.
+ */
+public class ObjectReplicationPolicyFilter {
+ /**
+ * Optional. Filters the results to replicate only blobs whose names begin
+ * with the specified prefix.
+ */
+ @JsonProperty(value = "prefixMatch")
+ private List prefixMatch;
+
+ /**
+ * Blobs created after the time will be replicated to the destination. It
+ * must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example:
+ * 2020-02-19T16:05:00Z.
+ */
+ @JsonProperty(value = "minCreationTime")
+ private String minCreationTime;
+
+ /**
+ * Get optional. Filters the results to replicate only blobs whose names begin with the specified prefix.
+ *
+ * @return the prefixMatch value
+ */
+ public List prefixMatch() {
+ return this.prefixMatch;
+ }
+
+ /**
+ * Set optional. Filters the results to replicate only blobs whose names begin with the specified prefix.
+ *
+ * @param prefixMatch the prefixMatch value to set
+ * @return the ObjectReplicationPolicyFilter object itself.
+ */
+ public ObjectReplicationPolicyFilter withPrefixMatch(List prefixMatch) {
+ this.prefixMatch = prefixMatch;
+ return this;
+ }
+
+ /**
+ * Get blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z.
+ *
+ * @return the minCreationTime value
+ */
+ public String minCreationTime() {
+ return this.minCreationTime;
+ }
+
+ /**
+ * Set blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z.
+ *
+ * @param minCreationTime the minCreationTime value to set
+ * @return the ObjectReplicationPolicyFilter object itself.
+ */
+ public ObjectReplicationPolicyFilter withMinCreationTime(String minCreationTime) {
+ this.minCreationTime = minCreationTime;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyRule.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyRule.java
new file mode 100644
index 0000000000000..c2f0ebe0f1fed
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ObjectReplicationPolicyRule.java
@@ -0,0 +1,122 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The replication policy rule between two containers.
+ */
+public class ObjectReplicationPolicyRule {
+ /**
+ * Rule Id is auto-generated for each new rule on destination account. It
+ * is required for put policy on source account.
+ */
+ @JsonProperty(value = "ruleId")
+ private String ruleId;
+
+ /**
+ * Required. Source container name.
+ */
+ @JsonProperty(value = "sourceContainer", required = true)
+ private String sourceContainer;
+
+ /**
+ * Required. Destination container name.
+ */
+ @JsonProperty(value = "destinationContainer", required = true)
+ private String destinationContainer;
+
+ /**
+ * Optional. An object that defines the filter set.
+ */
+ @JsonProperty(value = "filters")
+ private ObjectReplicationPolicyFilter filters;
+
+ /**
+ * Get rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account.
+ *
+ * @return the ruleId value
+ */
+ public String ruleId() {
+ return this.ruleId;
+ }
+
+ /**
+ * Set rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account.
+ *
+ * @param ruleId the ruleId value to set
+ * @return the ObjectReplicationPolicyRule object itself.
+ */
+ public ObjectReplicationPolicyRule withRuleId(String ruleId) {
+ this.ruleId = ruleId;
+ return this;
+ }
+
+ /**
+ * Get required. Source container name.
+ *
+ * @return the sourceContainer value
+ */
+ public String sourceContainer() {
+ return this.sourceContainer;
+ }
+
+ /**
+ * Set required. Source container name.
+ *
+ * @param sourceContainer the sourceContainer value to set
+ * @return the ObjectReplicationPolicyRule object itself.
+ */
+ public ObjectReplicationPolicyRule withSourceContainer(String sourceContainer) {
+ this.sourceContainer = sourceContainer;
+ return this;
+ }
+
+ /**
+ * Get required. Destination container name.
+ *
+ * @return the destinationContainer value
+ */
+ public String destinationContainer() {
+ return this.destinationContainer;
+ }
+
+ /**
+ * Set required. Destination container name.
+ *
+ * @param destinationContainer the destinationContainer value to set
+ * @return the ObjectReplicationPolicyRule object itself.
+ */
+ public ObjectReplicationPolicyRule withDestinationContainer(String destinationContainer) {
+ this.destinationContainer = destinationContainer;
+ return this;
+ }
+
+ /**
+ * Get optional. An object that defines the filter set.
+ *
+ * @return the filters value
+ */
+ public ObjectReplicationPolicyFilter filters() {
+ return this.filters;
+ }
+
+ /**
+ * Set optional. An object that defines the filter set.
+ *
+ * @param filters the filters value to set
+ * @return the ObjectReplicationPolicyRule object itself.
+ */
+ public ObjectReplicationPolicyRule withFilters(ObjectReplicationPolicyFilter filters) {
+ this.filters = filters;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Operation.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Operation.java
new file mode 100644
index 0000000000000..39467667b742d
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the serviceSpecification value.
+ */
+ ServiceSpecification serviceSpecification();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/OperationDisplay.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/OperationDisplay.java
new file mode 100644
index 0000000000000..47c3d4258d8f8
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft Storage.
+ */
+ @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;
+
+ /**
+ * Description of the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft Storage.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft Storage.
+ *
+ * @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 description of the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Operations.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Operations.java
new file mode 100644
index 0000000000000..6a872677d9f30
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available Storage Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Permissions.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Permissions.java
new file mode 100644
index 0000000000000..102aef1efe3af
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/Permissions.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Permissions.
+ */
+public final class Permissions extends ExpandableStringEnum {
+ /** Static value r for Permissions. */
+ public static final Permissions R = fromString("r");
+
+ /** Static value d for Permissions. */
+ public static final Permissions D = fromString("d");
+
+ /** Static value w for Permissions. */
+ public static final Permissions W = fromString("w");
+
+ /** Static value l for Permissions. */
+ public static final Permissions L = fromString("l");
+
+ /** Static value a for Permissions. */
+ public static final Permissions A = fromString("a");
+
+ /** Static value c for Permissions. */
+ public static final Permissions C = fromString("c");
+
+ /** Static value u for Permissions. */
+ public static final Permissions U = fromString("u");
+
+ /** Static value p for Permissions. */
+ public static final Permissions P = fromString("p");
+
+ /**
+ * Creates or finds a Permissions from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Permissions
+ */
+ @JsonCreator
+ public static Permissions fromString(String name) {
+ return fromString(name, Permissions.class);
+ }
+
+ /**
+ * @return known Permissions values
+ */
+ public static Collection values() {
+ return values(Permissions.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpoint.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpoint.java
new file mode 100644
index 0000000000000..74ed2972a0ac4
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpoint.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Private Endpoint resource.
+ */
+public class PrivateEndpoint {
+ /**
+ * The ARM identifier for Private Endpoint.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Get the ARM identifier for Private Endpoint.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnection.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnection.java
new file mode 100644
index 0000000000000..232f024345241
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnection.java
@@ -0,0 +1,163 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.PrivateEndpointConnectionInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+
+/**
+ * Type representing PrivateEndpointConnection.
+ */
+public interface PrivateEndpointConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the privateEndpoint value.
+ */
+ PrivateEndpoint privateEndpoint();
+
+ /**
+ * @return the privateLinkServiceConnectionState value.
+ */
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ PrivateEndpointConnectionProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the PrivateEndpointConnection definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithPrivateLinkServiceConnectionState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PrivateEndpointConnection definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithPrivateLinkServiceConnectionState withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify PrivateLinkServiceConnectionState.
+ */
+ interface WithPrivateLinkServiceConnectionState {
+ /**
+ * Specifies privateLinkServiceConnectionState.
+ * @param privateLinkServiceConnectionState A collection of information about the state of the connection between service consumer and provider
+ * @return the next definition stage
+ */
+ WithCreate withPrivateLinkServiceConnectionState(PrivateLinkServiceConnectionState privateLinkServiceConnectionState);
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The resource of private end point
+ * @return the next definition stage
+ */
+ WithCreate withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ * @param provisioningState The provisioning state of the private endpoint connection resource. Possible values include: 'Succeeded', 'Creating', 'Deleting', 'Failed'
+ * @return the next definition stage
+ */
+ WithCreate withProvisioningState(PrivateEndpointConnectionProvisioningState provisioningState);
+ }
+
+ /**
+ * 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.WithPrivateEndpoint, DefinitionStages.WithProvisioningState {
+ }
+ }
+ /**
+ * The template for a PrivateEndpointConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrivateEndpoint, UpdateStages.WithProvisioningState {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The resource of private end point
+ * @return the next update stage
+ */
+ Update withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ /**
+ * The stage of the privateendpointconnection update allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ * @param provisioningState The provisioning state of the private endpoint connection resource. Possible values include: 'Succeeded', 'Creating', 'Deleting', 'Failed'
+ * @return the next update stage
+ */
+ Update withProvisioningState(PrivateEndpointConnectionProvisioningState provisioningState);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnectionProvisioningState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnectionProvisioningState.java
new file mode 100644
index 0000000000000..a57a58feac9ed
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnectionProvisioningState.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrivateEndpointConnectionProvisioningState.
+ */
+public final class PrivateEndpointConnectionProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Creating for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Deleting for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Failed for PrivateEndpointConnectionProvisioningState. */
+ public static final PrivateEndpointConnectionProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a PrivateEndpointConnectionProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrivateEndpointConnectionProvisioningState
+ */
+ @JsonCreator
+ public static PrivateEndpointConnectionProvisioningState fromString(String name) {
+ return fromString(name, PrivateEndpointConnectionProvisioningState.class);
+ }
+
+ /**
+ * @return known PrivateEndpointConnectionProvisioningState values
+ */
+ public static Collection values() {
+ return values(PrivateEndpointConnectionProvisioningState.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnections.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnections.java
new file mode 100644
index 0000000000000..a1d46c2757118
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointConnections.java
@@ -0,0 +1,53 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.PrivateEndpointConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateEndpointConnections.
+ */
+public interface PrivateEndpointConnections extends SupportsCreating, HasInner {
+ /**
+ * Gets the specified private endpoint connection associated with the storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param privateEndpointConnectionName The name of the private endpoint connection associated with the Azure resource
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String privateEndpointConnectionName);
+
+ /**
+ * List all the private endpoint connections associated with the storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes the specified private endpoint connection associated with the storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @param privateEndpointConnectionName The name of the private endpoint connection associated with the Azure resource
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String privateEndpointConnectionName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointServiceConnectionStatus.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointServiceConnectionStatus.java
new file mode 100644
index 0000000000000..69408acfcc621
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateEndpointServiceConnectionStatus.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.storage.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrivateEndpointServiceConnectionStatus.
+ */
+public final class PrivateEndpointServiceConnectionStatus extends ExpandableStringEnum {
+ /** Static value Pending for PrivateEndpointServiceConnectionStatus. */
+ public static final PrivateEndpointServiceConnectionStatus PENDING = fromString("Pending");
+
+ /** Static value Approved for PrivateEndpointServiceConnectionStatus. */
+ public static final PrivateEndpointServiceConnectionStatus APPROVED = fromString("Approved");
+
+ /** Static value Rejected for PrivateEndpointServiceConnectionStatus. */
+ public static final PrivateEndpointServiceConnectionStatus REJECTED = fromString("Rejected");
+
+ /**
+ * Creates or finds a PrivateEndpointServiceConnectionStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrivateEndpointServiceConnectionStatus
+ */
+ @JsonCreator
+ public static PrivateEndpointServiceConnectionStatus fromString(String name) {
+ return fromString(name, PrivateEndpointServiceConnectionStatus.class);
+ }
+
+ /**
+ * @return known PrivateEndpointServiceConnectionStatus values
+ */
+ public static Collection values() {
+ return values(PrivateEndpointServiceConnectionStatus.class);
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResourceListResult.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResourceListResult.java
new file mode 100644
index 0000000000000..cbdb5ed3b345b
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResourceListResult.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.StorageManager;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.PrivateLinkResourceListResultInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.PrivateLinkResourceInner;
+import java.util.List;
+
+/**
+ * Type representing PrivateLinkResourceListResult.
+ */
+public interface PrivateLinkResourceListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResources.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResources.java
new file mode 100644
index 0000000000000..ea7454ab2f56b
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkResources.java
@@ -0,0 +1,29 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.PrivateLinkResourcesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateLinkResources.
+ */
+public interface PrivateLinkResources extends HasInner {
+ /**
+ * Gets the private link resources that need to be created for a storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByStorageAccountAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkServiceConnectionState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkServiceConnectionState.java
new file mode 100644
index 0000000000000..5e54154887dd5
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PrivateLinkServiceConnectionState.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A collection of information about the state of the connection between
+ * service consumer and provider.
+ */
+public class PrivateLinkServiceConnectionState {
+ /**
+ * Indicates whether the connection has been Approved/Rejected/Removed by
+ * the owner of the service. Possible values include: 'Pending',
+ * 'Approved', 'Rejected'.
+ */
+ @JsonProperty(value = "status")
+ private PrivateEndpointServiceConnectionStatus status;
+
+ /**
+ * The reason for approval/rejection of the connection.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * A message indicating if changes on the service provider require any
+ * updates on the consumer.
+ */
+ @JsonProperty(value = "actionRequired")
+ private String actionRequired;
+
+ /**
+ * Get indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. Possible values include: 'Pending', 'Approved', 'Rejected'.
+ *
+ * @return the status value
+ */
+ public PrivateEndpointServiceConnectionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. Possible values include: 'Pending', 'Approved', 'Rejected'.
+ *
+ * @param status the status value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withStatus(PrivateEndpointServiceConnectionStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the reason for approval/rejection of the connection.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the reason for approval/rejection of the connection.
+ *
+ * @param description the description value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get a message indicating if changes on the service provider require any updates on the consumer.
+ *
+ * @return the actionRequired value
+ */
+ public String actionRequired() {
+ return this.actionRequired;
+ }
+
+ /**
+ * Set a message indicating if changes on the service provider require any updates on the consumer.
+ *
+ * @param actionRequired the actionRequired value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withActionRequired(String actionRequired) {
+ this.actionRequired = actionRequired;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProtocolSettings.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProtocolSettings.java
new file mode 100644
index 0000000000000..6f71031863f77
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProtocolSettings.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Protocol settings for file service.
+ */
+public class ProtocolSettings {
+ /**
+ * Setting for SMB protocol.
+ */
+ @JsonProperty(value = "smb")
+ private SmbSetting smb;
+
+ /**
+ * Get setting for SMB protocol.
+ *
+ * @return the smb value
+ */
+ public SmbSetting smb() {
+ return this.smb;
+ }
+
+ /**
+ * Set setting for SMB protocol.
+ *
+ * @param smb the smb value to set
+ * @return the ProtocolSettings object itself.
+ */
+ public ProtocolSettings withSmb(SmbSetting smb) {
+ this.smb = smb;
+ return this;
+ }
+
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProvisioningState.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProvisioningState.java
new file mode 100644
index 0000000000000..7415f2ee0d7fd
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/ProvisioningState.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ProvisioningState.
+ */
+public enum ProvisioningState {
+ /** Enum value Creating. */
+ CREATING("Creating"),
+
+ /** Enum value ResolvingDNS. */
+ RESOLVING_DNS("ResolvingDNS"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded");
+
+ /** The actual serialized value for a ProvisioningState instance. */
+ private String value;
+
+ ProvisioningState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ProvisioningState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ProvisioningState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ProvisioningState fromString(String value) {
+ ProvisioningState[] items = ProvisioningState.values();
+ for (ProvisioningState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PublicAccess.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PublicAccess.java
new file mode 100644
index 0000000000000..b55930e50e3fe
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/PublicAccess.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.storage.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for PublicAccess.
+ */
+public enum PublicAccess {
+ /** Enum value Container. */
+ CONTAINER("Container"),
+
+ /** Enum value Blob. */
+ BLOB("Blob"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** The actual serialized value for a PublicAccess instance. */
+ private String value;
+
+ PublicAccess(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a PublicAccess instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed PublicAccess object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static PublicAccess fromString(String value) {
+ PublicAccess[] items = PublicAccess.values();
+ for (PublicAccess item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServiceProperties.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServiceProperties.java
new file mode 100644
index 0000000000000..32c2341436830
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServiceProperties.java
@@ -0,0 +1,118 @@
+/**
+ * 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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.QueueServicePropertiesInner;
+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.storage.v2019_08_01_preview.implementation.StorageManager;
+import java.util.List;
+
+/**
+ * Type representing QueueServiceProperties.
+ */
+public interface QueueServiceProperties extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the cors value.
+ */
+ CorsRules cors();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the QueueServiceProperties definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithStorageAccount, DefinitionStages.WithCors, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of QueueServiceProperties definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a QueueServiceProperties definition.
+ */
+ interface Blank extends WithStorageAccount {
+ }
+
+ /**
+ * The stage of the queueserviceproperties definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only
+ * @return the next definition stage
+ */
+ WithCors withExistingStorageAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the queueserviceproperties definition allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the Queue service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Queue service
+ * @return the next definition stage
+ */
+ WithCreate withCors(CorsRules cors);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a QueueServiceProperties update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCors {
+ }
+
+ /**
+ * Grouping of QueueServiceProperties update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the queueserviceproperties update allowing to specify Cors.
+ */
+ interface WithCors {
+ /**
+ * Specifies cors.
+ * @param cors Specifies CORS rules for the Queue service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Queue service
+ * @return the next update stage
+ */
+ Update withCors(CorsRules cors);
+ }
+
+ }
+}
diff --git a/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServices.java b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServices.java
new file mode 100644
index 0000000000000..79b32046318e3
--- /dev/null
+++ b/sdk/storage/mgmt-v2019_08_01_preview/src/main/java/com/microsoft/azure/management/storage/v2019_08_01_preview/QueueServices.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.storage.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.storage.v2019_08_01_preview.implementation.QueueServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing QueueServices.
+ */
+public interface QueueServices extends SupportsCreating, HasInner {
+ /**
+ * List all queue services for the storage account.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
+ * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable