diff --git a/sdk/storagecache/mgmt-v2020_03_01/pom.xml b/sdk/storagecache/mgmt-v2020_03_01/pom.xml
new file mode 100644
index 000000000000..9c5ec4cb01bb
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.storagecache.v2020_03_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-storagecache
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for StorageCache Management
+ This package contains Microsoft StorageCache Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+
* Copyright (c) Microsoft Corporation. All rights reserved.
+
* Licensed under the MIT License. See License.txt in the project root for
+
* license information.
+
*/
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperation.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperation.java
new file mode 100644
index 000000000000..157bb369a28a
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperation.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.storagecache.v2020_03_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storagecache.v2020_03_01.implementation.StorageCacheManager;
+import com.microsoft.azure.management.storagecache.v2020_03_01.implementation.ApiOperationInner;
+
+/**
+ * Type representing ApiOperation.
+ */
+public interface ApiOperation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ ApiOperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperationDisplay.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperationDisplay.java
new file mode 100644
index 000000000000..28196224599f
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/ApiOperationDisplay.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class ApiOperationDisplay {
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Service provider: Microsoft.StorageCache.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Cache, etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the ApiOperationDisplay object itself.
+ */
+ public ApiOperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get service provider: Microsoft.StorageCache.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.StorageCache.
+ *
+ * @param provider the provider value to set
+ * @return the ApiOperationDisplay object itself.
+ */
+ public ApiOperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Cache, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Cache, etc.
+ *
+ * @param resource the resource value to set
+ * @return the ApiOperationDisplay object itself.
+ */
+ public ApiOperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Cache.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Cache.java
new file mode 100644
index 000000000000..5be1a9fccf82
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Cache.java
@@ -0,0 +1,340 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storagecache.v2020_03_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.storagecache.v2020_03_01.implementation.StorageCacheManager;
+import java.util.List;
+import com.microsoft.azure.management.storagecache.v2020_03_01.implementation.CacheInner;
+
+/**
+ * Type representing Cache.
+ */
+public interface Cache extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the cacheSizeGB value.
+ */
+ Integer cacheSizeGB();
+
+ /**
+ * @return the encryptionSettings value.
+ */
+ CacheEncryptionSettings encryptionSettings();
+
+ /**
+ * @return the health value.
+ */
+ CacheHealth health();
+
+ /**
+ * @return the identity value.
+ */
+ CacheIdentity identity();
+
+ /**
+ * @return the mountAddresses value.
+ */
+ List mountAddresses();
+
+ /**
+ * @return the networkSettings value.
+ */
+ CacheNetworkSettings networkSettings();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningStateType provisioningState();
+
+ /**
+ * @return the securitySettings value.
+ */
+ CacheSecuritySettings securitySettings();
+
+ /**
+ * @return the sku value.
+ */
+ CacheSku sku();
+
+ /**
+ * @return the subnet value.
+ */
+ String subnet();
+
+ /**
+ * @return the upgradeStatus value.
+ */
+ CacheUpgradeStatus upgradeStatus();
+
+ /**
+ * The entirety of the Cache definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Cache definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Cache definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Cache definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify CacheSizeGB.
+ */
+ interface WithCacheSizeGB {
+ /**
+ * Specifies cacheSizeGB.
+ * @param cacheSizeGB The size of this Cache, in GB
+ * @return the next definition stage
+ */
+ WithCreate withCacheSizeGB(Integer cacheSizeGB);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify EncryptionSettings.
+ */
+ interface WithEncryptionSettings {
+ /**
+ * Specifies encryptionSettings.
+ * @param encryptionSettings Specifies encryption settings of the cache
+ * @return the next definition stage
+ */
+ WithCreate withEncryptionSettings(CacheEncryptionSettings encryptionSettings);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cache, if configured
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(CacheIdentity identity);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify NetworkSettings.
+ */
+ interface WithNetworkSettings {
+ /**
+ * Specifies networkSettings.
+ * @param networkSettings Specifies network settings of the cache
+ * @return the next definition stage
+ */
+ WithCreate withNetworkSettings(CacheNetworkSettings networkSettings);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ * @param provisioningState ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. Possible values include: 'Succeeded', 'Failed', 'Cancelled', 'Creating', 'Deleting', 'Updating'
+ * @return the next definition stage
+ */
+ WithCreate withProvisioningState(ProvisioningStateType provisioningState);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify SecuritySettings.
+ */
+ interface WithSecuritySettings {
+ /**
+ * Specifies securitySettings.
+ * @param securitySettings Specifies security settings of the cache
+ * @return the next definition stage
+ */
+ WithCreate withSecuritySettings(CacheSecuritySettings securitySettings);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku SKU for the Cache
+ * @return the next definition stage
+ */
+ WithCreate withSku(CacheSku sku);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify Subnet.
+ */
+ interface WithSubnet {
+ /**
+ * Specifies subnet.
+ * @param subnet Subnet used for the Cache
+ * @return the next definition stage
+ */
+ WithCreate withSubnet(String subnet);
+ }
+
+ /**
+ * The stage of the cache definition allowing to specify UpgradeStatus.
+ */
+ interface WithUpgradeStatus {
+ /**
+ * Specifies upgradeStatus.
+ * @param upgradeStatus Upgrade status of the Cache
+ * @return the next definition stage
+ */
+ WithCreate withUpgradeStatus(CacheUpgradeStatus upgradeStatus);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithCacheSizeGB, DefinitionStages.WithEncryptionSettings, DefinitionStages.WithIdentity, DefinitionStages.WithNetworkSettings, DefinitionStages.WithProvisioningState, DefinitionStages.WithSecuritySettings, DefinitionStages.WithSku, DefinitionStages.WithSubnet, DefinitionStages.WithUpgradeStatus {
+ }
+ }
+ /**
+ * The template for a Cache update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithCacheSizeGB, UpdateStages.WithEncryptionSettings, UpdateStages.WithIdentity, UpdateStages.WithNetworkSettings, UpdateStages.WithProvisioningState, UpdateStages.WithSecuritySettings, UpdateStages.WithSku, UpdateStages.WithSubnet, UpdateStages.WithUpgradeStatus {
+ }
+
+ /**
+ * Grouping of Cache update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cache update allowing to specify CacheSizeGB.
+ */
+ interface WithCacheSizeGB {
+ /**
+ * Specifies cacheSizeGB.
+ * @param cacheSizeGB The size of this Cache, in GB
+ * @return the next update stage
+ */
+ Update withCacheSizeGB(Integer cacheSizeGB);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify EncryptionSettings.
+ */
+ interface WithEncryptionSettings {
+ /**
+ * Specifies encryptionSettings.
+ * @param encryptionSettings Specifies encryption settings of the cache
+ * @return the next update stage
+ */
+ Update withEncryptionSettings(CacheEncryptionSettings encryptionSettings);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cache, if configured
+ * @return the next update stage
+ */
+ Update withIdentity(CacheIdentity identity);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify NetworkSettings.
+ */
+ interface WithNetworkSettings {
+ /**
+ * Specifies networkSettings.
+ * @param networkSettings Specifies network settings of the cache
+ * @return the next update stage
+ */
+ Update withNetworkSettings(CacheNetworkSettings networkSettings);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ * @param provisioningState ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. Possible values include: 'Succeeded', 'Failed', 'Cancelled', 'Creating', 'Deleting', 'Updating'
+ * @return the next update stage
+ */
+ Update withProvisioningState(ProvisioningStateType provisioningState);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify SecuritySettings.
+ */
+ interface WithSecuritySettings {
+ /**
+ * Specifies securitySettings.
+ * @param securitySettings Specifies security settings of the cache
+ * @return the next update stage
+ */
+ Update withSecuritySettings(CacheSecuritySettings securitySettings);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku SKU for the Cache
+ * @return the next update stage
+ */
+ Update withSku(CacheSku sku);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify Subnet.
+ */
+ interface WithSubnet {
+ /**
+ * Specifies subnet.
+ * @param subnet Subnet used for the Cache
+ * @return the next update stage
+ */
+ Update withSubnet(String subnet);
+ }
+
+ /**
+ * The stage of the cache update allowing to specify UpgradeStatus.
+ */
+ interface WithUpgradeStatus {
+ /**
+ * Specifies upgradeStatus.
+ * @param upgradeStatus Upgrade status of the Cache
+ * @return the next update stage
+ */
+ Update withUpgradeStatus(CacheUpgradeStatus upgradeStatus);
+ }
+
+ }
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheEncryptionSettings.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheEncryptionSettings.java
new file mode 100644
index 000000000000..a0a23598beb9
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheEncryptionSettings.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.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cache encryption settings.
+ */
+public class CacheEncryptionSettings {
+ /**
+ * Specifies the location of the key encryption key in Key Vault.
+ */
+ @JsonProperty(value = "keyEncryptionKey")
+ private KeyVaultKeyReference keyEncryptionKey;
+
+ /**
+ * Get specifies the location of the key encryption key in Key Vault.
+ *
+ * @return the keyEncryptionKey value
+ */
+ public KeyVaultKeyReference keyEncryptionKey() {
+ return this.keyEncryptionKey;
+ }
+
+ /**
+ * Set specifies the location of the key encryption key in Key Vault.
+ *
+ * @param keyEncryptionKey the keyEncryptionKey value to set
+ * @return the CacheEncryptionSettings object itself.
+ */
+ public CacheEncryptionSettings withKeyEncryptionKey(KeyVaultKeyReference keyEncryptionKey) {
+ this.keyEncryptionKey = keyEncryptionKey;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheHealth.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheHealth.java
new file mode 100644
index 000000000000..25de6d1976a8
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheHealth.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.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An indication of Cache health. Gives more information about health than just
+ * that related to provisioning.
+ */
+public class CacheHealth {
+ /**
+ * List of Cache health states. Possible values include: 'Unknown',
+ * 'Healthy', 'Degraded', 'Down', 'Transitioning', 'Stopping', 'Stopped',
+ * 'Upgrading', 'Flushing'.
+ */
+ @JsonProperty(value = "state")
+ private HealthStateType state;
+
+ /**
+ * Describes explanation of state.
+ */
+ @JsonProperty(value = "statusDescription")
+ private String statusDescription;
+
+ /**
+ * Get list of Cache health states. Possible values include: 'Unknown', 'Healthy', 'Degraded', 'Down', 'Transitioning', 'Stopping', 'Stopped', 'Upgrading', 'Flushing'.
+ *
+ * @return the state value
+ */
+ public HealthStateType state() {
+ return this.state;
+ }
+
+ /**
+ * Set list of Cache health states. Possible values include: 'Unknown', 'Healthy', 'Degraded', 'Down', 'Transitioning', 'Stopping', 'Stopped', 'Upgrading', 'Flushing'.
+ *
+ * @param state the state value to set
+ * @return the CacheHealth object itself.
+ */
+ public CacheHealth withState(HealthStateType state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get describes explanation of state.
+ *
+ * @return the statusDescription value
+ */
+ public String statusDescription() {
+ return this.statusDescription;
+ }
+
+ /**
+ * Set describes explanation of state.
+ *
+ * @param statusDescription the statusDescription value to set
+ * @return the CacheHealth object itself.
+ */
+ public CacheHealth withStatusDescription(String statusDescription) {
+ this.statusDescription = statusDescription;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentity.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentity.java
new file mode 100644
index 000000000000..2a22a660044d
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentity.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cache identity properties.
+ */
+public class CacheIdentity {
+ /**
+ * The principal id of the cache.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant id associated with the cache.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The type of identity used for the cache. Possible values include:
+ * 'SystemAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private CacheIdentityType type;
+
+ /**
+ * Get the principal id of the cache.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant id associated with the cache.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the type of identity used for the cache. Possible values include: 'SystemAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public CacheIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of identity used for the cache. Possible values include: 'SystemAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the CacheIdentity object itself.
+ */
+ public CacheIdentity withType(CacheIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentityType.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentityType.java
new file mode 100644
index 000000000000..b548947aea44
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheIdentityType.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.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for CacheIdentityType.
+ */
+public enum CacheIdentityType {
+ /** Enum value SystemAssigned. */
+ SYSTEM_ASSIGNED("SystemAssigned"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** The actual serialized value for a CacheIdentityType instance. */
+ private String value;
+
+ CacheIdentityType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a CacheIdentityType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed CacheIdentityType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static CacheIdentityType fromString(String value) {
+ CacheIdentityType[] items = CacheIdentityType.values();
+ for (CacheIdentityType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheNetworkSettings.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheNetworkSettings.java
new file mode 100644
index 000000000000..3784adc8c3ab
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheNetworkSettings.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.storagecache.v2020_03_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cache network settings.
+ */
+public class CacheNetworkSettings {
+ /**
+ * The IPv4 maximum transmission unit configured for the subnet.
+ */
+ @JsonProperty(value = "mtu")
+ private Integer mtu;
+
+ /**
+ * Array of additional IP addresses used by this Cache.
+ */
+ @JsonProperty(value = "utilityAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List utilityAddresses;
+
+ /**
+ * Get the IPv4 maximum transmission unit configured for the subnet.
+ *
+ * @return the mtu value
+ */
+ public Integer mtu() {
+ return this.mtu;
+ }
+
+ /**
+ * Set the IPv4 maximum transmission unit configured for the subnet.
+ *
+ * @param mtu the mtu value to set
+ * @return the CacheNetworkSettings object itself.
+ */
+ public CacheNetworkSettings withMtu(Integer mtu) {
+ this.mtu = mtu;
+ return this;
+ }
+
+ /**
+ * Get array of additional IP addresses used by this Cache.
+ *
+ * @return the utilityAddresses value
+ */
+ public List utilityAddresses() {
+ return this.utilityAddresses;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSecuritySettings.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSecuritySettings.java
new file mode 100644
index 000000000000..e8390c366e2c
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSecuritySettings.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.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Cache security settings.
+ */
+public class CacheSecuritySettings {
+ /**
+ * root squash of cache property.
+ */
+ @JsonProperty(value = "rootSquash")
+ private Boolean rootSquash;
+
+ /**
+ * Get root squash of cache property.
+ *
+ * @return the rootSquash value
+ */
+ public Boolean rootSquash() {
+ return this.rootSquash;
+ }
+
+ /**
+ * Set root squash of cache property.
+ *
+ * @param rootSquash the rootSquash value to set
+ * @return the CacheSecuritySettings object itself.
+ */
+ public CacheSecuritySettings withRootSquash(Boolean rootSquash) {
+ this.rootSquash = rootSquash;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSku.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSku.java
new file mode 100644
index 000000000000..0b28b4913b07
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheSku.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.storagecache.v2020_03_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SKU for the Cache.
+ */
+public class CacheSku {
+ /**
+ * SKU name for this Cache.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get sKU name for this Cache.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set sKU name for this Cache.
+ *
+ * @param name the name value to set
+ * @return the CacheSku object itself.
+ */
+ public CacheSku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheUpgradeStatus.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheUpgradeStatus.java
new file mode 100644
index 000000000000..1b63ed3e86d1
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/CacheUpgradeStatus.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.storagecache.v2020_03_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties describing the software upgrade state of the Cache.
+ */
+public class CacheUpgradeStatus {
+ /**
+ * Version string of the firmware currently installed on this Cache.
+ */
+ @JsonProperty(value = "currentFirmwareVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String currentFirmwareVersion;
+
+ /**
+ * True if there is a firmware update ready to install on this Cache. The
+ * firmware will automatically be installed after firmwareUpdateDeadline if
+ * not triggered earlier via the upgrade operation. Possible values
+ * include: 'available', 'unavailable'.
+ */
+ @JsonProperty(value = "firmwareUpdateStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private FirmwareStatusType firmwareUpdateStatus;
+
+ /**
+ * Time at which the pending firmware update will automatically be
+ * installed on the Cache.
+ */
+ @JsonProperty(value = "firmwareUpdateDeadline", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime firmwareUpdateDeadline;
+
+ /**
+ * Time of the last successful firmware update.
+ */
+ @JsonProperty(value = "lastFirmwareUpdate", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastFirmwareUpdate;
+
+ /**
+ * When firmwareUpdateAvailable is true, this field holds the version
+ * string for the update.
+ */
+ @JsonProperty(value = "pendingFirmwareVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String pendingFirmwareVersion;
+
+ /**
+ * Get version string of the firmware currently installed on this Cache.
+ *
+ * @return the currentFirmwareVersion value
+ */
+ public String currentFirmwareVersion() {
+ return this.currentFirmwareVersion;
+ }
+
+ /**
+ * Get true if there is a firmware update ready to install on this Cache. The firmware will automatically be installed after firmwareUpdateDeadline if not triggered earlier via the upgrade operation. Possible values include: 'available', 'unavailable'.
+ *
+ * @return the firmwareUpdateStatus value
+ */
+ public FirmwareStatusType firmwareUpdateStatus() {
+ return this.firmwareUpdateStatus;
+ }
+
+ /**
+ * Get time at which the pending firmware update will automatically be installed on the Cache.
+ *
+ * @return the firmwareUpdateDeadline value
+ */
+ public DateTime firmwareUpdateDeadline() {
+ return this.firmwareUpdateDeadline;
+ }
+
+ /**
+ * Get time of the last successful firmware update.
+ *
+ * @return the lastFirmwareUpdate value
+ */
+ public DateTime lastFirmwareUpdate() {
+ return this.lastFirmwareUpdate;
+ }
+
+ /**
+ * Get when firmwareUpdateAvailable is true, this field holds the version string for the update.
+ *
+ * @return the pendingFirmwareVersion value
+ */
+ public String pendingFirmwareVersion() {
+ return this.pendingFirmwareVersion;
+ }
+
+}
diff --git a/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Caches.java b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Caches.java
new file mode 100644
index 000000000000..9542efe114e9
--- /dev/null
+++ b/sdk/storagecache/mgmt-v2020_03_01/src/main/java/com/microsoft/azure/management/storagecache/v2020_03_01/Caches.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.storagecache.v2020_03_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.storagecache.v2020_03_01.implementation.CachesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Caches.
+ */
+public interface Caches extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Tells a Cache to write all dirty data to the Storage Target(s). During the flush, clients will see errors returned until the flush is complete.
+ *
+ * @param resourceGroupName Target resource group.
+ * @param cacheName Name of Cache. Length of name must be not greater than 80 and chars must be in list of [-0-9a-zA-Z_] char class.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable