diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 053d18426c3e..ba8f4a2d4df5 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -340,6 +340,7 @@ com.azure.resourcemanager:azure-resourcemanager-securityinsights;1.0.0-beta.2;1.
com.azure.resourcemanager:azure-resourcemanager-oep;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-dnsresolver;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-mobilenetwork;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-storage-generated;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.0.0
com.azure.tools:azure-sdk-build-tool;1.0.0-beta.1;1.0.0-beta.2
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/CHANGELOG.md b/sdk/storage/azure-resourcemanager-storage-generated/CHANGELOG.md
new file mode 100644
index 000000000000..9af37fc3a08d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2022-03-24)
+
+- Azure Resource Manager Storage client library for Java. This package contains Microsoft Azure SDK for Storage Management SDK. The Azure Storage Management API. Package tag package-2021-09. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/README.md b/sdk/storage/azure-resourcemanager-storage-generated/README.md
new file mode 100644
index 000000000000..ced6291c2a17
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager Storage client library for Java
+
+Azure Resource Manager Storage client library for Java.
+
+This package contains Microsoft Azure SDK for Storage Management SDK. The Azure Storage Management API. Package tag package-2021-09. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-storage-generated;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-storage-generated
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+StorageManager manager = StorageManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/storage/azure-resourcemanager-storage-generated/SAMPLE.md)
+
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/SAMPLE.md b/sdk/storage/azure-resourcemanager-storage-generated/SAMPLE.md
new file mode 100644
index 000000000000..259101259a83
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/SAMPLE.md
@@ -0,0 +1,4635 @@
+# Code snippets and samples
+
+
+## BlobContainers
+
+- [ClearLegalHold](#blobcontainers_clearlegalhold)
+- [Create](#blobcontainers_create)
+- [CreateOrUpdateImmutabilityPolicy](#blobcontainers_createorupdateimmutabilitypolicy)
+- [Delete](#blobcontainers_delete)
+- [DeleteImmutabilityPolicy](#blobcontainers_deleteimmutabilitypolicy)
+- [ExtendImmutabilityPolicy](#blobcontainers_extendimmutabilitypolicy)
+- [Get](#blobcontainers_get)
+- [GetImmutabilityPolicy](#blobcontainers_getimmutabilitypolicy)
+- [Lease](#blobcontainers_lease)
+- [List](#blobcontainers_list)
+- [LockImmutabilityPolicy](#blobcontainers_lockimmutabilitypolicy)
+- [ObjectLevelWorm](#blobcontainers_objectlevelworm)
+- [SetLegalHold](#blobcontainers_setlegalhold)
+- [Update](#blobcontainers_update)
+
+## BlobInventoryPolicies
+
+- [CreateOrUpdate](#blobinventorypolicies_createorupdate)
+- [Delete](#blobinventorypolicies_delete)
+- [Get](#blobinventorypolicies_get)
+- [List](#blobinventorypolicies_list)
+
+## BlobServices
+
+- [GetServiceProperties](#blobservices_getserviceproperties)
+- [List](#blobservices_list)
+- [SetServiceProperties](#blobservices_setserviceproperties)
+
+## DeletedAccounts
+
+- [Get](#deletedaccounts_get)
+- [List](#deletedaccounts_list)
+
+## EncryptionScopes
+
+- [Get](#encryptionscopes_get)
+- [List](#encryptionscopes_list)
+- [Patch](#encryptionscopes_patch)
+- [Put](#encryptionscopes_put)
+
+## FileServices
+
+- [GetServiceProperties](#fileservices_getserviceproperties)
+- [List](#fileservices_list)
+- [SetServiceProperties](#fileservices_setserviceproperties)
+
+## FileShares
+
+- [Create](#fileshares_create)
+- [Delete](#fileshares_delete)
+- [Get](#fileshares_get)
+- [Lease](#fileshares_lease)
+- [List](#fileshares_list)
+- [Restore](#fileshares_restore)
+- [Update](#fileshares_update)
+
+## LocalUsersOperation
+
+- [CreateOrUpdate](#localusersoperation_createorupdate)
+- [Delete](#localusersoperation_delete)
+- [Get](#localusersoperation_get)
+- [List](#localusersoperation_list)
+- [ListKeys](#localusersoperation_listkeys)
+- [RegeneratePassword](#localusersoperation_regeneratepassword)
+
+## ManagementPolicies
+
+- [CreateOrUpdate](#managementpolicies_createorupdate)
+- [Delete](#managementpolicies_delete)
+- [Get](#managementpolicies_get)
+
+## ObjectReplicationPoliciesOperation
+
+- [CreateOrUpdate](#objectreplicationpoliciesoperation_createorupdate)
+- [Delete](#objectreplicationpoliciesoperation_delete)
+- [Get](#objectreplicationpoliciesoperation_get)
+- [List](#objectreplicationpoliciesoperation_list)
+
+## Operations
+
+- [List](#operations_list)
+
+## PrivateEndpointConnections
+
+- [Delete](#privateendpointconnections_delete)
+- [Get](#privateendpointconnections_get)
+- [List](#privateendpointconnections_list)
+- [Put](#privateendpointconnections_put)
+
+## PrivateLinkResources
+
+- [ListByStorageAccount](#privatelinkresources_listbystorageaccount)
+
+## Queue
+
+- [Create](#queue_create)
+- [Delete](#queue_delete)
+- [Get](#queue_get)
+- [List](#queue_list)
+- [Update](#queue_update)
+
+## QueueServices
+
+- [GetServiceProperties](#queueservices_getserviceproperties)
+- [List](#queueservices_list)
+- [SetServiceProperties](#queueservices_setserviceproperties)
+
+## Skus
+
+- [List](#skus_list)
+
+## StorageAccounts
+
+- [AbortHierarchicalNamespaceMigration](#storageaccounts_aborthierarchicalnamespacemigration)
+- [CheckNameAvailability](#storageaccounts_checknameavailability)
+- [Create](#storageaccounts_create)
+- [Delete](#storageaccounts_delete)
+- [Failover](#storageaccounts_failover)
+- [GetByResourceGroup](#storageaccounts_getbyresourcegroup)
+- [HierarchicalNamespaceMigration](#storageaccounts_hierarchicalnamespacemigration)
+- [List](#storageaccounts_list)
+- [ListAccountSas](#storageaccounts_listaccountsas)
+- [ListByResourceGroup](#storageaccounts_listbyresourcegroup)
+- [ListKeys](#storageaccounts_listkeys)
+- [ListServiceSas](#storageaccounts_listservicesas)
+- [RegenerateKey](#storageaccounts_regeneratekey)
+- [RestoreBlobRanges](#storageaccounts_restoreblobranges)
+- [RevokeUserDelegationKeys](#storageaccounts_revokeuserdelegationkeys)
+- [Update](#storageaccounts_update)
+
+## Table
+
+- [Create](#table_create)
+- [Delete](#table_delete)
+- [Get](#table_get)
+- [List](#table_list)
+- [Update](#table_update)
+
+## TableServices
+
+- [GetServiceProperties](#tableservices_getserviceproperties)
+- [List](#tableservices_list)
+- [SetServiceProperties](#tableservices_setserviceproperties)
+
+## Usages
+
+- [ListByLocation](#usages_listbylocation)
+### BlobContainers_ClearLegalHold
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.LegalHoldInner;
+import java.util.Arrays;
+
+/** Samples for BlobContainers ClearLegalHold. */
+public final class BlobContainersClearLegalHoldSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersClearLegalHold.json
+ */
+ /**
+ * Sample code: ClearLegalHoldContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void clearLegalHoldContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .clearLegalHoldWithResponse(
+ "res4303",
+ "sto7280",
+ "container8723",
+ new LegalHoldInner().withTags(Arrays.asList("tag1", "tag2", "tag3")),
+ Context.NONE);
+ }
+}
+```
+
+### BlobContainers_Create
+
+```java
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageWithVersioning;
+
+/** Samples for BlobContainers Create. */
+public final class BlobContainersCreateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPutDefaultEncryptionScope.json
+ */
+ /**
+ * Sample code: PutContainerWithDefaultEncryptionScope.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putContainerWithDefaultEncryptionScope(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .define("container6185")
+ .withExistingStorageAccount("res3376", "sto328")
+ .withDefaultEncryptionScope("encryptionscope185")
+ .withDenyEncryptionScopeOverride(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPutObjectLevelWorm.json
+ */
+ /**
+ * Sample code: PutContainerWithObjectLevelWorm.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putContainerWithObjectLevelWorm(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .define("container6185")
+ .withExistingStorageAccount("res3376", "sto328")
+ .withImmutableStorageWithVersioning(new ImmutableStorageWithVersioning().withEnabled(true))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPut.json
+ */
+ /**
+ * Sample code: PutContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().define("container6185").withExistingStorageAccount("res3376", "sto328").create();
+ }
+}
+```
+
+### BlobContainers_CreateOrUpdateImmutabilityPolicy
+
+```java
+/** Samples for BlobContainers CreateOrUpdateImmutabilityPolicy. */
+public final class BlobContainersCreateOrUpdateImmutabilityPolicySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPutImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: CreateOrUpdateImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void createOrUpdateImmutabilityPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .defineImmutabilityPolicy()
+ .withExistingContainer("res1782", "sto7069", "container6397")
+ .withImmutabilityPeriodSinceCreationInDays(3)
+ .withAllowProtectedAppendWrites(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json
+ */
+ /**
+ * Sample code: CreateOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void createOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .defineImmutabilityPolicy()
+ .withExistingContainer("res1782", "sto7069", "container6397")
+ .withImmutabilityPeriodSinceCreationInDays(3)
+ .withAllowProtectedAppendWritesAll(true)
+ .create();
+ }
+}
+```
+
+### BlobContainers_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers Delete. */
+public final class BlobContainersDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersDelete.json
+ */
+ /**
+ * Sample code: DeleteContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deleteContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().deleteWithResponse("res4079", "sto4506", "container9689", Context.NONE);
+ }
+}
+```
+
+### BlobContainers_DeleteImmutabilityPolicy
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers DeleteImmutabilityPolicy. */
+public final class BlobContainersDeleteImmutabilityPolicySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersDeleteImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: DeleteImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deleteImmutabilityPolicy(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .deleteImmutabilityPolicyWithResponse(
+ "res1581", "sto9621", "container4910", "\"8d59f81a7fa7be0\"", Context.NONE);
+ }
+}
+```
+
+### BlobContainers_ExtendImmutabilityPolicy
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ImmutabilityPolicyInner;
+
+/** Samples for BlobContainers ExtendImmutabilityPolicy. */
+public final class BlobContainersExtendImmutabilityPolicySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersExtendImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: ExtendImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void extendImmutabilityPolicy(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .extendImmutabilityPolicyWithResponse(
+ "res6238",
+ "sto232",
+ "container5023",
+ "\"8d59f830d0c3bf9\"",
+ new ImmutabilityPolicyInner().withImmutabilityPeriodSinceCreationInDays(100),
+ Context.NONE);
+ }
+}
+```
+
+### BlobContainers_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers Get. */
+public final class BlobContainersGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersGet.json
+ */
+ /**
+ * Sample code: GetContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().getWithResponse("res9871", "sto6217", "container1634", Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json
+ */
+ /**
+ * Sample code: GetBlobContainersGetWithAllowProtectedAppendWritesAll.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getBlobContainersGetWithAllowProtectedAppendWritesAll(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().getWithResponse("res9871", "sto6217", "container1634", Context.NONE);
+ }
+}
+```
+
+### BlobContainers_GetImmutabilityPolicy
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers GetImmutabilityPolicy. */
+public final class BlobContainersGetImmutabilityPolicySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersGetImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: GetImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getImmutabilityPolicy(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .getImmutabilityPolicyWithResponse("res5221", "sto9177", "container3489", null, Context.NONE);
+ }
+}
+```
+
+### BlobContainers_Lease
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerRequest;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerRequestAction;
+
+/** Samples for BlobContainers Lease. */
+public final class BlobContainersLeaseSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersLease_Break.json
+ */
+ /**
+ * Sample code: Break a lease on a container.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void breakALeaseOnAContainer(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .leaseWithResponse(
+ "res3376",
+ "sto328",
+ "container6185",
+ new LeaseContainerRequest()
+ .withAction(LeaseContainerRequestAction.BREAK)
+ .withLeaseId("8698f513-fa75-44a1-b8eb-30ba336af27d"),
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersLease_Acquire.json
+ */
+ /**
+ * Sample code: Acquire a lease on a container.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void acquireALeaseOnAContainer(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .leaseWithResponse(
+ "res3376",
+ "sto328",
+ "container6185",
+ new LeaseContainerRequest().withAction(LeaseContainerRequestAction.ACQUIRE).withLeaseDuration(-1),
+ Context.NONE);
+ }
+}
+```
+
+### BlobContainers_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.ListContainersInclude;
+
+/** Samples for BlobContainers List. */
+public final class BlobContainersListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersList.json
+ */
+ /**
+ * Sample code: ListContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().list("res9290", "sto1590", null, null, null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/DeletedBlobContainersList.json
+ */
+ /**
+ * Sample code: ListDeletedContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listDeletedContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().list("res9290", "sto1590", null, null, ListContainersInclude.DELETED, Context.NONE);
+ }
+}
+```
+
+### BlobContainers_LockImmutabilityPolicy
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers LockImmutabilityPolicy. */
+public final class BlobContainersLockImmutabilityPolicySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersLockImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: LockImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void lockImmutabilityPolicy(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .lockImmutabilityPolicyWithResponse(
+ "res2702", "sto5009", "container1631", "\"8d59f825b721dd3\"", Context.NONE);
+ }
+}
+```
+
+### BlobContainers_ObjectLevelWorm
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobContainers ObjectLevelWorm. */
+public final class BlobContainersObjectLevelWormSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/ObjectLevelWormContainerMigration.json
+ */
+ /**
+ * Sample code: VersionLevelWormContainerMigration.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void versionLevelWormContainerMigration(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobContainers().objectLevelWorm("res1782", "sto7069", "container6397", Context.NONE);
+ }
+}
+```
+
+### BlobContainers_SetLegalHold
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.LegalHoldInner;
+import java.util.Arrays;
+
+/** Samples for BlobContainers SetLegalHold. */
+public final class BlobContainersSetLegalHoldSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersSetLegalHold.json
+ */
+ /**
+ * Sample code: SetLegalHoldContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void setLegalHoldContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .setLegalHoldWithResponse(
+ "res4303",
+ "sto7280",
+ "container8723",
+ new LegalHoldInner().withTags(Arrays.asList("tag1", "tag2", "tag3")),
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json
+ */
+ /**
+ * Sample code: SetLegalHoldContainersWithAllowProtectedAppendWritesAll.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void setLegalHoldContainersWithAllowProtectedAppendWritesAll(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobContainers()
+ .setLegalHoldWithResponse(
+ "res4303",
+ "sto7280",
+ "container8723",
+ new LegalHoldInner()
+ .withTags(Arrays.asList("tag1", "tag2", "tag3"))
+ .withAllowProtectedAppendWritesAll(true),
+ Context.NONE);
+ }
+}
+```
+
+### BlobContainers_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.BlobContainer;
+import com.azure.resourcemanager.storage.generated.models.PublicAccess;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for BlobContainers Update. */
+public final class BlobContainersUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobContainersPatch.json
+ */
+ /**
+ * Sample code: UpdateContainers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void updateContainers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ BlobContainer resource =
+ manager.blobContainers().getWithResponse("res3376", "sto328", "container6185", Context.NONE).getValue();
+ resource.update().withPublicAccess(PublicAccess.CONTAINER).withMetadata(mapOf("metadata", "true")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### BlobInventoryPolicies_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyDefinition;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyFilter;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyName;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyRule;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicySchema;
+import com.azure.resourcemanager.storage.generated.models.Format;
+import com.azure.resourcemanager.storage.generated.models.InventoryRuleType;
+import com.azure.resourcemanager.storage.generated.models.ObjectType;
+import com.azure.resourcemanager.storage.generated.models.Schedule;
+import java.util.Arrays;
+
+/** Samples for BlobInventoryPolicies CreateOrUpdate. */
+public final class BlobInventoryPoliciesCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json
+ */
+ /**
+ * Sample code: StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobInventoryPolicies()
+ .define(BlobInventoryPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new BlobInventoryPolicySchema()
+ .withEnabled(true)
+ .withType(InventoryRuleType.INVENTORY)
+ .withRules(
+ Arrays
+ .asList(
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule1")
+ .withDestination("container1")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFilters(
+ new BlobInventoryPolicyFilter()
+ .withPrefixMatch(
+ Arrays.asList("inventoryprefix1", "inventoryprefix2"))
+ .withExcludePrefix(
+ Arrays.asList("excludeprefix1", "excludeprefix2"))
+ .withBlobTypes(Arrays.asList("blockBlob", "appendBlob", "pageBlob"))
+ .withIncludeBlobVersions(true)
+ .withIncludeSnapshots(true)
+ .withIncludeDeleted(true))
+ .withFormat(Format.CSV)
+ .withSchedule(Schedule.DAILY)
+ .withObjectType(ObjectType.BLOB)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Creation-Time",
+ "Last-Modified",
+ "Content-Length",
+ "Content-MD5",
+ "BlobType",
+ "AccessTier",
+ "AccessTierChangeTime",
+ "Snapshot",
+ "VersionId",
+ "IsCurrentVersion",
+ "Tags",
+ "ContentType",
+ "ContentEncoding",
+ "ContentLanguage",
+ "ContentCRC64",
+ "CacheControl",
+ "Metadata",
+ "Deleted",
+ "RemainingRetentionDays"))),
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule2")
+ .withDestination("container2")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFormat(Format.PARQUET)
+ .withSchedule(Schedule.WEEKLY)
+ .withObjectType(ObjectType.CONTAINER)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Last-Modified",
+ "Metadata",
+ "LeaseStatus",
+ "LeaseState",
+ "LeaseDuration",
+ "PublicAccess",
+ "HasImmutabilityPolicy",
+ "HasLegalHold",
+ "Etag",
+ "DefaultEncryptionScope",
+ "DenyEncryptionScopeOverride",
+ "ImmutableStorageWithVersioningEnabled",
+ "Deleted",
+ "Version",
+ "DeletedTime",
+ "RemainingRetentionDays"))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetBlobInventoryPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountSetBlobInventoryPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetBlobInventoryPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobInventoryPolicies()
+ .define(BlobInventoryPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new BlobInventoryPolicySchema()
+ .withEnabled(true)
+ .withType(InventoryRuleType.INVENTORY)
+ .withRules(
+ Arrays
+ .asList(
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule1")
+ .withDestination("container1")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFilters(
+ new BlobInventoryPolicyFilter()
+ .withPrefixMatch(
+ Arrays.asList("inventoryprefix1", "inventoryprefix2"))
+ .withExcludePrefix(
+ Arrays.asList("excludeprefix1", "excludeprefix2"))
+ .withBlobTypes(Arrays.asList("blockBlob", "appendBlob", "pageBlob"))
+ .withIncludeBlobVersions(true)
+ .withIncludeSnapshots(true))
+ .withFormat(Format.CSV)
+ .withSchedule(Schedule.DAILY)
+ .withObjectType(ObjectType.BLOB)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Creation-Time",
+ "Last-Modified",
+ "Content-Length",
+ "Content-MD5",
+ "BlobType",
+ "AccessTier",
+ "AccessTierChangeTime",
+ "Snapshot",
+ "VersionId",
+ "IsCurrentVersion",
+ "Metadata"))),
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule2")
+ .withDestination("container2")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFormat(Format.PARQUET)
+ .withSchedule(Schedule.WEEKLY)
+ .withObjectType(ObjectType.CONTAINER)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Last-Modified",
+ "Metadata",
+ "LeaseStatus",
+ "LeaseState",
+ "LeaseDuration",
+ "PublicAccess",
+ "HasImmutabilityPolicy",
+ "HasLegalHold"))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json
+ */
+ /**
+ * Sample code: StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobInventoryPolicies()
+ .define(BlobInventoryPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new BlobInventoryPolicySchema()
+ .withEnabled(true)
+ .withType(InventoryRuleType.INVENTORY)
+ .withRules(
+ Arrays
+ .asList(
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule1")
+ .withDestination("container1")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFilters(
+ new BlobInventoryPolicyFilter()
+ .withPrefixMatch(
+ Arrays.asList("inventoryprefix1", "inventoryprefix2"))
+ .withExcludePrefix(
+ Arrays.asList("excludeprefix1", "excludeprefix2"))
+ .withBlobTypes(Arrays.asList("blockBlob", "appendBlob", "pageBlob"))
+ .withIncludeBlobVersions(true)
+ .withIncludeSnapshots(true)
+ .withIncludeDeleted(true))
+ .withFormat(Format.CSV)
+ .withSchedule(Schedule.DAILY)
+ .withObjectType(ObjectType.BLOB)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Creation-Time",
+ "Last-Modified",
+ "Content-Length",
+ "Content-MD5",
+ "BlobType",
+ "AccessTier",
+ "AccessTierChangeTime",
+ "Snapshot",
+ "VersionId",
+ "IsCurrentVersion",
+ "ContentType",
+ "ContentEncoding",
+ "ContentLanguage",
+ "ContentCRC64",
+ "CacheControl",
+ "Metadata",
+ "DeletionId",
+ "Deleted",
+ "DeletedTime",
+ "RemainingRetentionDays"))),
+ new BlobInventoryPolicyRule()
+ .withEnabled(true)
+ .withName("inventoryPolicyRule2")
+ .withDestination("container2")
+ .withDefinition(
+ new BlobInventoryPolicyDefinition()
+ .withFormat(Format.PARQUET)
+ .withSchedule(Schedule.WEEKLY)
+ .withObjectType(ObjectType.CONTAINER)
+ .withSchemaFields(
+ Arrays
+ .asList(
+ "Name",
+ "Last-Modified",
+ "Metadata",
+ "LeaseStatus",
+ "LeaseState",
+ "LeaseDuration",
+ "PublicAccess",
+ "HasImmutabilityPolicy",
+ "HasLegalHold",
+ "Etag",
+ "DefaultEncryptionScope",
+ "DenyEncryptionScopeOverride",
+ "ImmutableStorageWithVersioningEnabled",
+ "Deleted",
+ "Version",
+ "DeletedTime",
+ "RemainingRetentionDays"))))))
+ .create();
+ }
+}
+```
+
+### BlobInventoryPolicies_Delete
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyName;
+
+/** Samples for BlobInventoryPolicies Delete. */
+public final class BlobInventoryPoliciesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountDeleteBlobInventoryPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountDeleteBlobInventoryPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountDeleteBlobInventoryPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobInventoryPolicies()
+ .deleteWithResponse("res6977", "sto2527", BlobInventoryPolicyName.DEFAULT, Context.NONE);
+ }
+}
+```
+
+### BlobInventoryPolicies_Get
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyName;
+
+/** Samples for BlobInventoryPolicies Get. */
+public final class BlobInventoryPoliciesGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetBlobInventoryPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountGetBlobInventoryPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetBlobInventoryPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobInventoryPolicies()
+ .getWithResponse("res7687", "sto9699", BlobInventoryPolicyName.DEFAULT, Context.NONE);
+ }
+}
+```
+
+### BlobInventoryPolicies_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobInventoryPolicies List. */
+public final class BlobInventoryPoliciesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListBlobInventoryPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountGetBlobInventoryPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetBlobInventoryPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobInventoryPolicies().list("res7687", "sto9699", Context.NONE);
+ }
+}
+```
+
+### BlobServices_GetServiceProperties
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobServices GetServiceProperties. */
+public final class BlobServicesGetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobServicesGet.json
+ */
+ /**
+ * Sample code: GetBlobServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getBlobServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobServices().getServicePropertiesWithResponse("res4410", "sto8607", Context.NONE);
+ }
+}
+```
+
+### BlobServices_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for BlobServices List. */
+public final class BlobServicesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobServicesList.json
+ */
+ /**
+ * Sample code: ListBlobServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listBlobServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.blobServices().list("res4410", "sto8607", Context.NONE);
+ }
+}
+```
+
+### BlobServices_SetServiceProperties
+
+```java
+import com.azure.resourcemanager.storage.generated.models.ChangeFeed;
+import com.azure.resourcemanager.storage.generated.models.CorsRule;
+import com.azure.resourcemanager.storage.generated.models.CorsRuleAllowedMethodsItem;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.DeleteRetentionPolicy;
+import com.azure.resourcemanager.storage.generated.models.LastAccessTimeTrackingPolicy;
+import com.azure.resourcemanager.storage.generated.models.Name;
+import java.util.Arrays;
+
+/** Samples for BlobServices SetServiceProperties. */
+public final class BlobServicesSetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobServicesPut.json
+ */
+ /**
+ * Sample code: PutBlobServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putBlobServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withCors(
+ new CorsRules()
+ .withCorsRules(
+ Arrays
+ .asList(
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.contoso.com", "http://www.fabrikam.com"))
+ .withAllowedMethods(
+ Arrays
+ .asList(
+ CorsRuleAllowedMethodsItem.GET,
+ CorsRuleAllowedMethodsItem.HEAD,
+ CorsRuleAllowedMethodsItem.POST,
+ CorsRuleAllowedMethodsItem.OPTIONS,
+ CorsRuleAllowedMethodsItem.MERGE,
+ CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(100)
+ .withExposedHeaders(Arrays.asList("x-ms-meta-*"))
+ .withAllowedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*")),
+ new CorsRule()
+ .withAllowedOrigins(Arrays.asList("*"))
+ .withAllowedMethods(Arrays.asList(CorsRuleAllowedMethodsItem.GET))
+ .withMaxAgeInSeconds(2)
+ .withExposedHeaders(Arrays.asList("*"))
+ .withAllowedHeaders(Arrays.asList("*")),
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.abc23.com", "https://www.fabrikam.com/*"))
+ .withAllowedMethods(
+ Arrays.asList(CorsRuleAllowedMethodsItem.GET, CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(2000)
+ .withExposedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x -ms-meta-target*"))
+ .withAllowedHeaders(Arrays.asList("x-ms-meta-12345675754564*")))))
+ .withDefaultServiceVersion("2017-07-29")
+ .withDeleteRetentionPolicy(new DeleteRetentionPolicy().withEnabled(true).withDays(300))
+ .withIsVersioningEnabled(true)
+ .withChangeFeed(new ChangeFeed().withEnabled(true).withRetentionInDays(7))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobServicesPutAllowPermanentDelete.json
+ */
+ /**
+ * Sample code: BlobServicesPutAllowPermanentDelete.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void blobServicesPutAllowPermanentDelete(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withDeleteRetentionPolicy(
+ new DeleteRetentionPolicy().withEnabled(true).withDays(300).withAllowPermanentDelete(true))
+ .withIsVersioningEnabled(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobServicesPutLastAccessTimeBasedTracking.json
+ */
+ /**
+ * Sample code: BlobServicesPutLastAccessTimeBasedTracking.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void blobServicesPutLastAccessTimeBasedTracking(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .blobServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withLastAccessTimeTrackingPolicy(
+ new LastAccessTimeTrackingPolicy()
+ .withEnable(true)
+ .withName(Name.ACCESS_TIME_TRACKING)
+ .withTrackingGranularityInDays(1)
+ .withBlobType(Arrays.asList("blockBlob")))
+ .create();
+ }
+}
+```
+
+### DeletedAccounts_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for DeletedAccounts Get. */
+public final class DeletedAccountsGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/DeletedAccountGet.json
+ */
+ /**
+ * Sample code: DeletedAccountGet.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deletedAccountGet(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.deletedAccounts().getWithResponse("sto1125", "eastus", Context.NONE);
+ }
+}
+```
+
+### DeletedAccounts_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for DeletedAccounts List. */
+public final class DeletedAccountsListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/DeletedAccountList.json
+ */
+ /**
+ * Sample code: DeletedAccountList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deletedAccountList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.deletedAccounts().list(Context.NONE);
+ }
+}
+```
+
+### EncryptionScopes_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for EncryptionScopes Get. */
+public final class EncryptionScopesGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetEncryptionScope.json
+ */
+ /**
+ * Sample code: StorageAccountGetEncryptionScope.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetEncryptionScope(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .encryptionScopes()
+ .getWithResponse("resource-group-name", "{storage-account-name}", "{encryption-scope-name}", Context.NONE);
+ }
+}
+```
+
+### EncryptionScopes_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for EncryptionScopes List. */
+public final class EncryptionScopesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountEncryptionScopeList.json
+ */
+ /**
+ * Sample code: StorageAccountEncryptionScopeList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountEncryptionScopeList(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.encryptionScopes().list("resource-group-name", "{storage-account-name}", Context.NONE);
+ }
+}
+```
+
+### EncryptionScopes_Patch
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScope;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeKeyVaultProperties;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeSource;
+
+/** Samples for EncryptionScopes Patch. */
+public final class EncryptionScopesPatchSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountPatchEncryptionScope.json
+ */
+ /**
+ * Sample code: StorageAccountPatchEncryptionScope.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountPatchEncryptionScope(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ EncryptionScope resource =
+ manager
+ .encryptionScopes()
+ .getWithResponse(
+ "resource-group-name", "{storage-account-name}", "{encryption-scope-name}", Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withSource(EncryptionScopeSource.MICROSOFT_KEY_VAULT)
+ .withKeyVaultProperties(
+ new EncryptionScopeKeyVaultProperties()
+ .withKeyUri("https://testvault.vault.core.windows.net/keys/key1/863425f1358359c"))
+ .apply();
+ }
+}
+```
+
+### EncryptionScopes_Put
+
+```java
+/** Samples for EncryptionScopes Put. */
+public final class EncryptionScopesPutSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json
+ */
+ /**
+ * Sample code: StorageAccountPutEncryptionScopeWithInfrastructureEncryption.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountPutEncryptionScopeWithInfrastructureEncryption(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .encryptionScopes()
+ .define("{encryption-scope-name}")
+ .withExistingStorageAccount("resource-group-name", "{storage-account-name}")
+ .withRequireInfrastructureEncryption(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountPutEncryptionScope.json
+ */
+ /**
+ * Sample code: StorageAccountPutEncryptionScope.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountPutEncryptionScope(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .encryptionScopes()
+ .define("{encryption-scope-name}")
+ .withExistingStorageAccount("resource-group-name", "{storage-account-name}")
+ .create();
+ }
+}
+```
+
+### FileServices_GetServiceProperties
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FileServices GetServiceProperties. */
+public final class FileServicesGetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileServicesGet.json
+ */
+ /**
+ * Sample code: GetFileServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getFileServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileServices().getServicePropertiesWithResponse("res4410", "sto8607", Context.NONE);
+ }
+}
+```
+
+### FileServices_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FileServices List. */
+public final class FileServicesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileServicesList.json
+ */
+ /**
+ * Sample code: ListFileServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listFileServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileServices().listWithResponse("res9290", "sto1590", Context.NONE);
+ }
+}
+```
+
+### FileServices_SetServiceProperties
+
+```java
+import com.azure.resourcemanager.storage.generated.models.CorsRule;
+import com.azure.resourcemanager.storage.generated.models.CorsRuleAllowedMethodsItem;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.Multichannel;
+import com.azure.resourcemanager.storage.generated.models.ProtocolSettings;
+import com.azure.resourcemanager.storage.generated.models.SmbSetting;
+import java.util.Arrays;
+
+/** Samples for FileServices SetServiceProperties. */
+public final class FileServicesSetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileServicesPut.json
+ */
+ /**
+ * Sample code: PutFileServices.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putFileServices(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withCors(
+ new CorsRules()
+ .withCorsRules(
+ Arrays
+ .asList(
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.contoso.com", "http://www.fabrikam.com"))
+ .withAllowedMethods(
+ Arrays
+ .asList(
+ CorsRuleAllowedMethodsItem.GET,
+ CorsRuleAllowedMethodsItem.HEAD,
+ CorsRuleAllowedMethodsItem.POST,
+ CorsRuleAllowedMethodsItem.OPTIONS,
+ CorsRuleAllowedMethodsItem.MERGE,
+ CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(100)
+ .withExposedHeaders(Arrays.asList("x-ms-meta-*"))
+ .withAllowedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*")),
+ new CorsRule()
+ .withAllowedOrigins(Arrays.asList("*"))
+ .withAllowedMethods(Arrays.asList(CorsRuleAllowedMethodsItem.GET))
+ .withMaxAgeInSeconds(2)
+ .withExposedHeaders(Arrays.asList("*"))
+ .withAllowedHeaders(Arrays.asList("*")),
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.abc23.com", "https://www.fabrikam.com/*"))
+ .withAllowedMethods(
+ Arrays.asList(CorsRuleAllowedMethodsItem.GET, CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(2000)
+ .withExposedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*"))
+ .withAllowedHeaders(Arrays.asList("x-ms-meta-12345675754564*")))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileServicesPut_EnableSecureSmbFeatures.json
+ */
+ /**
+ * Sample code: PutFileServices_EnableSecureSmbFeatures.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putFileServicesEnableSecureSmbFeatures(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withProtocolSettings(
+ new ProtocolSettings()
+ .withSmb(
+ new SmbSetting()
+ .withVersions("SMB2.1;SMB3.0;SMB3.1.1")
+ .withAuthenticationMethods("NTLMv2;Kerberos")
+ .withKerberosTicketEncryption("RC4-HMAC;AES-256")
+ .withChannelEncryption("AES-128-CCM;AES-128-GCM;AES-256-GCM")))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileServicesPut_EnableSMBMultichannel.json
+ */
+ /**
+ * Sample code: PutFileServices_EnableSMBMultichannel.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putFileServicesEnableSMBMultichannel(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withProtocolSettings(
+ new ProtocolSettings().withSmb(new SmbSetting().withMultichannel(new Multichannel().withEnabled(true))))
+ .create();
+ }
+}
+```
+
+### FileShares_Create
+
+```java
+import com.azure.resourcemanager.storage.generated.models.EnabledProtocols;
+import com.azure.resourcemanager.storage.generated.models.ShareAccessTier;
+
+/** Samples for FileShares Create. */
+public final class FileSharesCreateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesPut_AccessTier.json
+ */
+ /**
+ * Sample code: PutShares with Access Tier.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putSharesWithAccessTier(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileShares()
+ .define("share1235")
+ .withExistingStorageAccount("res346", "sto666")
+ .withAccessTier(ShareAccessTier.HOT)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesPut_NFS.json
+ */
+ /**
+ * Sample code: Create NFS Shares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void createNFSShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileShares()
+ .define("share1235")
+ .withExistingStorageAccount("res346", "sto666")
+ .withEnabledProtocols(EnabledProtocols.NFS)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesPut.json
+ */
+ /**
+ * Sample code: PutShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void putShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().define("share6185").withExistingStorageAccount("res3376", "sto328").create();
+ }
+}
+```
+
+### FileShares_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FileShares Delete. */
+public final class FileSharesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesDelete.json
+ */
+ /**
+ * Sample code: DeleteShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deleteShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().deleteWithResponse("res4079", "sto4506", "share9689", null, null, Context.NONE);
+ }
+}
+```
+
+### FileShares_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FileShares Get. */
+public final class FileSharesGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesGet_Stats.json
+ */
+ /**
+ * Sample code: GetShareStats.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getShareStats(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().getWithResponse("res9871", "sto6217", "share1634", "stats", null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesGet.json
+ */
+ /**
+ * Sample code: GetShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().getWithResponse("res9871", "sto6217", "share1634", null, null, Context.NONE);
+ }
+}
+```
+
+### FileShares_Lease
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.LeaseShareAction;
+import com.azure.resourcemanager.storage.generated.models.LeaseShareRequest;
+
+/** Samples for FileShares Lease. */
+public final class FileSharesLeaseSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesLease_Break.json
+ */
+ /**
+ * Sample code: Break a lease on a share.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void breakALeaseOnAShare(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileShares()
+ .leaseWithResponse(
+ "res3376",
+ "sto328",
+ "share12",
+ null,
+ new LeaseShareRequest()
+ .withAction(LeaseShareAction.BREAK)
+ .withLeaseId("8698f513-fa75-44a1-b8eb-30ba336af27d"),
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesLease_Acquire.json
+ */
+ /**
+ * Sample code: Acquire a lease on a share.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void acquireALeaseOnAShare(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileShares()
+ .leaseWithResponse(
+ "res3376",
+ "sto328",
+ "share124",
+ null,
+ new LeaseShareRequest().withAction(LeaseShareAction.ACQUIRE).withLeaseDuration(-1),
+ Context.NONE);
+ }
+}
+```
+
+### FileShares_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FileShares List. */
+public final class FileSharesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesList.json
+ */
+ /**
+ * Sample code: ListShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().list("res9290", "sto1590", null, null, null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/DeletedFileSharesList.json
+ */
+ /**
+ * Sample code: ListDeletedShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listDeletedShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().list("res9290", "sto1590", null, null, "deleted", Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileShareSnapshotsList.json
+ */
+ /**
+ * Sample code: ListShareSnapshots.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listShareSnapshots(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.fileShares().list("res9290", "sto1590", null, null, "snapshots", Context.NONE);
+ }
+}
+```
+
+### FileShares_Restore
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.DeletedShare;
+
+/** Samples for FileShares Restore. */
+public final class FileSharesRestoreSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesRestore.json
+ */
+ /**
+ * Sample code: RestoreShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void restoreShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .fileShares()
+ .restoreWithResponse(
+ "res3376",
+ "sto328",
+ "share1249",
+ new DeletedShare().withDeletedShareName("share1249").withDeletedShareVersion("1234567890"),
+ Context.NONE);
+ }
+}
+```
+
+### FileShares_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.AccessPolicy;
+import com.azure.resourcemanager.storage.generated.models.FileShare;
+import com.azure.resourcemanager.storage.generated.models.SignedIdentifier;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for FileShares Update. */
+public final class FileSharesUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileSharesPatch.json
+ */
+ /**
+ * Sample code: UpdateShares.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void updateShares(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ FileShare resource =
+ manager.fileShares().getWithResponse("res3376", "sto328", "share6185", null, null, Context.NONE).getValue();
+ resource.update().withMetadata(mapOf("type", "image")).apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/FileShareAclsPatch.json
+ */
+ /**
+ * Sample code: UpdateShareAcls.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void updateShareAcls(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ FileShare resource =
+ manager.fileShares().getWithResponse("res3376", "sto328", "share6185", null, null, Context.NONE).getValue();
+ resource
+ .update()
+ .withSignedIdentifiers(
+ Arrays
+ .asList(
+ new SignedIdentifier()
+ .withId("MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI")
+ .withAccessPolicy(
+ new AccessPolicy()
+ .withStartTime(OffsetDateTime.parse("2021-04-01T08:49:37.0000000Z"))
+ .withExpiryTime(OffsetDateTime.parse("2021-05-01T08:49:37.0000000Z"))
+ .withPermission("rwd"))))
+ .apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### LocalUsersOperation_CreateOrUpdate
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.LocalUser;
+import com.azure.resourcemanager.storage.generated.models.PermissionScope;
+import com.azure.resourcemanager.storage.generated.models.SshPublicKey;
+import java.util.Arrays;
+
+/** Samples for LocalUsersOperation CreateOrUpdate. */
+public final class LocalUsersOperationCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserCreate.json
+ */
+ /**
+ * Sample code: CreateLocalUser.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void createLocalUser(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .localUsersOperations()
+ .define("user1")
+ .withExistingStorageAccount("res6977", "sto2527")
+ .withPermissionScopes(
+ Arrays
+ .asList(
+ new PermissionScope().withPermissions("rwd").withService("file").withResourceName("share1"),
+ new PermissionScope().withPermissions("rw").withService("file").withResourceName("share2")))
+ .withHomeDirectory("homedirectory")
+ .withSshAuthorizedKeys(
+ Arrays.asList(new SshPublicKey().withDescription("key name").withKey("ssh-rsa keykeykeykeykey=")))
+ .withHasSshPassword(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserUpdate.json
+ */
+ /**
+ * Sample code: UpdateLocalUser.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void updateLocalUser(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ LocalUser resource =
+ manager.localUsersOperations().getWithResponse("res6977", "sto2527", "user1", Context.NONE).getValue();
+ resource
+ .update()
+ .withHomeDirectory("homedirectory2")
+ .withHasSharedKey(false)
+ .withHasSshKey(false)
+ .withHasSshPassword(false)
+ .apply();
+ }
+}
+```
+
+### LocalUsersOperation_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for LocalUsersOperation Delete. */
+public final class LocalUsersOperationDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserDelete.json
+ */
+ /**
+ * Sample code: DeleteLocalUser.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void deleteLocalUser(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.localUsersOperations().deleteWithResponse("res6977", "sto2527", "user1", Context.NONE);
+ }
+}
+```
+
+### LocalUsersOperation_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for LocalUsersOperation Get. */
+public final class LocalUsersOperationGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserGet.json
+ */
+ /**
+ * Sample code: GetLocalUser.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void getLocalUser(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.localUsersOperations().getWithResponse("res6977", "sto2527", "user1", Context.NONE);
+ }
+}
+```
+
+### LocalUsersOperation_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for LocalUsersOperation List. */
+public final class LocalUsersOperationListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUsersList.json
+ */
+ /**
+ * Sample code: ListLocalUsers.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listLocalUsers(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.localUsersOperations().list("res6977", "sto2527", Context.NONE);
+ }
+}
+```
+
+### LocalUsersOperation_ListKeys
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for LocalUsersOperation ListKeys. */
+public final class LocalUsersOperationListKeysSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserListKeys.json
+ */
+ /**
+ * Sample code: ListLocalUserKeys.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void listLocalUserKeys(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.localUsersOperations().listKeysWithResponse("res6977", "sto2527", "user1", Context.NONE);
+ }
+}
+```
+
+### LocalUsersOperation_RegeneratePassword
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for LocalUsersOperation RegeneratePassword. */
+public final class LocalUsersOperationRegeneratePasswordSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/LocalUserRegeneratePassword.json
+ */
+ /**
+ * Sample code: RegenerateLocalUserPassword.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void regenerateLocalUserPassword(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.localUsersOperations().regeneratePasswordWithResponse("res6977", "sto2527", "user1", Context.NONE);
+ }
+}
+```
+
+### ManagementPolicies_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.storage.generated.models.DateAfterCreation;
+import com.azure.resourcemanager.storage.generated.models.DateAfterModification;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyAction;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyBaseBlob;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyDefinition;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyFilter;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyName;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyRule;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicySchema;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicySnapShot;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyVersion;
+import com.azure.resourcemanager.storage.generated.models.RuleType;
+import com.azure.resourcemanager.storage.generated.models.TagFilter;
+import java.util.Arrays;
+
+/** Samples for ManagementPolicies CreateOrUpdate. */
+public final class ManagementPoliciesCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicyWithSnapshotAndVersion.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicyWithSnapshotAndVersion(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest1")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(90.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(1000.0f)))
+ .withSnapshot(
+ new ManagementPolicySnapShot()
+ .withTierToCool(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f))
+ .withTierToArchive(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(90f))
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(1000f)))
+ .withVersion(
+ new ManagementPolicyVersion()
+ .withTierToCool(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f))
+ .withTierToArchive(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(90f))
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(1000f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer1"))
+ .withBlobTypes(Arrays.asList("blockBlob")))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicyForBlockAndAppendBlobs.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicyForBlockAndAppendBlobs(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest1")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(90.0f)))
+ .withSnapshot(
+ new ManagementPolicySnapShot()
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(90f)))
+ .withVersion(
+ new ManagementPolicyVersion()
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(90f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer1"))
+ .withBlobTypes(Arrays.asList("blockBlob", "appendBlob")))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicyLastAccessTimeBasedBlobActions(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterLastAccessTimeGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterLastAccessTimeGreaterThan(90.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterLastAccessTimeGreaterThan(1000.0f))
+ .withEnableAutoTierToHotFromCool(true))
+ .withSnapshot(
+ new ManagementPolicySnapShot()
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer"))
+ .withBlobTypes(Arrays.asList("blockBlob")))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest1")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(90.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(1000.0f)))
+ .withSnapshot(
+ new ManagementPolicySnapShot()
+ .withDelete(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer1"))
+ .withBlobTypes(Arrays.asList("blockBlob")))),
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest2")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(90.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(1000.0f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer2"))
+ .withBlobTypes(Arrays.asList("blockBlob"))
+ .withBlobIndexMatch(
+ Arrays
+ .asList(
+ new TagFilter()
+ .withName("tag1")
+ .withOp("==")
+ .withValue("val1"),
+ new TagFilter()
+ .withName("tag2")
+ .withOp("==")
+ .withValue("val2"))))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicyBaseBlobDaysAfterCreationActions(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest1")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterCreationGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterCreationGreaterThan(90.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterCreationGreaterThan(1000.0f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer1"))
+ .withBlobTypes(Arrays.asList("blockBlob")))))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json
+ */
+ /**
+ * Sample code: StorageAccountSetManagementPolicy_LastTierChangeTimeActions.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountSetManagementPolicyLastTierChangeTimeActions(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .define(ManagementPolicyName.DEFAULT)
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPolicy(
+ new ManagementPolicySchema()
+ .withRules(
+ Arrays
+ .asList(
+ new ManagementPolicyRule()
+ .withEnabled(true)
+ .withName("olcmtest")
+ .withType(RuleType.LIFECYCLE)
+ .withDefinition(
+ new ManagementPolicyDefinition()
+ .withActions(
+ new ManagementPolicyAction()
+ .withBaseBlob(
+ new ManagementPolicyBaseBlob()
+ .withTierToCool(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(30.0f))
+ .withTierToArchive(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(90.0f)
+ .withDaysAfterLastTierChangeGreaterThan(120.0f))
+ .withDelete(
+ new DateAfterModification()
+ .withDaysAfterModificationGreaterThan(1000.0f)))
+ .withSnapshot(
+ new ManagementPolicySnapShot()
+ .withTierToArchive(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f)
+ .withDaysAfterLastTierChangeGreaterThan(90.0f)))
+ .withVersion(
+ new ManagementPolicyVersion()
+ .withTierToArchive(
+ new DateAfterCreation()
+ .withDaysAfterCreationGreaterThan(30f)
+ .withDaysAfterLastTierChangeGreaterThan(90.0f))))
+ .withFilters(
+ new ManagementPolicyFilter()
+ .withPrefixMatch(Arrays.asList("olcmtestcontainer"))
+ .withBlobTypes(Arrays.asList("blockBlob")))))))
+ .create();
+ }
+}
+```
+
+### ManagementPolicies_Delete
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyName;
+
+/** Samples for ManagementPolicies Delete. */
+public final class ManagementPoliciesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountDeleteManagementPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountDeleteManagementPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountDeleteManagementPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .managementPolicies()
+ .deleteWithResponse("res6977", "sto2527", ManagementPolicyName.DEFAULT, Context.NONE);
+ }
+}
+```
+
+### ManagementPolicies_Get
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyName;
+
+/** Samples for ManagementPolicies Get. */
+public final class ManagementPoliciesGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetManagementPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountGetManagementPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetManagementPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.managementPolicies().getWithResponse("res6977", "sto2527", ManagementPolicyName.DEFAULT, Context.NONE);
+ }
+}
+```
+
+### ObjectReplicationPoliciesOperation_CreateOrUpdate
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPolicy;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPolicyFilter;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPolicyRule;
+import java.util.Arrays;
+
+/** Samples for ObjectReplicationPoliciesOperation CreateOrUpdate. */
+public final class ObjectReplicationPoliciesOperationCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateObjectReplicationPolicyOnSource.json
+ */
+ /**
+ * Sample code: StorageAccountCreateObjectReplicationPolicyOnSource.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateObjectReplicationPolicyOnSource(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .objectReplicationPoliciesOperations()
+ .define("2a20bb73-5717-4635-985a-5d4cf777438f")
+ .withExistingStorageAccount("res7687", "src1122")
+ .withSourceAccount("src1122")
+ .withDestinationAccount("dst112")
+ .withRules(
+ Arrays
+ .asList(
+ new ObjectReplicationPolicyRule()
+ .withRuleId("d5d18a48-8801-4554-aeaa-74faf65f5ef9")
+ .withSourceContainer("scont139")
+ .withDestinationContainer("dcont139")
+ .withFilters(
+ new ObjectReplicationPolicyFilter()
+ .withPrefixMatch(Arrays.asList("blobA", "blobB"))
+ .withMinCreationTime("2020-02-19T16:05:00Z"))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json
+ */
+ /**
+ * Sample code: StorageAccountCreateObjectReplicationPolicyOnDestination.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateObjectReplicationPolicyOnDestination(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .objectReplicationPoliciesOperations()
+ .define("default")
+ .withExistingStorageAccount("res7687", "dst112")
+ .withSourceAccount("src1122")
+ .withDestinationAccount("dst112")
+ .withRules(
+ Arrays
+ .asList(
+ new ObjectReplicationPolicyRule()
+ .withSourceContainer("scont139")
+ .withDestinationContainer("dcont139")
+ .withFilters(
+ new ObjectReplicationPolicyFilter().withPrefixMatch(Arrays.asList("blobA", "blobB")))))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateObjectReplicationPolicyOnDestination.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateObjectReplicationPolicyOnDestination(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ ObjectReplicationPolicy resource =
+ manager
+ .objectReplicationPoliciesOperations()
+ .getWithResponse("res7687", "dst112", "2a20bb73-5717-4635-985a-5d4cf777438f", Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withSourceAccount("src1122")
+ .withDestinationAccount("dst112")
+ .withRules(
+ Arrays
+ .asList(
+ new ObjectReplicationPolicyRule()
+ .withRuleId("d5d18a48-8801-4554-aeaa-74faf65f5ef9")
+ .withSourceContainer("scont139")
+ .withDestinationContainer("dcont139")
+ .withFilters(
+ new ObjectReplicationPolicyFilter().withPrefixMatch(Arrays.asList("blobA", "blobB"))),
+ new ObjectReplicationPolicyRule()
+ .withSourceContainer("scont179")
+ .withDestinationContainer("dcont179")))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateObjectReplicationPolicyOnSource.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateObjectReplicationPolicyOnSource(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ ObjectReplicationPolicy resource =
+ manager
+ .objectReplicationPoliciesOperations()
+ .getWithResponse("res7687", "src1122", "2a20bb73-5717-4635-985a-5d4cf777438f", Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withSourceAccount("src1122")
+ .withDestinationAccount("dst112")
+ .withRules(
+ Arrays
+ .asList(
+ new ObjectReplicationPolicyRule()
+ .withRuleId("d5d18a48-8801-4554-aeaa-74faf65f5ef9")
+ .withSourceContainer("scont139")
+ .withDestinationContainer("dcont139")
+ .withFilters(
+ new ObjectReplicationPolicyFilter().withPrefixMatch(Arrays.asList("blobA", "blobB"))),
+ new ObjectReplicationPolicyRule()
+ .withRuleId("cfbb4bc2-8b60-429f-b05a-d1e0942b33b2")
+ .withSourceContainer("scont179")
+ .withDestinationContainer("dcont179")))
+ .apply();
+ }
+}
+```
+
+### ObjectReplicationPoliciesOperation_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ObjectReplicationPoliciesOperation Delete. */
+public final class ObjectReplicationPoliciesOperationDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountDeleteObjectReplicationPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountDeleteObjectReplicationPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountDeleteObjectReplicationPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .objectReplicationPoliciesOperations()
+ .deleteWithResponse("res6977", "sto2527", "{objectReplicationPolicy-Id}", Context.NONE);
+ }
+}
+```
+
+### ObjectReplicationPoliciesOperation_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ObjectReplicationPoliciesOperation Get. */
+public final class ObjectReplicationPoliciesOperationGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetObjectReplicationPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountGetObjectReplicationPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetObjectReplicationPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .objectReplicationPoliciesOperations()
+ .getWithResponse("res6977", "sto2527", "{objectReplicationPolicy-Id}", Context.NONE);
+ }
+}
+```
+
+### ObjectReplicationPoliciesOperation_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ObjectReplicationPoliciesOperation List. */
+public final class ObjectReplicationPoliciesOperationListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListObjectReplicationPolicies.json
+ */
+ /**
+ * Sample code: StorageAccountListObjectReplicationPolicies.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListObjectReplicationPolicies(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.objectReplicationPoliciesOperations().list("res6977", "sto2527", Context.NONE);
+ }
+}
+```
+
+### Operations_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Operations List. */
+public final class OperationsListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/OperationsList.json
+ */
+ /**
+ * Sample code: OperationsList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void operationsList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.operations().list(Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections Delete. */
+public final class PrivateEndpointConnectionsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountDeletePrivateEndpointConnection.json
+ */
+ /**
+ * Sample code: StorageAccountDeletePrivateEndpointConnection.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountDeletePrivateEndpointConnection(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .privateEndpointConnections()
+ .deleteWithResponse("res6977", "sto2527", "{privateEndpointConnectionName}", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections Get. */
+public final class PrivateEndpointConnectionsGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetPrivateEndpointConnection.json
+ */
+ /**
+ * Sample code: StorageAccountGetPrivateEndpointConnection.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetPrivateEndpointConnection(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .privateEndpointConnections()
+ .getWithResponse("res6977", "sto2527", "{privateEndpointConnectionName}", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateEndpointConnections List. */
+public final class PrivateEndpointConnectionsListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListPrivateEndpointConnections.json
+ */
+ /**
+ * Sample code: StorageAccountListPrivateEndpointConnections.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListPrivateEndpointConnections(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.privateEndpointConnections().list("res6977", "sto2527", Context.NONE);
+ }
+}
+```
+
+### PrivateEndpointConnections_Put
+
+```java
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpointServiceConnectionStatus;
+import com.azure.resourcemanager.storage.generated.models.PrivateLinkServiceConnectionState;
+
+/** Samples for PrivateEndpointConnections Put. */
+public final class PrivateEndpointConnectionsPutSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountPutPrivateEndpointConnection.json
+ */
+ /**
+ * Sample code: StorageAccountPutPrivateEndpointConnection.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountPutPrivateEndpointConnection(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .privateEndpointConnections()
+ .define("{privateEndpointConnectionName}")
+ .withExistingStorageAccount("res7687", "sto9699")
+ .withPrivateLinkServiceConnectionState(
+ new PrivateLinkServiceConnectionState()
+ .withStatus(PrivateEndpointServiceConnectionStatus.APPROVED)
+ .withDescription("Auto-Approved"))
+ .create();
+ }
+}
+```
+
+### PrivateLinkResources_ListByStorageAccount
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for PrivateLinkResources ListByStorageAccount. */
+public final class PrivateLinkResourcesListByStorageAccountSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListPrivateLinkResources.json
+ */
+ /**
+ * Sample code: StorageAccountListPrivateLinkResources.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListPrivateLinkResources(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.privateLinkResources().listByStorageAccountWithResponse("res6977", "sto2527", Context.NONE);
+ }
+}
+```
+
+### Queue_Create
+
+```java
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Queue Create. */
+public final class QueueCreateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationPut.json
+ */
+ /**
+ * Sample code: QueueOperationPut.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationPut(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queues().define("queue6185").withExistingStorageAccount("res3376", "sto328").create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationPutWithMetadata.json
+ */
+ /**
+ * Sample code: QueueOperationPutWithMetadata.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationPutWithMetadata(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .queues()
+ .define("queue6185")
+ .withExistingStorageAccount("res3376", "sto328")
+ .withMetadata(mapOf("sample1", "meta1", "sample2", "meta2"))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Queue_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Queue Delete. */
+public final class QueueDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationDelete.json
+ */
+ /**
+ * Sample code: QueueOperationDelete.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationDelete(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queues().deleteWithResponse("res3376", "sto328", "queue6185", Context.NONE);
+ }
+}
+```
+
+### Queue_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Queue Get. */
+public final class QueueGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationGet.json
+ */
+ /**
+ * Sample code: QueueOperationGet.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationGet(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queues().getWithResponse("res3376", "sto328", "queue6185", Context.NONE);
+ }
+}
+```
+
+### Queue_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Queue List. */
+public final class QueueListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationList.json
+ */
+ /**
+ * Sample code: QueueOperationList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queues().list("res9290", "sto328", null, null, Context.NONE);
+ }
+}
+```
+
+### Queue_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.StorageQueue;
+
+/** Samples for Queue Update. */
+public final class QueueUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueOperationPatch.json
+ */
+ /**
+ * Sample code: QueueOperationPatch.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueOperationPatch(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageQueue resource =
+ manager.queues().getWithResponse("res3376", "sto328", "queue6185", Context.NONE).getValue();
+ resource.update().apply();
+ }
+}
+```
+
+### QueueServices_GetServiceProperties
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for QueueServices GetServiceProperties. */
+public final class QueueServicesGetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueServicesGet.json
+ */
+ /**
+ * Sample code: QueueServicesGet.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueServicesGet(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queueServices().getServicePropertiesWithResponse("res4410", "sto8607", Context.NONE);
+ }
+}
+```
+
+### QueueServices_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for QueueServices List. */
+public final class QueueServicesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueServicesList.json
+ */
+ /**
+ * Sample code: QueueServicesList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueServicesList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.queueServices().listWithResponse("res9290", "sto1590", Context.NONE);
+ }
+}
+```
+
+### QueueServices_SetServiceProperties
+
+```java
+import com.azure.resourcemanager.storage.generated.models.CorsRule;
+import com.azure.resourcemanager.storage.generated.models.CorsRuleAllowedMethodsItem;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import java.util.Arrays;
+
+/** Samples for QueueServices SetServiceProperties. */
+public final class QueueServicesSetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/QueueServicesPut.json
+ */
+ /**
+ * Sample code: QueueServicesPut.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void queueServicesPut(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .queueServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withCors(
+ new CorsRules()
+ .withCorsRules(
+ Arrays
+ .asList(
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.contoso.com", "http://www.fabrikam.com"))
+ .withAllowedMethods(
+ Arrays
+ .asList(
+ CorsRuleAllowedMethodsItem.GET,
+ CorsRuleAllowedMethodsItem.HEAD,
+ CorsRuleAllowedMethodsItem.POST,
+ CorsRuleAllowedMethodsItem.OPTIONS,
+ CorsRuleAllowedMethodsItem.MERGE,
+ CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(100)
+ .withExposedHeaders(Arrays.asList("x-ms-meta-*"))
+ .withAllowedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*")),
+ new CorsRule()
+ .withAllowedOrigins(Arrays.asList("*"))
+ .withAllowedMethods(Arrays.asList(CorsRuleAllowedMethodsItem.GET))
+ .withMaxAgeInSeconds(2)
+ .withExposedHeaders(Arrays.asList("*"))
+ .withAllowedHeaders(Arrays.asList("*")),
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.abc23.com", "https://www.fabrikam.com/*"))
+ .withAllowedMethods(
+ Arrays.asList(CorsRuleAllowedMethodsItem.GET, CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(2000)
+ .withExposedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*"))
+ .withAllowedHeaders(Arrays.asList("x-ms-meta-12345675754564*")))))
+ .create();
+ }
+}
+```
+
+### Skus_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Skus List. */
+public final class SkusListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/SKUList.json
+ */
+ /**
+ * Sample code: SkuList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void skuList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.skus().list(Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_AbortHierarchicalNamespaceMigration
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts AbortHierarchicalNamespaceMigration. */
+public final class StorageAccountsAbortHierarchicalNamespaceMigrationSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountAbortHierarchicalNamespaceMigration.json
+ */
+ /**
+ * Sample code: StorageAccountAbortHierarchicalNamespaceMigration.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountAbortHierarchicalNamespaceMigration(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().abortHierarchicalNamespaceMigration("res4228", "sto2434", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_CheckNameAvailability
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountCheckNameAvailabilityParameters;
+
+/** Samples for StorageAccounts CheckNameAvailability. */
+public final class StorageAccountsCheckNameAvailabilitySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCheckNameAvailability.json
+ */
+ /**
+ * Sample code: StorageAccountCheckNameAvailability.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCheckNameAvailability(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .checkNameAvailabilityWithResponse(
+ new StorageAccountCheckNameAvailabilityParameters().withName("sto3363"), Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_Create
+
+```java
+import com.azure.resourcemanager.storage.generated.models.AccountImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.AccountImmutabilityPolicyState;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.Bypass;
+import com.azure.resourcemanager.storage.generated.models.DefaultAction;
+import com.azure.resourcemanager.storage.generated.models.DnsEndpointType;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.EncryptionIdentity;
+import com.azure.resourcemanager.storage.generated.models.EncryptionService;
+import com.azure.resourcemanager.storage.generated.models.EncryptionServices;
+import com.azure.resourcemanager.storage.generated.models.ExpirationAction;
+import com.azure.resourcemanager.storage.generated.models.ExtendedLocation;
+import com.azure.resourcemanager.storage.generated.models.ExtendedLocationTypes;
+import com.azure.resourcemanager.storage.generated.models.Identity;
+import com.azure.resourcemanager.storage.generated.models.IdentityType;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.KeySource;
+import com.azure.resourcemanager.storage.generated.models.KeyType;
+import com.azure.resourcemanager.storage.generated.models.KeyVaultProperties;
+import com.azure.resourcemanager.storage.generated.models.Kind;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.RoutingChoice;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.azure.resourcemanager.storage.generated.models.Sku;
+import com.azure.resourcemanager.storage.generated.models.SkuName;
+import com.azure.resourcemanager.storage.generated.models.UserAssignedIdentity;
+import com.azure.resourcemanager.storage.generated.models.VirtualNetworkRule;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for StorageAccounts Create. */
+public final class StorageAccountsCreateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/NfsV3AccountCreate.json
+ */
+ /**
+ * Sample code: NfsV3AccountCreate.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void nfsV3AccountCreate(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.PREMIUM_LRS))
+ .withKind(Kind.BLOCK_BLOB_STORAGE)
+ .withNetworkRuleSet(
+ new NetworkRuleSet()
+ .withBypass(Bypass.AZURE_SERVICES)
+ .withVirtualNetworkRules(
+ Arrays
+ .asList(
+ new VirtualNetworkRule()
+ .withVirtualNetworkResourceId(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12")))
+ .withIpRules(Arrays.asList())
+ .withDefaultAction(DefaultAction.ALLOW))
+ .withEnableHttpsTrafficOnly(false)
+ .withIsHnsEnabled(true)
+ .withEnableNfsV3(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreatePremiumBlockBlobStorage.json
+ */
+ /**
+ * Sample code: StorageAccountCreatePremiumBlockBlobStorage.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreatePremiumBlockBlobStorage(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.PREMIUM_LRS))
+ .withKind(Kind.BLOCK_BLOB_STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateWithImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountCreateWithImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateWithImmutabilityPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withImmutableStorageWithVersioning(
+ new ImmutableStorageAccount()
+ .withEnabled(true)
+ .withImmutabilityPolicy(
+ new AccountImmutabilityPolicyProperties()
+ .withImmutabilityPeriodSinceCreationInDays(15)
+ .withState(AccountImmutabilityPolicyState.UNLOCKED)
+ .withAllowProtectedAppendWrites(true)))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json
+ */
+ /**
+ * Sample code: StorageAccountCreateAllowedCopyScopeToPrivateLink.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateAllowedCopyScopeToPrivateLink(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withAllowedCopyScope(AllowedCopyScope.PRIVATE_LINK)
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreate.json
+ */
+ /**
+ * Sample code: StorageAccountCreate.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreate(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsSftpEnabled(true)
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withDefaultToOAuthAuthentication(false)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateEnablePublicNetworkAccess.json
+ */
+ /**
+ * Sample code: StorageAccountCreateEnablePublicNetworkAccess.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateEnablePublicNetworkAccess(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withPublicNetworkAccess(PublicNetworkAccess.ENABLED)
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateAllowedCopyScopeToAAD.json
+ */
+ /**
+ * Sample code: StorageAccountCreateAllowedCopyScopeToAAD.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateAllowedCopyScopeToAAD(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withAllowedCopyScope(AllowedCopyScope.AAD)
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json
+ */
+ /**
+ * Sample code: StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto131918")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res131918")
+ .withSku(new Sku().withName(SkuName.STANDARD_LRS))
+ .withKind(Kind.STORAGE)
+ .withIdentity(
+ new Identity()
+ .withType(IdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}",
+ new UserAssignedIdentity())))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_KEYVAULT)
+ .withKeyVaultProperties(
+ new KeyVaultProperties()
+ .withKeyName("wrappingKey")
+ .withKeyVersion("")
+ .withKeyVaultUri("https://myvault8569.vault.azure.net"))
+ .withEncryptionIdentity(
+ new EncryptionIdentity()
+ .withEncryptionUserAssignedIdentity(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}")
+ .withEncryptionFederatedIdentityClientId("f83c6b1b-4d34-47e4-bb34-9d83df58b540")))
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateDisallowPublicNetworkAccess.json
+ */
+ /**
+ * Sample code: StorageAccountCreateDisallowPublicNetworkAccess.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateDisallowPublicNetworkAccess(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withPublicNetworkAccess(PublicNetworkAccess.DISABLED)
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateDnsEndpointTypeToStandard.json
+ */
+ /**
+ * Sample code: StorageAccountCreateDnsEndpointTypeToStandard.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateDnsEndpointTypeToStandard(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsSftpEnabled(true)
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withDefaultToOAuthAuthentication(false)
+ .withDnsEndpointType(DnsEndpointType.STANDARD)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json
+ */
+ /**
+ * Sample code: StorageAccountCreateDnsEndpointTypeToAzureDnsZone.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateDnsEndpointTypeToAzureDnsZone(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_GRS))
+ .withKind(Kind.STORAGE)
+ .withTags(mapOf("key1", "value1", "key2", "value2"))
+ .withExtendedLocation(
+ new ExtendedLocation().withName("losangeles001").withType(ExtendedLocationTypes.EDGE_ZONE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE)
+ .withRequireInfrastructureEncryption(false))
+ .withIsSftpEnabled(true)
+ .withIsHnsEnabled(true)
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withDefaultToOAuthAuthentication(false)
+ .withDnsEndpointType(DnsEndpointType.AZURE_DNS_ZONE)
+ .create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json
+ */
+ /**
+ * Sample code: StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountCreateUserAssignedEncryptionIdentityWithCMK(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .define("sto4445")
+ .withRegion("eastus")
+ .withExistingResourceGroup("res9101")
+ .withSku(new Sku().withName(SkuName.STANDARD_LRS))
+ .withKind(Kind.STORAGE)
+ .withIdentity(
+ new Identity()
+ .withType(IdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}",
+ new UserAssignedIdentity())))
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_KEYVAULT)
+ .withKeyVaultProperties(
+ new KeyVaultProperties()
+ .withKeyName("wrappingKey")
+ .withKeyVersion("")
+ .withKeyVaultUri("https://myvault8569.vault.azure.net"))
+ .withEncryptionIdentity(
+ new EncryptionIdentity()
+ .withEncryptionUserAssignedIdentity(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}")))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### StorageAccounts_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts Delete. */
+public final class StorageAccountsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountDelete.json
+ */
+ /**
+ * Sample code: StorageAccountDelete.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountDelete(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().deleteWithResponse("res4228", "sto2434", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_Failover
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts Failover. */
+public final class StorageAccountsFailoverSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountFailover.json
+ */
+ /**
+ * Sample code: StorageAccountFailover.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountFailover(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().failover("res4228", "sto2434", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts GetByResourceGroup. */
+public final class StorageAccountsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetProperties.json
+ */
+ /**
+ * Sample code: StorageAccountGetProperties.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetProperties(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json
+ */
+ /**
+ * Sample code: StorageAccountGetPropertiesCMKVersionExpirationTime.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetPropertiesCMKVersionExpirationTime(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetAsyncSkuConversionStatus.json
+ */
+ /**
+ * Sample code: StorageAccountGetAsyncSkuConversionStatus.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetAsyncSkuConversionStatus(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountGetPropertiesCMKEnabled.json
+ */
+ /**
+ * Sample code: StorageAccountGetPropertiesCMKEnabled.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountGetPropertiesCMKEnabled(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_HierarchicalNamespaceMigration
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts HierarchicalNamespaceMigration. */
+public final class StorageAccountsHierarchicalNamespaceMigrationSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountHierarchicalNamespaceMigration.json
+ */
+ /**
+ * Sample code: StorageAccountHierarchicalNamespaceMigration.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountHierarchicalNamespaceMigration(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .hierarchicalNamespaceMigration("res4228", "sto2434", "HnsOnValidationRequest", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts List. */
+public final class StorageAccountsListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountList.json
+ */
+ /**
+ * Sample code: StorageAccountList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().list(Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_ListAccountSas
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.AccountSasParameters;
+import com.azure.resourcemanager.storage.generated.models.HttpProtocol;
+import com.azure.resourcemanager.storage.generated.models.Permissions;
+import com.azure.resourcemanager.storage.generated.models.Services;
+import com.azure.resourcemanager.storage.generated.models.SignedResourceTypes;
+import java.time.OffsetDateTime;
+
+/** Samples for StorageAccounts ListAccountSas. */
+public final class StorageAccountsListAccountSasSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListAccountSAS.json
+ */
+ /**
+ * Sample code: StorageAccountListAccountSAS.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListAccountSAS(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .listAccountSasWithResponse(
+ "res7985",
+ "sto8588",
+ new AccountSasParameters()
+ .withServices(Services.B)
+ .withResourceTypes(SignedResourceTypes.S)
+ .withPermissions(Permissions.R)
+ .withProtocols(HttpProtocol.HTTPS_HTTP)
+ .withSharedAccessStartTime(OffsetDateTime.parse("2017-05-24T10:42:03.1567373Z"))
+ .withSharedAccessExpiryTime(OffsetDateTime.parse("2017-05-24T11:42:03.1567373Z"))
+ .withKeyToSign("key1"),
+ Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts ListByResourceGroup. */
+public final class StorageAccountsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListByResourceGroup.json
+ */
+ /**
+ * Sample code: StorageAccountListByResourceGroup.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListByResourceGroup(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().listByResourceGroup("res6117", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_ListKeys
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts ListKeys. */
+public final class StorageAccountsListKeysSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListKeys.json
+ */
+ /**
+ * Sample code: StorageAccountListKeys.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListKeys(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().listKeysWithResponse("res418", "sto2220", null, Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_ListServiceSas
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.Permissions;
+import com.azure.resourcemanager.storage.generated.models.ServiceSasParameters;
+import com.azure.resourcemanager.storage.generated.models.SignedResource;
+import java.time.OffsetDateTime;
+
+/** Samples for StorageAccounts ListServiceSas. */
+public final class StorageAccountsListServiceSasSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListServiceSAS.json
+ */
+ /**
+ * Sample code: StorageAccountListServiceSAS.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountListServiceSAS(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .listServiceSasWithResponse(
+ "res7439",
+ "sto1299",
+ new ServiceSasParameters()
+ .withCanonicalizedResource("/blob/sto1299/music")
+ .withResource(SignedResource.C)
+ .withPermissions(Permissions.L)
+ .withSharedAccessExpiryTime(OffsetDateTime.parse("2017-05-24T11:32:48.8457197Z")),
+ Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_RegenerateKey
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountRegenerateKeyParameters;
+
+/** Samples for StorageAccounts RegenerateKey. */
+public final class StorageAccountsRegenerateKeySamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountRegenerateKey.json
+ */
+ /**
+ * Sample code: StorageAccountRegenerateKey.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountRegenerateKey(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .regenerateKeyWithResponse(
+ "res4167", "sto3539", new StorageAccountRegenerateKeyParameters().withKeyName("key2"), Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountRegenerateKerbKey.json
+ */
+ /**
+ * Sample code: StorageAccountRegenerateKerbKey.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountRegenerateKerbKey(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .regenerateKeyWithResponse(
+ "res4167", "sto3539", new StorageAccountRegenerateKeyParameters().withKeyName("kerb1"), Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_RestoreBlobRanges
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.BlobRestoreParameters;
+import com.azure.resourcemanager.storage.generated.models.BlobRestoreRange;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+
+/** Samples for StorageAccounts RestoreBlobRanges. */
+public final class StorageAccountsRestoreBlobRangesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/BlobRangesRestore.json
+ */
+ /**
+ * Sample code: BlobRangesRestore.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void blobRangesRestore(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .storageAccounts()
+ .restoreBlobRanges(
+ "res9101",
+ "sto4445",
+ new BlobRestoreParameters()
+ .withTimeToRestore(OffsetDateTime.parse("2019-04-20T15:30:00.0000000Z"))
+ .withBlobRanges(
+ Arrays
+ .asList(
+ new BlobRestoreRange()
+ .withStartRange("container/blobpath1")
+ .withEndRange("container/blobpath2"),
+ new BlobRestoreRange().withStartRange("container2/blobpath3").withEndRange(""))),
+ Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_RevokeUserDelegationKeys
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for StorageAccounts RevokeUserDelegationKeys. */
+public final class StorageAccountsRevokeUserDelegationKeysSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountRevokeUserDelegationKeys.json
+ */
+ /**
+ * Sample code: StorageAccountRevokeUserDelegationKeys.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountRevokeUserDelegationKeys(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.storageAccounts().revokeUserDelegationKeysWithResponse("res4167", "sto3539", Context.NONE);
+ }
+}
+```
+
+### StorageAccounts_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.AccountImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.AccountImmutabilityPolicyState;
+import com.azure.resourcemanager.storage.generated.models.ActiveDirectoryProperties;
+import com.azure.resourcemanager.storage.generated.models.ActiveDirectoryPropertiesAccountType;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.AzureFilesIdentityBasedAuthentication;
+import com.azure.resourcemanager.storage.generated.models.DefaultAction;
+import com.azure.resourcemanager.storage.generated.models.DirectoryServiceOptions;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.EncryptionIdentity;
+import com.azure.resourcemanager.storage.generated.models.EncryptionService;
+import com.azure.resourcemanager.storage.generated.models.EncryptionServices;
+import com.azure.resourcemanager.storage.generated.models.ExpirationAction;
+import com.azure.resourcemanager.storage.generated.models.Identity;
+import com.azure.resourcemanager.storage.generated.models.IdentityType;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.KeySource;
+import com.azure.resourcemanager.storage.generated.models.KeyType;
+import com.azure.resourcemanager.storage.generated.models.KeyVaultProperties;
+import com.azure.resourcemanager.storage.generated.models.Kind;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.ResourceAccessRule;
+import com.azure.resourcemanager.storage.generated.models.RoutingChoice;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.azure.resourcemanager.storage.generated.models.Sku;
+import com.azure.resourcemanager.storage.generated.models.SkuName;
+import com.azure.resourcemanager.storage.generated.models.StorageAccount;
+import com.azure.resourcemanager.storage.generated.models.UserAssignedIdentity;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for StorageAccounts Update. */
+public final class StorageAccountsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateWithImmutabilityPolicy.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateWithImmutabilityPolicy.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateWithImmutabilityPolicy(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withImmutableStorageWithVersioning(
+ new ImmutableStorageAccount()
+ .withEnabled(true)
+ .withImmutabilityPolicy(
+ new AccountImmutabilityPolicyProperties()
+ .withImmutabilityPeriodSinceCreationInDays(15)
+ .withState(AccountImmutabilityPolicyState.LOCKED)
+ .withAllowProtectedAppendWrites(true)))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res131918", "sto131918", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withSku(new Sku().withName(SkuName.STANDARD_LRS))
+ .withIdentity(
+ new Identity()
+ .withType(IdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}",
+ new UserAssignedIdentity())))
+ .withKind(Kind.STORAGE)
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_KEYVAULT)
+ .withKeyVaultProperties(
+ new KeyVaultProperties()
+ .withKeyName("wrappingKey")
+ .withKeyVersion("")
+ .withKeyVaultUri("https://myvault8569.vault.azure.net"))
+ .withEncryptionIdentity(
+ new EncryptionIdentity()
+ .withEncryptionUserAssignedIdentity(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}")
+ .withEncryptionFederatedIdentityClientId("3109d1c4-a5de-4d84-8832-feabb916a4b6")))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountEnableAD.json
+ */
+ /**
+ * Sample code: StorageAccountEnableAD.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountEnableAD(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withAzureFilesIdentityBasedAuthentication(
+ new AzureFilesIdentityBasedAuthentication()
+ .withDirectoryServiceOptions(DirectoryServiceOptions.AD)
+ .withActiveDirectoryProperties(
+ new ActiveDirectoryProperties()
+ .withDomainName("adtest.com")
+ .withNetBiosDomainName("adtest.com")
+ .withForestName("adtest.com")
+ .withDomainGuid("aebfc118-9fa9-4732-a21f-d98e41a77ae1")
+ .withDomainSid("S-1-5-21-2400535526-2334094090-2402026252")
+ .withAzureStorageSid("S-1-5-21-2400535526-2334094090-2402026252-0012")
+ .withSamAccountName("sam12498")
+ .withAccountType(ActiveDirectoryPropertiesAccountType.USER)))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateAllowedCopyScopeToAAD.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateAllowedCopyScopeToAAD.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateAllowedCopyScopeToAAD(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withNetworkRuleSet(
+ new NetworkRuleSet()
+ .withResourceAccessRules(
+ Arrays
+ .asList(
+ new ResourceAccessRule()
+ .withTenantId("72f988bf-86f1-41af-91ab-2d7cd011db47")
+ .withResourceId(
+ "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace")))
+ .withDefaultAction(DefaultAction.ALLOW))
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withAllowedCopyScope(AllowedCopyScope.AAD)
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateDisablePublicNetworkAccess.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateDisablePublicNetworkAccess.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateDisablePublicNetworkAccess(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withNetworkRuleSet(
+ new NetworkRuleSet()
+ .withResourceAccessRules(
+ Arrays
+ .asList(
+ new ResourceAccessRule()
+ .withTenantId("72f988bf-86f1-41af-91ab-2d7cd011db47")
+ .withResourceId(
+ "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace")))
+ .withDefaultAction(DefaultAction.ALLOW))
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withPublicNetworkAccess(PublicNetworkAccess.DISABLED)
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountEnableCMK.json
+ */
+ /**
+ * Sample code: StorageAccountEnableCMK.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountEnableCMK(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_KEYVAULT)
+ .withKeyVaultProperties(
+ new KeyVaultProperties()
+ .withKeyName("wrappingKey")
+ .withKeyVersion("")
+ .withKeyVaultUri("https://myvault8569.vault.azure.net")))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdate.json
+ */
+ /**
+ * Sample code: StorageAccountUpdate.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdate(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9407", "sto8596", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_STORAGE))
+ .withSasPolicy(
+ new SasPolicy().withSasExpirationPeriod("1.15:59:59").withExpirationAction(ExpirationAction.LOG))
+ .withKeyPolicy(new KeyPolicy().withKeyExpirationPeriodInDays(20))
+ .withIsSftpEnabled(true)
+ .withIsLocalUserEnabled(true)
+ .withNetworkRuleSet(
+ new NetworkRuleSet()
+ .withResourceAccessRules(
+ Arrays
+ .asList(
+ new ResourceAccessRule()
+ .withTenantId("72f988bf-86f1-41af-91ab-2d7cd011db47")
+ .withResourceId(
+ "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace")))
+ .withDefaultAction(DefaultAction.ALLOW))
+ .withRoutingPreference(
+ new RoutingPreference()
+ .withRoutingChoice(RoutingChoice.MICROSOFT_ROUTING)
+ .withPublishMicrosoftEndpoints(true)
+ .withPublishInternetEndpoints(true))
+ .withAllowBlobPublicAccess(false)
+ .withMinimumTlsVersion(MinimumTlsVersion.TLS1_2)
+ .withAllowSharedKeyAccess(true)
+ .withDefaultToOAuthAuthentication(false)
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json
+ */
+ /**
+ * Sample code: StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void storageAccountUpdateUserAssignedEncryptionIdentityWithCMK(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ StorageAccount resource =
+ manager
+ .storageAccounts()
+ .getByResourceGroupWithResponse("res9101", "sto4445", null, Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withSku(new Sku().withName(SkuName.STANDARD_LRS))
+ .withIdentity(
+ new Identity()
+ .withType(IdentityType.USER_ASSIGNED)
+ .withUserAssignedIdentities(
+ mapOf(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}",
+ new UserAssignedIdentity())))
+ .withKind(Kind.STORAGE)
+ .withEncryption(
+ new Encryption()
+ .withServices(
+ new EncryptionServices()
+ .withBlob(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT))
+ .withFile(new EncryptionService().withEnabled(true).withKeyType(KeyType.ACCOUNT)))
+ .withKeySource(KeySource.MICROSOFT_KEYVAULT)
+ .withKeyVaultProperties(
+ new KeyVaultProperties()
+ .withKeyName("wrappingKey")
+ .withKeyVersion("")
+ .withKeyVaultUri("https://myvault8569.vault.azure.net"))
+ .withEncryptionIdentity(
+ new EncryptionIdentity()
+ .withEncryptionUserAssignedIdentity(
+ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}")))
+ .apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Table_Create
+
+```java
+import com.azure.resourcemanager.storage.generated.models.TableAccessPolicy;
+import com.azure.resourcemanager.storage.generated.models.TableSignedIdentifier;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+
+/** Samples for Table Create. */
+public final class TableCreateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationPut.json
+ */
+ /**
+ * Sample code: TableOperationPut.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationPut(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tables().define("table6185").withExistingStorageAccount("res3376", "sto328").create();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationPutOrPatchAcls.json
+ */
+ /**
+ * Sample code: TableOperationPutOrPatchAcls.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationPutOrPatchAcls(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .tables()
+ .define("table6185")
+ .withExistingStorageAccount("res3376", "sto328")
+ .withSignedIdentifiers(
+ Arrays
+ .asList(
+ new TableSignedIdentifier()
+ .withId("MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI")
+ .withAccessPolicy(
+ new TableAccessPolicy()
+ .withStartTime(OffsetDateTime.parse("2022-03-17T08:49:37.0000000Z"))
+ .withExpiryTime(OffsetDateTime.parse("2022-03-20T08:49:37.0000000Z"))
+ .withPermission("raud")),
+ new TableSignedIdentifier()
+ .withId("PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI")
+ .withAccessPolicy(
+ new TableAccessPolicy()
+ .withStartTime(OffsetDateTime.parse("2022-03-17T08:49:37.0000000Z"))
+ .withExpiryTime(OffsetDateTime.parse("2022-03-20T08:49:37.0000000Z"))
+ .withPermission("rad"))))
+ .create();
+ }
+}
+```
+
+### Table_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Table Delete. */
+public final class TableDeleteSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationDelete.json
+ */
+ /**
+ * Sample code: TableOperationDelete.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationDelete(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tables().deleteWithResponse("res3376", "sto328", "table6185", Context.NONE);
+ }
+}
+```
+
+### Table_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Table Get. */
+public final class TableGetSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationGet.json
+ */
+ /**
+ * Sample code: TableOperationGet.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationGet(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tables().getWithResponse("res3376", "sto328", "table6185", Context.NONE);
+ }
+}
+```
+
+### Table_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Table List. */
+public final class TableListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationList.json
+ */
+ /**
+ * Sample code: TableOperationList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tables().list("res9290", "sto328", Context.NONE);
+ }
+}
+```
+
+### Table_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.models.Table;
+import com.azure.resourcemanager.storage.generated.models.TableAccessPolicy;
+import com.azure.resourcemanager.storage.generated.models.TableSignedIdentifier;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+
+/** Samples for Table Update. */
+public final class TableUpdateSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationPutOrPatchAcls.json
+ */
+ /**
+ * Sample code: TableOperationPutOrPatchAcls.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationPutOrPatchAcls(
+ com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ Table resource = manager.tables().getWithResponse("res3376", "sto328", "table6185", Context.NONE).getValue();
+ resource
+ .update()
+ .withSignedIdentifiers(
+ Arrays
+ .asList(
+ new TableSignedIdentifier()
+ .withId("MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI")
+ .withAccessPolicy(
+ new TableAccessPolicy()
+ .withStartTime(OffsetDateTime.parse("2022-03-17T08:49:37.0000000Z"))
+ .withExpiryTime(OffsetDateTime.parse("2022-03-20T08:49:37.0000000Z"))
+ .withPermission("raud")),
+ new TableSignedIdentifier()
+ .withId("PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI")
+ .withAccessPolicy(
+ new TableAccessPolicy()
+ .withStartTime(OffsetDateTime.parse("2022-03-17T08:49:37.0000000Z"))
+ .withExpiryTime(OffsetDateTime.parse("2022-03-20T08:49:37.0000000Z"))
+ .withPermission("rad"))))
+ .apply();
+ }
+
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableOperationPatch.json
+ */
+ /**
+ * Sample code: TableOperationPatch.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableOperationPatch(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ Table resource = manager.tables().getWithResponse("res3376", "sto328", "table6185", Context.NONE).getValue();
+ resource.update().apply();
+ }
+}
+```
+
+### TableServices_GetServiceProperties
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TableServices GetServiceProperties. */
+public final class TableServicesGetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableServicesGet.json
+ */
+ /**
+ * Sample code: TableServicesGet.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableServicesGet(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tableServices().getServicePropertiesWithResponse("res4410", "sto8607", Context.NONE);
+ }
+}
+```
+
+### TableServices_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TableServices List. */
+public final class TableServicesListSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableServicesList.json
+ */
+ /**
+ * Sample code: TableServicesList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableServicesList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.tableServices().listWithResponse("res9290", "sto1590", Context.NONE);
+ }
+}
+```
+
+### TableServices_SetServiceProperties
+
+```java
+import com.azure.resourcemanager.storage.generated.models.CorsRule;
+import com.azure.resourcemanager.storage.generated.models.CorsRuleAllowedMethodsItem;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import java.util.Arrays;
+
+/** Samples for TableServices SetServiceProperties. */
+public final class TableServicesSetServicePropertiesSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/TableServicesPut.json
+ */
+ /**
+ * Sample code: TableServicesPut.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void tableServicesPut(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager
+ .tableServices()
+ .define()
+ .withExistingStorageAccount("res4410", "sto8607")
+ .withCors(
+ new CorsRules()
+ .withCorsRules(
+ Arrays
+ .asList(
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.contoso.com", "http://www.fabrikam.com"))
+ .withAllowedMethods(
+ Arrays
+ .asList(
+ CorsRuleAllowedMethodsItem.GET,
+ CorsRuleAllowedMethodsItem.HEAD,
+ CorsRuleAllowedMethodsItem.POST,
+ CorsRuleAllowedMethodsItem.OPTIONS,
+ CorsRuleAllowedMethodsItem.MERGE,
+ CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(100)
+ .withExposedHeaders(Arrays.asList("x-ms-meta-*"))
+ .withAllowedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*")),
+ new CorsRule()
+ .withAllowedOrigins(Arrays.asList("*"))
+ .withAllowedMethods(Arrays.asList(CorsRuleAllowedMethodsItem.GET))
+ .withMaxAgeInSeconds(2)
+ .withExposedHeaders(Arrays.asList("*"))
+ .withAllowedHeaders(Arrays.asList("*")),
+ new CorsRule()
+ .withAllowedOrigins(
+ Arrays.asList("http://www.abc23.com", "https://www.fabrikam.com/*"))
+ .withAllowedMethods(
+ Arrays.asList(CorsRuleAllowedMethodsItem.GET, CorsRuleAllowedMethodsItem.PUT))
+ .withMaxAgeInSeconds(2000)
+ .withExposedHeaders(
+ Arrays.asList("x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*"))
+ .withAllowedHeaders(Arrays.asList("x-ms-meta-12345675754564*")))))
+ .create();
+ }
+}
+```
+
+### Usages_ListByLocation
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Usages ListByLocation. */
+public final class UsagesListByLocationSamples {
+ /*
+ * x-ms-original-file: specification/storage/resource-manager/Microsoft.Storage/stable/2021-09-01/examples/StorageAccountListLocationUsage.json
+ */
+ /**
+ * Sample code: UsageList.
+ *
+ * @param manager Entry point to StorageManager.
+ */
+ public static void usageList(com.azure.resourcemanager.storage.generated.StorageManager manager) {
+ manager.usages().listByLocation("eastus2(stage)", Context.NONE);
+ }
+}
+```
+
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/pom.xml b/sdk/storage/azure-resourcemanager-storage-generated/pom.xml
new file mode 100644
index 000000000000..e49e55b18138
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/pom.xml
@@ -0,0 +1,55 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-storage-generated
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for Storage Management
+ This package contains Microsoft Azure SDK for Storage Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The Azure Storage Management API. Package tag package-2021-09.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+ true
+
+
+
+ com.azure
+ azure-core
+ 1.26.0
+
+
+ com.azure
+ azure-core-management
+ 1.5.3
+
+
+
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/StorageManager.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/StorageManager.java
new file mode 100644
index 000000000000..f00ca047a553
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/StorageManager.java
@@ -0,0 +1,475 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.HttpPipelinePosition;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.fluent.StorageManagementClient;
+import com.azure.resourcemanager.storage.generated.implementation.BlobContainersImpl;
+import com.azure.resourcemanager.storage.generated.implementation.BlobInventoryPoliciesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.BlobServicesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.DeletedAccountsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.EncryptionScopesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.FileServicesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.FileSharesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.LocalUsersOperationsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.ManagementPoliciesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.ObjectReplicationPoliciesOperationsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.OperationsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.PrivateEndpointConnectionsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.PrivateLinkResourcesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.QueueServicesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.QueuesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.SkusImpl;
+import com.azure.resourcemanager.storage.generated.implementation.StorageAccountsImpl;
+import com.azure.resourcemanager.storage.generated.implementation.StorageManagementClientBuilder;
+import com.azure.resourcemanager.storage.generated.implementation.TableServicesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.TablesImpl;
+import com.azure.resourcemanager.storage.generated.implementation.UsagesImpl;
+import com.azure.resourcemanager.storage.generated.models.BlobContainers;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicies;
+import com.azure.resourcemanager.storage.generated.models.BlobServices;
+import com.azure.resourcemanager.storage.generated.models.DeletedAccounts;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopes;
+import com.azure.resourcemanager.storage.generated.models.FileServices;
+import com.azure.resourcemanager.storage.generated.models.FileShares;
+import com.azure.resourcemanager.storage.generated.models.LocalUsersOperations;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicies;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPoliciesOperations;
+import com.azure.resourcemanager.storage.generated.models.Operations;
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpointConnections;
+import com.azure.resourcemanager.storage.generated.models.PrivateLinkResources;
+import com.azure.resourcemanager.storage.generated.models.QueueServices;
+import com.azure.resourcemanager.storage.generated.models.Queues;
+import com.azure.resourcemanager.storage.generated.models.Skus;
+import com.azure.resourcemanager.storage.generated.models.StorageAccounts;
+import com.azure.resourcemanager.storage.generated.models.TableServices;
+import com.azure.resourcemanager.storage.generated.models.Tables;
+import com.azure.resourcemanager.storage.generated.models.Usages;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/** Entry point to StorageManager. The Azure Storage Management API. */
+public final class StorageManager {
+ private Operations operations;
+
+ private Skus skus;
+
+ private StorageAccounts storageAccounts;
+
+ private DeletedAccounts deletedAccounts;
+
+ private Usages usages;
+
+ private ManagementPolicies managementPolicies;
+
+ private BlobInventoryPolicies blobInventoryPolicies;
+
+ private PrivateEndpointConnections privateEndpointConnections;
+
+ private PrivateLinkResources privateLinkResources;
+
+ private ObjectReplicationPoliciesOperations objectReplicationPoliciesOperations;
+
+ private LocalUsersOperations localUsersOperations;
+
+ private EncryptionScopes encryptionScopes;
+
+ private BlobServices blobServices;
+
+ private BlobContainers blobContainers;
+
+ private FileServices fileServices;
+
+ private FileShares fileShares;
+
+ private QueueServices queueServices;
+
+ private Queues queues;
+
+ private TableServices tableServices;
+
+ private Tables tables;
+
+ private final StorageManagementClient clientObject;
+
+ private StorageManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new StorageManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of Storage service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Storage service API instance.
+ */
+ public static StorageManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create StorageManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new StorageManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private static final ClientLogger LOGGER = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval =
+ Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of Storage service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Storage service API instance.
+ */
+ public StorageManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.storage.generated")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new StorageManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of Skus. */
+ public Skus skus() {
+ if (this.skus == null) {
+ this.skus = new SkusImpl(clientObject.getSkus(), this);
+ }
+ return skus;
+ }
+
+ /** @return Resource collection API of StorageAccounts. */
+ public StorageAccounts storageAccounts() {
+ if (this.storageAccounts == null) {
+ this.storageAccounts = new StorageAccountsImpl(clientObject.getStorageAccounts(), this);
+ }
+ return storageAccounts;
+ }
+
+ /** @return Resource collection API of DeletedAccounts. */
+ public DeletedAccounts deletedAccounts() {
+ if (this.deletedAccounts == null) {
+ this.deletedAccounts = new DeletedAccountsImpl(clientObject.getDeletedAccounts(), this);
+ }
+ return deletedAccounts;
+ }
+
+ /** @return Resource collection API of Usages. */
+ public Usages usages() {
+ if (this.usages == null) {
+ this.usages = new UsagesImpl(clientObject.getUsages(), this);
+ }
+ return usages;
+ }
+
+ /** @return Resource collection API of ManagementPolicies. */
+ public ManagementPolicies managementPolicies() {
+ if (this.managementPolicies == null) {
+ this.managementPolicies = new ManagementPoliciesImpl(clientObject.getManagementPolicies(), this);
+ }
+ return managementPolicies;
+ }
+
+ /** @return Resource collection API of BlobInventoryPolicies. */
+ public BlobInventoryPolicies blobInventoryPolicies() {
+ if (this.blobInventoryPolicies == null) {
+ this.blobInventoryPolicies = new BlobInventoryPoliciesImpl(clientObject.getBlobInventoryPolicies(), this);
+ }
+ return blobInventoryPolicies;
+ }
+
+ /** @return Resource collection API of PrivateEndpointConnections. */
+ public PrivateEndpointConnections privateEndpointConnections() {
+ if (this.privateEndpointConnections == null) {
+ this.privateEndpointConnections =
+ new PrivateEndpointConnectionsImpl(clientObject.getPrivateEndpointConnections(), this);
+ }
+ return privateEndpointConnections;
+ }
+
+ /** @return Resource collection API of PrivateLinkResources. */
+ public PrivateLinkResources privateLinkResources() {
+ if (this.privateLinkResources == null) {
+ this.privateLinkResources = new PrivateLinkResourcesImpl(clientObject.getPrivateLinkResources(), this);
+ }
+ return privateLinkResources;
+ }
+
+ /** @return Resource collection API of ObjectReplicationPoliciesOperations. */
+ public ObjectReplicationPoliciesOperations objectReplicationPoliciesOperations() {
+ if (this.objectReplicationPoliciesOperations == null) {
+ this.objectReplicationPoliciesOperations =
+ new ObjectReplicationPoliciesOperationsImpl(
+ clientObject.getObjectReplicationPoliciesOperations(), this);
+ }
+ return objectReplicationPoliciesOperations;
+ }
+
+ /** @return Resource collection API of LocalUsersOperations. */
+ public LocalUsersOperations localUsersOperations() {
+ if (this.localUsersOperations == null) {
+ this.localUsersOperations = new LocalUsersOperationsImpl(clientObject.getLocalUsersOperations(), this);
+ }
+ return localUsersOperations;
+ }
+
+ /** @return Resource collection API of EncryptionScopes. */
+ public EncryptionScopes encryptionScopes() {
+ if (this.encryptionScopes == null) {
+ this.encryptionScopes = new EncryptionScopesImpl(clientObject.getEncryptionScopes(), this);
+ }
+ return encryptionScopes;
+ }
+
+ /** @return Resource collection API of BlobServices. */
+ public BlobServices blobServices() {
+ if (this.blobServices == null) {
+ this.blobServices = new BlobServicesImpl(clientObject.getBlobServices(), this);
+ }
+ return blobServices;
+ }
+
+ /** @return Resource collection API of BlobContainers. */
+ public BlobContainers blobContainers() {
+ if (this.blobContainers == null) {
+ this.blobContainers = new BlobContainersImpl(clientObject.getBlobContainers(), this);
+ }
+ return blobContainers;
+ }
+
+ /** @return Resource collection API of FileServices. */
+ public FileServices fileServices() {
+ if (this.fileServices == null) {
+ this.fileServices = new FileServicesImpl(clientObject.getFileServices(), this);
+ }
+ return fileServices;
+ }
+
+ /** @return Resource collection API of FileShares. */
+ public FileShares fileShares() {
+ if (this.fileShares == null) {
+ this.fileShares = new FileSharesImpl(clientObject.getFileShares(), this);
+ }
+ return fileShares;
+ }
+
+ /** @return Resource collection API of QueueServices. */
+ public QueueServices queueServices() {
+ if (this.queueServices == null) {
+ this.queueServices = new QueueServicesImpl(clientObject.getQueueServices(), this);
+ }
+ return queueServices;
+ }
+
+ /** @return Resource collection API of Queues. */
+ public Queues queues() {
+ if (this.queues == null) {
+ this.queues = new QueuesImpl(clientObject.getQueues(), this);
+ }
+ return queues;
+ }
+
+ /** @return Resource collection API of TableServices. */
+ public TableServices tableServices() {
+ if (this.tableServices == null) {
+ this.tableServices = new TableServicesImpl(clientObject.getTableServices(), this);
+ }
+ return tableServices;
+ }
+
+ /** @return Resource collection API of Tables. */
+ public Tables tables() {
+ if (this.tables == null) {
+ this.tables = new TablesImpl(clientObject.getTables(), this);
+ }
+ return tables;
+ }
+
+ /**
+ * @return Wrapped service client StorageManagementClient providing direct access to the underlying auto-generated
+ * API implementation, based on Azure REST API.
+ */
+ public StorageManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobContainersClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobContainersClient.java
new file mode 100644
index 000000000000..4aca40c9f003
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobContainersClient.java
@@ -0,0 +1,694 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobContainerInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ImmutabilityPolicyInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LeaseContainerResponseInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LegalHoldInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListContainerItemInner;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersCreateOrUpdateImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersDeleteImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersExtendImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersGetImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersLockImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerRequest;
+import com.azure.resourcemanager.storage.generated.models.ListContainersInclude;
+
+/** An instance of this class provides access to all the operations defined in BlobContainersClient. */
+public interface BlobContainersClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include,
+ Context context);
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainerInner create(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer);
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context);
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainerInner update(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer);
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainerInner get(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String containerName, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String accountName, String containerName, Context context);
+
+ /**
+ * 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 legalHold The LegalHold property that will be set to a blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the LegalHold property of a blob container.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LegalHoldInner setLegalHold(
+ String resourceGroupName, String accountName, String containerName, LegalHoldInner legalHold);
+
+ /**
+ * 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 legalHold The LegalHold property that will be set to a blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the LegalHold property of a blob container along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response setLegalHoldWithResponse(
+ String resourceGroupName, String accountName, String containerName, LegalHoldInner legalHold, Context context);
+
+ /**
+ * 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 legalHold The LegalHold property that will be clear from a blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the LegalHold property of a blob container.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LegalHoldInner clearLegalHold(
+ String resourceGroupName, String accountName, String containerName, LegalHoldInner legalHold);
+
+ /**
+ * 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 legalHold The LegalHold property that will be clear from a blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the LegalHold property of a blob container along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response clearLegalHoldWithResponse(
+ String resourceGroupName, String accountName, String containerName, LegalHoldInner legalHold, Context context);
+
+ /**
+ * Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImmutabilityPolicyInner createOrUpdateImmutabilityPolicy(
+ String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not 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.
+ * @param parameters The ImmutabilityPolicy Properties that will be created or updated to a blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainersCreateOrUpdateImmutabilityPolicyResponse createOrUpdateImmutabilityPolicyWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ String ifMatch,
+ ImmutabilityPolicyInner parameters,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the existing immutability policy along with the corresponding ETag in response headers and body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImmutabilityPolicyInner getImmutabilityPolicy(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.
+ * @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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the existing immutability policy along with the corresponding ETag in response headers and body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainersGetImmutabilityPolicyResponse getImmutabilityPolicyWithResponse(
+ String resourceGroupName, String accountName, String containerName, String ifMatch, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImmutabilityPolicyInner deleteImmutabilityPolicy(
+ String resourceGroupName, String accountName, String containerName, String ifMatch);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainersDeleteImmutabilityPolicyResponse deleteImmutabilityPolicyWithResponse(
+ String resourceGroupName, String accountName, String containerName, String ifMatch, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImmutabilityPolicyInner lockImmutabilityPolicy(
+ 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainersLockImmutabilityPolicyResponse lockImmutabilityPolicyWithResponse(
+ String resourceGroupName, String accountName, String containerName, String ifMatch, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImmutabilityPolicyInner extendImmutabilityPolicy(
+ 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.
+ * @param parameters The ImmutabilityPolicy Properties that will be extended for a blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobContainersExtendImmutabilityPolicyResponse extendImmutabilityPolicyWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ String ifMatch,
+ ImmutabilityPolicyInner parameters,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lease Container response schema.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LeaseContainerResponseInner lease(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * 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.
+ * @param parameters Lease Container request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lease Container response schema along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response leaseWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ LeaseContainerRequest parameters,
+ Context context);
+
+ /**
+ * This operation migrates a blob container from container level WORM to object level immutability enabled
+ * container. Prerequisites require a container level immutability policy either in locked or unlocked state,
+ * Account level versioning must be enabled and there should be no Legal hold on the 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginObjectLevelWorm(
+ String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * This operation migrates a blob container from container level WORM to object level immutability enabled
+ * container. Prerequisites require a container level immutability policy either in locked or unlocked state,
+ * Account level versioning must be enabled and there should be no Legal hold on the 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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginObjectLevelWorm(
+ String resourceGroupName, String accountName, String containerName, Context context);
+
+ /**
+ * This operation migrates a blob container from container level WORM to object level immutability enabled
+ * container. Prerequisites require a container level immutability policy either in locked or unlocked state,
+ * Account level versioning must be enabled and there should be no Legal hold on the 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void objectLevelWorm(String resourceGroupName, String accountName, String containerName);
+
+ /**
+ * This operation migrates a blob container from container level WORM to object level immutability enabled
+ * container. Prerequisites require a container level immutability policy either in locked or unlocked state,
+ * Account level versioning must be enabled and there should be no Legal hold on the 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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void objectLevelWorm(String resourceGroupName, String accountName, String containerName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobInventoryPoliciesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobInventoryPoliciesClient.java
new file mode 100644
index 000000000000..bad4d13151ed
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobInventoryPoliciesClient.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobInventoryPolicyInner;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicyName;
+
+/** An instance of this class provides access to all the operations defined in BlobInventoryPoliciesClient. */
+public interface BlobInventoryPoliciesClient {
+ /**
+ * Gets the blob inventory 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the blob inventory policy associated with the specified storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobInventoryPolicyInner get(
+ String resourceGroupName, String accountName, BlobInventoryPolicyName blobInventoryPolicyName);
+
+ /**
+ * Gets the blob inventory 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the blob inventory policy associated with the specified storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, BlobInventoryPolicyName blobInventoryPolicyName, Context context);
+
+ /**
+ * Sets the blob inventory policy to 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @param properties The blob inventory policy set to a storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account blob inventory policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobInventoryPolicyInner createOrUpdate(
+ String resourceGroupName,
+ String accountName,
+ BlobInventoryPolicyName blobInventoryPolicyName,
+ BlobInventoryPolicyInner properties);
+
+ /**
+ * Sets the blob inventory policy to 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @param properties The blob inventory policy set to a storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account blob inventory policy along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ BlobInventoryPolicyName blobInventoryPolicyName,
+ BlobInventoryPolicyInner properties,
+ Context context);
+
+ /**
+ * Deletes the blob inventory 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, BlobInventoryPolicyName blobInventoryPolicyName);
+
+ /**
+ * Deletes the blob inventory 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 blobInventoryPolicyName The name of the storage account blob inventory policy. It should always be
+ * 'default'.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String accountName, BlobInventoryPolicyName blobInventoryPolicyName, Context context);
+
+ /**
+ * Gets the blob inventory 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the blob inventory policy associated with the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the blob inventory 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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the blob inventory policy associated with the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobServicesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobServicesClient.java
new file mode 100644
index 000000000000..488b0bd0b901
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/BlobServicesClient.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobServicePropertiesInner;
+
+/** An instance of this class provides access to all the operations defined in BlobServicesClient. */
+public interface BlobServicesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of a storage account’s Blob service, including properties for Storage Analytics
+ * and CORS (Cross-Origin Resource Sharing) rules.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Blob service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobServicePropertiesInner setServiceProperties(
+ String resourceGroupName, String accountName, BlobServicePropertiesInner parameters);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of a storage account’s Blob service, including properties for Storage Analytics
+ * and CORS (Cross-Origin Resource Sharing) rules.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Blob service along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response setServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, BlobServicePropertiesInner parameters, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobServicePropertiesInner getServiceProperties(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/DeletedAccountsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/DeletedAccountsClient.java
new file mode 100644
index 000000000000..61b5c447bae3
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/DeletedAccountsClient.java
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.DeletedAccountInner;
+
+/** An instance of this class provides access to all the operations defined in DeletedAccountsClient. */
+public interface DeletedAccountsClient {
+ /**
+ * Lists deleted accounts under the subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Deleted Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists deleted accounts under the subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Deleted Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of specified deleted account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DeletedAccountInner get(String deletedAccountName, String location);
+
+ /**
+ * Get properties of specified deleted account resource.
+ *
+ * @param deletedAccountName Name of the deleted storage account.
+ * @param location The location of the deleted storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of specified deleted account resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String deletedAccountName, String location, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/EncryptionScopesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/EncryptionScopesClient.java
new file mode 100644
index 000000000000..9858968743f6
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/EncryptionScopesClient.java
@@ -0,0 +1,182 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.EncryptionScopeInner;
+
+/** An instance of this class provides access to all the operations defined in EncryptionScopesClient. */
+public interface EncryptionScopesClient {
+ /**
+ * Synchronously creates or updates an encryption scope under the specified storage account. If an encryption scope
+ * is already created and a subsequent request is issued with different properties, the encryption scope properties
+ * will be updated per the specified 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 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.
+ * @param encryptionScope Encryption scope properties to be used for the create or update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EncryptionScopeInner put(
+ String resourceGroupName, String accountName, String encryptionScopeName, EncryptionScopeInner encryptionScope);
+
+ /**
+ * Synchronously creates or updates an encryption scope under the specified storage account. If an encryption scope
+ * is already created and a subsequent request is issued with different properties, the encryption scope properties
+ * will be updated per the specified 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 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.
+ * @param encryptionScope Encryption scope properties to be used for the create or update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response putWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String encryptionScopeName,
+ EncryptionScopeInner encryptionScope,
+ Context context);
+
+ /**
+ * Update encryption scope properties as specified in the request body. Update fails if the specified encryption
+ * scope does not already exist.
+ *
+ * @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.
+ * @param encryptionScope Encryption scope properties to be used for the update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EncryptionScopeInner patch(
+ String resourceGroupName, String accountName, String encryptionScopeName, EncryptionScopeInner encryptionScope);
+
+ /**
+ * Update encryption scope properties as specified in the request body. Update fails if the specified encryption
+ * scope does not already exist.
+ *
+ * @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.
+ * @param encryptionScope Encryption scope properties to be used for the update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response patchWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String encryptionScopeName,
+ EncryptionScopeInner encryptionScope,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EncryptionScopeInner get(String resourceGroupName, String accountName, String encryptionScopeName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Encryption Scope resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String encryptionScopeName, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of encryption scopes requested, and if paging is required, a URL to the next page of encryption
+ * scopes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of encryption scopes requested, and if paging is required, a URL to the next page of encryption
+ * scopes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileServicesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileServicesClient.java
new file mode 100644
index 000000000000..cdecfbcd2eb6
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileServicesClient.java
@@ -0,0 +1,117 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.FileServiceItemsInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.FileServicePropertiesInner;
+
+/** An instance of this class provides access to all the operations defined in FileServicesClient. */
+public interface FileServicesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileServiceItemsInner list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of file services in storage accounts, including CORS (Cross-Origin Resource
+ * Sharing) rules.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of File services in storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileServicePropertiesInner setServiceProperties(
+ String resourceGroupName, String accountName, FileServicePropertiesInner parameters);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of file services in storage accounts, including CORS (Cross-Origin Resource
+ * Sharing) rules.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of File services in storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response setServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, FileServicePropertiesInner parameters, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing)
+ * rules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileServicePropertiesInner getServiceProperties(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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules
+ * along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileSharesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileSharesClient.java
new file mode 100644
index 000000000000..5bbaf29577b2
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/FileSharesClient.java
@@ -0,0 +1,334 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.FileShareInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.FileShareItemInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LeaseShareResponseInner;
+import com.azure.resourcemanager.storage.generated.models.DeletedShare;
+import com.azure.resourcemanager.storage.generated.models.FileSharesLeaseResponse;
+import com.azure.resourcemanager.storage.generated.models.LeaseShareRequest;
+
+/** An instance of this class provides access to all the operations defined in FileSharesClient. */
+public interface FileSharesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of shares that can be included in the list.
+ * @param filter Optional. When specified, only share names starting with the filter will be listed.
+ * @param expand Optional, used to expand the properties within share's properties. Valid values are: deleted,
+ * snapshots. Should be passed as a string with delimiter ','.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ String expand,
+ Context context);
+
+ /**
+ * Creates a new share under the specified account as described by request body. The share resource includes
+ * metadata and properties for that share. It does not include a list of the files contained by the 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.
+ * @param fileShare Properties of the file share to create.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the file share, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileShareInner create(String resourceGroupName, String accountName, String shareName, FileShareInner fileShare);
+
+ /**
+ * Creates a new share under the specified account as described by request body. The share resource includes
+ * metadata and properties for that share. It does not include a list of the files contained by the 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.
+ * @param fileShare Properties of the file share to create.
+ * @param expand Optional, used to expand the properties within share's properties. Valid values are: snapshots.
+ * Should be passed as a string with delimiter ','.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the file share, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String shareName,
+ FileShareInner fileShare,
+ String expand,
+ Context context);
+
+ /**
+ * Updates share properties as specified in request body. Properties not mentioned in the request will not be
+ * changed. Update fails if the specified share does not already exist.
+ *
+ * @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 fileShare Properties to update for the file share.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the file share, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileShareInner update(String resourceGroupName, String accountName, String shareName, FileShareInner fileShare);
+
+ /**
+ * Updates share properties as specified in request body. Properties not mentioned in the request will not be
+ * changed. Update fails if the specified share does not already exist.
+ *
+ * @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 fileShare Properties to update for the file share.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the file share, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String accountName, String shareName, FileShareInner fileShare, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified share.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileShareInner get(String resourceGroupName, String accountName, String shareName);
+
+ /**
+ * 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.
+ * @param expand Optional, used to expand the properties within share's properties. Valid values are: stats. Should
+ * be passed as a string with delimiter ','.
+ * @param xMsSnapshot Optional, used to retrieve properties of a snapshot.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified share along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String shareName,
+ String expand,
+ String xMsSnapshot,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(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.
+ * @param xMsSnapshot Optional, used to delete a snapshot.
+ * @param include Optional. Valid values are: snapshots, leased-snapshots, none. The default value is snapshots. For
+ * 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains
+ * leased-snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its
+ * file share snapshots (leased/unleased). For 'none', the file share is deleted if it has no share snapshots.
+ * If the file share contains any snapshots (leased or unleased), the deletion fails.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String shareName,
+ String xMsSnapshot,
+ String include,
+ Context context);
+
+ /**
+ * 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 deletedShare The deleted share to be restored.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void restore(String resourceGroupName, String accountName, String shareName, DeletedShare deletedShare);
+
+ /**
+ * 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 deletedShare The deleted share to be restored.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response restoreWithResponse(
+ String resourceGroupName, String accountName, String shareName, DeletedShare deletedShare, Context context);
+
+ /**
+ * The Lease Share operation establishes and manages a lock on a share 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 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lease Share response schema.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LeaseShareResponseInner lease(String resourceGroupName, String accountName, String shareName);
+
+ /**
+ * The Lease Share operation establishes and manages a lock on a share 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 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 xMsSnapshot Optional. Specify the snapshot time to lease a snapshot.
+ * @param parameters Lease Share request body.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return lease Share response schema.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileSharesLeaseResponse leaseWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String shareName,
+ String xMsSnapshot,
+ LeaseShareRequest parameters,
+ Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/LocalUsersOperationsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/LocalUsersOperationsClient.java
new file mode 100644
index 000000000000..a71af92163a4
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/LocalUsersOperationsClient.java
@@ -0,0 +1,230 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.LocalUserInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LocalUserKeysInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LocalUserRegeneratePasswordResultInner;
+
+/** An instance of this class provides access to all the operations defined in LocalUsersOperationsClient. */
+public interface LocalUsersOperationsClient {
+ /**
+ * List the local users 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list storage account local users as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * List the local users 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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list storage account local users as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Get the local user of the storage account by username.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the local user of the storage account by username.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LocalUserInner get(String resourceGroupName, String accountName, String username);
+
+ /**
+ * Get the local user of the storage account by username.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the local user of the storage account by username along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String username, Context context);
+
+ /**
+ * Create or update the properties of a local user 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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param properties The local user associated with a storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the local user associated with the storage accounts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LocalUserInner createOrUpdate(
+ String resourceGroupName, String accountName, String username, LocalUserInner properties);
+
+ /**
+ * Create or update the properties of a local user 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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param properties The local user associated with a storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the local user associated with the storage accounts along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String accountName, String username, LocalUserInner properties, Context context);
+
+ /**
+ * Deletes the local user 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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String username);
+
+ /**
+ * Deletes the local user 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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String accountName, String username, Context context);
+
+ /**
+ * List SSH authorized keys and shared key of the local user.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Storage Account Local User keys.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LocalUserKeysInner listKeys(String resourceGroupName, String accountName, String username);
+
+ /**
+ * List SSH authorized keys and shared key of the local user.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Storage Account Local User keys along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listKeysWithResponse(
+ String resourceGroupName, String accountName, String username, Context context);
+
+ /**
+ * Regenerate the local user SSH password.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the secrets of Storage Account Local User.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ LocalUserRegeneratePasswordResultInner regeneratePassword(
+ String resourceGroupName, String accountName, String username);
+
+ /**
+ * Regenerate the local user SSH password.
+ *
+ * @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 username The name of local user. The username must contain lowercase letters and numbers only. It must be
+ * unique only within the storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the secrets of Storage Account Local User along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response regeneratePasswordWithResponse(
+ String resourceGroupName, String accountName, String username, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ManagementPoliciesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ManagementPoliciesClient.java
new file mode 100644
index 000000000000..adb3a5fcfa88
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ManagementPoliciesClient.java
@@ -0,0 +1,126 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ManagementPolicyInner;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicyName;
+
+/** An instance of this class provides access to all the operations defined in ManagementPoliciesClient. */
+public interface ManagementPoliciesClient {
+ /**
+ * 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.
+ * @param managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the managementpolicy associated with the specified storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagementPolicyInner get(String resourceGroupName, String accountName, ManagementPolicyName managementPolicyName);
+
+ /**
+ * 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.
+ * @param managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the managementpolicy associated with the specified storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, ManagementPolicyName managementPolicyName, Context context);
+
+ /**
+ * Sets the managementpolicy to 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 managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @param properties The ManagementPolicy set to a storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Get Storage Account ManagementPolicies operation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ManagementPolicyInner createOrUpdate(
+ String resourceGroupName,
+ String accountName,
+ ManagementPolicyName managementPolicyName,
+ ManagementPolicyInner properties);
+
+ /**
+ * Sets the managementpolicy to 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 managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @param properties The ManagementPolicy set to a storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Get Storage Account ManagementPolicies operation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ ManagementPolicyName managementPolicyName,
+ ManagementPolicyInner properties,
+ Context context);
+
+ /**
+ * 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.
+ * @param managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, ManagementPolicyName managementPolicyName);
+
+ /**
+ * 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.
+ * @param managementPolicyName The name of the Storage Account Management Policy. It should always be 'default'.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String accountName, ManagementPolicyName managementPolicyName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ObjectReplicationPoliciesOperationsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ObjectReplicationPoliciesOperationsClient.java
new file mode 100644
index 000000000000..97d13c2e7b97
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/ObjectReplicationPoliciesOperationsClient.java
@@ -0,0 +1,179 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ObjectReplicationPolicyInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ObjectReplicationPoliciesOperationsClient.
+ */
+public interface ObjectReplicationPoliciesOperationsClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list storage account object replication policies as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list storage account object replication policies as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * 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 For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the object replication policy of the storage account by policy ID.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ObjectReplicationPolicyInner get(String resourceGroupName, String accountName, String objectReplicationPolicyId);
+
+ /**
+ * 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 For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the object replication policy of the storage account by policy ID along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String objectReplicationPolicyId, Context context);
+
+ /**
+ * Create or update the object replication policy of 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 objectReplicationPolicyId For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @param properties The object replication policy set to a storage account. A unique policy ID will be created if
+ * absent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the replication policy between two storage accounts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ObjectReplicationPolicyInner createOrUpdate(
+ String resourceGroupName,
+ String accountName,
+ String objectReplicationPolicyId,
+ ObjectReplicationPolicyInner properties);
+
+ /**
+ * Create or update the object replication policy of 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 objectReplicationPolicyId For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @param properties The object replication policy set to a storage account. A unique policy ID will be created if
+ * absent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the replication policy between two storage accounts along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String objectReplicationPolicyId,
+ ObjectReplicationPolicyInner properties,
+ Context context);
+
+ /**
+ * 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 For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String objectReplicationPolicyId);
+
+ /**
+ * 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 For the destination account, provide the value 'default'. Configure the policy
+ * on the destination account first. For the source account, provide the value of the policy ID that is returned
+ * when you download the policy that was defined on the destination account. The policy is downloaded as a JSON
+ * file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String accountName, String objectReplicationPolicyId, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/OperationsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/OperationsClient.java
new file mode 100644
index 000000000000..c83d9d9bb526
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available Storage Rest API operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list Storage operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available Storage Rest API operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list Storage operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateEndpointConnectionsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateEndpointConnectionsClient.java
new file mode 100644
index 000000000000..00eb3c837ad8
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateEndpointConnectionsClient.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.PrivateEndpointConnectionInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateEndpointConnectionsClient. */
+public interface PrivateEndpointConnectionsClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of private endpoint connection associated with the specified storage account as paginated response
+ * with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of private endpoint connection associated with the specified storage account as paginated response
+ * with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified private endpoint connection associated with the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner get(
+ String resourceGroupName, String accountName, String privateEndpointConnectionName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified private endpoint connection associated with the storage account along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Update the state of 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.
+ * @param properties The private endpoint connection properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Private Endpoint Connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionInner put(
+ String resourceGroupName,
+ String accountName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner properties);
+
+ /**
+ * Update the state of 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.
+ * @param properties The private endpoint connection properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Private Endpoint Connection resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response putWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionInner properties,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String privateEndpointConnectionName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String accountName, String privateEndpointConnectionName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateLinkResourcesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateLinkResourcesClient.java
new file mode 100644
index 000000000000..640bae31005f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/PrivateLinkResourcesClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.PrivateLinkResourceListResultInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateLinkResourcesClient. */
+public interface PrivateLinkResourcesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private link resources that need to be created for a storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateLinkResourceListResultInner listByStorageAccount(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the private link resources that need to be created for a storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listByStorageAccountWithResponse(
+ String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueueServicesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueueServicesClient.java
new file mode 100644
index 000000000000..8a5a428c1541
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueueServicesClient.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListQueueServicesInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.QueueServicePropertiesInner;
+
+/** An instance of this class provides access to all the operations defined in QueueServicesClient. */
+public interface QueueServicesClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ListQueueServicesInner list(String resourceGroupName, String accountName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of a storage account’s Queue service, only properties for Storage Analytics and
+ * CORS (Cross-Origin Resource Sharing) rules can be specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Queue service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ QueueServicePropertiesInner setServiceProperties(
+ String resourceGroupName, String accountName, QueueServicePropertiesInner parameters);
+
+ /**
+ * Sets 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.
+ * @param parameters The properties of a storage account’s Queue service, only properties for Storage Analytics and
+ * CORS (Cross-Origin Resource Sharing) rules can be specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Queue service along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response setServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, QueueServicePropertiesInner parameters, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ QueueServicePropertiesInner getServiceProperties(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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueuesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueuesClient.java
new file mode 100644
index 000000000000..27f9ec503490
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/QueuesClient.java
@@ -0,0 +1,208 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListQueueInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.StorageQueueInner;
+
+/** An instance of this class provides access to all the operations defined in QueuesClient. */
+public interface QueuesClient {
+ /**
+ * Creates a new queue with the specified queue name, under the specified 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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param queue Queue properties and metadata to be created with.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageQueueInner create(String resourceGroupName, String accountName, String queueName, StorageQueueInner queue);
+
+ /**
+ * Creates a new queue with the specified queue name, under the specified 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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param queue Queue properties and metadata to be created with.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName, String accountName, String queueName, StorageQueueInner queue, Context context);
+
+ /**
+ * Creates a new queue with the specified queue name, under the specified 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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param queue Queue properties and metadata to be created with.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageQueueInner update(String resourceGroupName, String accountName, String queueName, StorageQueueInner queue);
+
+ /**
+ * Creates a new queue with the specified queue name, under the specified 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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param queue Queue properties and metadata to be created with.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String accountName, String queueName, StorageQueueInner queue, Context context);
+
+ /**
+ * Gets the queue with the specified queue name, under the specified account if it exists.
+ *
+ * @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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the queue with the specified queue name, under the specified account if it exists.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageQueueInner get(String resourceGroupName, String accountName, String queueName);
+
+ /**
+ * Gets the queue with the specified queue name, under the specified account if it exists.
+ *
+ * @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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the queue with the specified queue name, under the specified account if it exists along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String queueName, Context context);
+
+ /**
+ * Deletes the queue with the specified queue name, under the specified account if it exists.
+ *
+ * @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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String queueName);
+
+ /**
+ * Deletes the queue with the specified queue name, under the specified account if it exists.
+ *
+ * @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 queueName A queue name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an
+ * alphanumeric character and it cannot have two consecutive dash(-) characters.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String accountName, String queueName, Context context);
+
+ /**
+ * Gets a list of all the queues 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all the queues under the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * Gets a list of all the queues 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.
+ * @param maxpagesize Optional, a maximum number of queues that should be included in a list queue response.
+ * @param filter Optional, When specified, only the queues with a name starting with the given filter will be
+ * listed.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all the queues under the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String accountName, String maxpagesize, String filter, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/SkusClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/SkusClient.java
new file mode 100644
index 000000000000..3fdb3e97f97f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/SkusClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.SkuInformationInner;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * Lists the available SKUs supported by Microsoft.Storage for given subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage SKUs operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the available SKUs supported by Microsoft.Storage for given subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage SKUs operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageAccountsClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageAccountsClient.java
new file mode 100644
index 000000000000..0809db5e2b88
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageAccountsClient.java
@@ -0,0 +1,749 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobRestoreStatusInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListAccountSasResponseInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListServiceSasResponseInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.StorageAccountInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.StorageAccountListKeysResultInner;
+import com.azure.resourcemanager.storage.generated.models.AccountSasParameters;
+import com.azure.resourcemanager.storage.generated.models.BlobRestoreParameters;
+import com.azure.resourcemanager.storage.generated.models.ListKeyExpand;
+import com.azure.resourcemanager.storage.generated.models.ServiceSasParameters;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountCheckNameAvailabilityParameters;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountCreateParameters;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountExpand;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountRegenerateKeyParameters;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountUpdateParameters;
+
+/** An instance of this class provides access to all the operations defined in StorageAccountsClient. */
+public interface StorageAccountsClient {
+ /**
+ * Checks that the storage account name is valid and is not already in use.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the CheckNameAvailability operation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityResultInner checkNameAvailability(StorageAccountCheckNameAvailabilityParameters accountName);
+
+ /**
+ * Checks that the storage account name is valid and is not already in use.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the CheckNameAvailability operation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkNameAvailabilityWithResponse(
+ StorageAccountCheckNameAvailabilityParameters accountName, Context context);
+
+ /**
+ * Asynchronously creates a new storage account with the specified parameters. If an account is already created and
+ * a subsequent create request is issued with different properties, the account properties will be updated. If an
+ * account is already created and a subsequent create or update request is issued with the exact same set of
+ * properties, the request will succeed.
+ *
+ * @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 parameters The parameters to provide for the created account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageAccountInner> beginCreate(
+ String resourceGroupName, String accountName, StorageAccountCreateParameters parameters);
+
+ /**
+ * Asynchronously creates a new storage account with the specified parameters. If an account is already created and
+ * a subsequent create request is issued with different properties, the account properties will be updated. If an
+ * account is already created and a subsequent create or update request is issued with the exact same set of
+ * properties, the request will succeed.
+ *
+ * @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 parameters The parameters to provide for the created account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, StorageAccountInner> beginCreate(
+ String resourceGroupName, String accountName, StorageAccountCreateParameters parameters, Context context);
+
+ /**
+ * Asynchronously creates a new storage account with the specified parameters. If an account is already created and
+ * a subsequent create request is issued with different properties, the account properties will be updated. If an
+ * account is already created and a subsequent create or update request is issued with the exact same set of
+ * properties, the request will succeed.
+ *
+ * @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 parameters The parameters to provide for the created account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner create(String resourceGroupName, String accountName, StorageAccountCreateParameters parameters);
+
+ /**
+ * Asynchronously creates a new storage account with the specified parameters. If an account is already created and
+ * a subsequent create request is issued with different properties, the account properties will be updated. If an
+ * account is already created and a subsequent create or update request is issued with the exact same set of
+ * properties, the request will succeed.
+ *
+ * @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 parameters The parameters to provide for the created account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner create(
+ String resourceGroupName, String accountName, StorageAccountCreateParameters parameters, Context context);
+
+ /**
+ * Deletes a storage account in Microsoft Azure.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName);
+
+ /**
+ * Deletes a storage account in Microsoft Azure.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Returns the properties for the specified storage account including but not limited to name, SKU name, location,
+ * and account status. The ListKeys operation should be used to retrieve storage keys.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner getByResourceGroup(String resourceGroupName, String accountName);
+
+ /**
+ * Returns the properties for the specified storage account including but not limited to name, SKU name, location,
+ * and account status. The ListKeys operation should be used to retrieve storage keys.
+ *
+ * @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 expand May be used to expand the properties within account's properties. By default, data is not included
+ * when fetching properties. Currently we only support geoReplicationStats and blobRestoreStatus.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String accountName, StorageAccountExpand expand, Context context);
+
+ /**
+ * The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account. It
+ * can also be used to map the account to a custom domain. Only one custom domain is supported per storage account;
+ * the replacement/change of custom domain is not supported. In order to replace an old custom domain, the old value
+ * must be cleared/unregistered before a new value can be set. The update of multiple properties is supported. This
+ * call does not change the storage keys for the account. If you want to change the storage account keys, use the
+ * regenerate keys operation. The location and name of the storage account cannot be changed after creation.
+ *
+ * @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 parameters The parameters to provide for the updated account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountInner update(String resourceGroupName, String accountName, StorageAccountUpdateParameters parameters);
+
+ /**
+ * The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account. It
+ * can also be used to map the account to a custom domain. Only one custom domain is supported per storage account;
+ * the replacement/change of custom domain is not supported. In order to replace an old custom domain, the old value
+ * must be cleared/unregistered before a new value can be set. The update of multiple properties is supported. This
+ * call does not change the storage keys for the account. If you want to change the storage account keys, use the
+ * regenerate keys operation. The location and name of the storage account cannot be changed after creation.
+ *
+ * @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 parameters The parameters to provide for the updated account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the storage account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String accountName, StorageAccountUpdateParameters parameters, Context context);
+
+ /**
+ * Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the
+ * ListKeys operation for this.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the
+ * ListKeys operation for this.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists all the storage accounts available under the given resource group. Note that storage keys are not returned;
+ * use the ListKeys operation for this.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case
+ * insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all the storage accounts available under the given resource group. Note that storage keys are not returned;
+ * use the ListKeys operation for this.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription. The name is case
+ * insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the List Storage Accounts operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Lists the access keys or Kerberos keys (if active directory enabled) for 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the ListKeys operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountListKeysResultInner listKeys(String resourceGroupName, String accountName);
+
+ /**
+ * Lists the access keys or Kerberos keys (if active directory enabled) for 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 expand Specifies type of the key to be listed. Possible value is kerb.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the ListKeys operation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listKeysWithResponse(
+ String resourceGroupName, String accountName, ListKeyExpand expand, Context context);
+
+ /**
+ * Regenerates one of the access keys or Kerberos keys for 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 regenerateKey Specifies name of the key which should be regenerated -- key1, key2, kerb1, kerb2.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the ListKeys operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StorageAccountListKeysResultInner regenerateKey(
+ String resourceGroupName, String accountName, StorageAccountRegenerateKeyParameters regenerateKey);
+
+ /**
+ * Regenerates one of the access keys or Kerberos keys for 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 regenerateKey Specifies name of the key which should be regenerated -- key1, key2, kerb1, kerb2.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response from the ListKeys operation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response regenerateKeyWithResponse(
+ String resourceGroupName,
+ String accountName,
+ StorageAccountRegenerateKeyParameters regenerateKey,
+ Context context);
+
+ /**
+ * List SAS credentials of 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.
+ * @param parameters The parameters to provide to list SAS credentials for the storage account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the List SAS credentials operation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ListAccountSasResponseInner listAccountSas(
+ String resourceGroupName, String accountName, AccountSasParameters parameters);
+
+ /**
+ * List SAS credentials of 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.
+ * @param parameters The parameters to provide to list SAS credentials for the storage account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the List SAS credentials operation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listAccountSasWithResponse(
+ String resourceGroupName, String accountName, AccountSasParameters parameters, Context context);
+
+ /**
+ * List service SAS credentials of a specific resource.
+ *
+ * @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 parameters The parameters to provide to list service SAS credentials.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the List service SAS credentials operation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ListServiceSasResponseInner listServiceSas(
+ String resourceGroupName, String accountName, ServiceSasParameters parameters);
+
+ /**
+ * List service SAS credentials of a specific resource.
+ *
+ * @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 parameters The parameters to provide to list service SAS credentials.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the List service SAS credentials operation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listServiceSasWithResponse(
+ String resourceGroupName, String accountName, ServiceSasParameters parameters, Context context);
+
+ /**
+ * Failover request can be triggered for a storage account in case of availability issues. The failover occurs from
+ * the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become
+ * primary after failover.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginFailover(String resourceGroupName, String accountName);
+
+ /**
+ * Failover request can be triggered for a storage account in case of availability issues. The failover occurs from
+ * the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become
+ * primary after failover.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginFailover(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Failover request can be triggered for a storage account in case of availability issues. The failover occurs from
+ * the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become
+ * primary after failover.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void failover(String resourceGroupName, String accountName);
+
+ /**
+ * Failover request can be triggered for a storage account in case of availability issues. The failover occurs from
+ * the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become
+ * primary after failover.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void failover(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Live Migration of storage account to enable Hns.
+ *
+ * @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 requestType Required. Hierarchical namespace migration type can either be a hierarchical namespace
+ * validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation
+ * request will validate the migration whereas the hydration request will migrate the account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHierarchicalNamespaceMigration(
+ String resourceGroupName, String accountName, String requestType);
+
+ /**
+ * Live Migration of storage account to enable Hns.
+ *
+ * @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 requestType Required. Hierarchical namespace migration type can either be a hierarchical namespace
+ * validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation
+ * request will validate the migration whereas the hydration request will migrate the account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHierarchicalNamespaceMigration(
+ String resourceGroupName, String accountName, String requestType, Context context);
+
+ /**
+ * Live Migration of storage account to enable Hns.
+ *
+ * @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 requestType Required. Hierarchical namespace migration type can either be a hierarchical namespace
+ * validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation
+ * request will validate the migration whereas the hydration request will migrate the account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hierarchicalNamespaceMigration(String resourceGroupName, String accountName, String requestType);
+
+ /**
+ * Live Migration of storage account to enable Hns.
+ *
+ * @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 requestType Required. Hierarchical namespace migration type can either be a hierarchical namespace
+ * validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation
+ * request will validate the migration whereas the hydration request will migrate the account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hierarchicalNamespaceMigration(
+ String resourceGroupName, String accountName, String requestType, Context context);
+
+ /**
+ * Abort live Migration of storage account to enable Hns.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginAbortHierarchicalNamespaceMigration(
+ String resourceGroupName, String accountName);
+
+ /**
+ * Abort live Migration of storage account to enable Hns.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginAbortHierarchicalNamespaceMigration(
+ String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Abort live Migration of storage account to enable Hns.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void abortHierarchicalNamespaceMigration(String resourceGroupName, String accountName);
+
+ /**
+ * Abort live Migration of storage account to enable Hns.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void abortHierarchicalNamespaceMigration(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Restore blobs in the specified blob ranges.
+ *
+ * @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 parameters The parameters to provide for restore blob ranges.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of blob restore status.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, BlobRestoreStatusInner> beginRestoreBlobRanges(
+ String resourceGroupName, String accountName, BlobRestoreParameters parameters);
+
+ /**
+ * Restore blobs in the specified blob ranges.
+ *
+ * @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 parameters The parameters to provide for restore blob ranges.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of blob restore status.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, BlobRestoreStatusInner> beginRestoreBlobRanges(
+ String resourceGroupName, String accountName, BlobRestoreParameters parameters, Context context);
+
+ /**
+ * Restore blobs in the specified blob ranges.
+ *
+ * @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 parameters The parameters to provide for restore blob ranges.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return blob restore status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobRestoreStatusInner restoreBlobRanges(
+ String resourceGroupName, String accountName, BlobRestoreParameters parameters);
+
+ /**
+ * Restore blobs in the specified blob ranges.
+ *
+ * @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 parameters The parameters to provide for restore blob ranges.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return blob restore status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BlobRestoreStatusInner restoreBlobRanges(
+ String resourceGroupName, String accountName, BlobRestoreParameters parameters, Context context);
+
+ /**
+ * Revoke user delegation keys.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void revokeUserDelegationKeys(String resourceGroupName, String accountName);
+
+ /**
+ * Revoke user delegation keys.
+ *
+ * @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 context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response revokeUserDelegationKeysWithResponse(String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageManagementClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageManagementClient.java
new file mode 100644
index 000000000000..8afa8cc6fd4a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/StorageManagementClient.java
@@ -0,0 +1,186 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for StorageManagementClient class. */
+public interface StorageManagementClient {
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+
+ /**
+ * Gets the StorageAccountsClient object to access its operations.
+ *
+ * @return the StorageAccountsClient object.
+ */
+ StorageAccountsClient getStorageAccounts();
+
+ /**
+ * Gets the DeletedAccountsClient object to access its operations.
+ *
+ * @return the DeletedAccountsClient object.
+ */
+ DeletedAccountsClient getDeletedAccounts();
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ UsagesClient getUsages();
+
+ /**
+ * Gets the ManagementPoliciesClient object to access its operations.
+ *
+ * @return the ManagementPoliciesClient object.
+ */
+ ManagementPoliciesClient getManagementPolicies();
+
+ /**
+ * Gets the BlobInventoryPoliciesClient object to access its operations.
+ *
+ * @return the BlobInventoryPoliciesClient object.
+ */
+ BlobInventoryPoliciesClient getBlobInventoryPolicies();
+
+ /**
+ * Gets the PrivateEndpointConnectionsClient object to access its operations.
+ *
+ * @return the PrivateEndpointConnectionsClient object.
+ */
+ PrivateEndpointConnectionsClient getPrivateEndpointConnections();
+
+ /**
+ * Gets the PrivateLinkResourcesClient object to access its operations.
+ *
+ * @return the PrivateLinkResourcesClient object.
+ */
+ PrivateLinkResourcesClient getPrivateLinkResources();
+
+ /**
+ * Gets the ObjectReplicationPoliciesOperationsClient object to access its operations.
+ *
+ * @return the ObjectReplicationPoliciesOperationsClient object.
+ */
+ ObjectReplicationPoliciesOperationsClient getObjectReplicationPoliciesOperations();
+
+ /**
+ * Gets the LocalUsersOperationsClient object to access its operations.
+ *
+ * @return the LocalUsersOperationsClient object.
+ */
+ LocalUsersOperationsClient getLocalUsersOperations();
+
+ /**
+ * Gets the EncryptionScopesClient object to access its operations.
+ *
+ * @return the EncryptionScopesClient object.
+ */
+ EncryptionScopesClient getEncryptionScopes();
+
+ /**
+ * Gets the BlobServicesClient object to access its operations.
+ *
+ * @return the BlobServicesClient object.
+ */
+ BlobServicesClient getBlobServices();
+
+ /**
+ * Gets the BlobContainersClient object to access its operations.
+ *
+ * @return the BlobContainersClient object.
+ */
+ BlobContainersClient getBlobContainers();
+
+ /**
+ * Gets the FileServicesClient object to access its operations.
+ *
+ * @return the FileServicesClient object.
+ */
+ FileServicesClient getFileServices();
+
+ /**
+ * Gets the FileSharesClient object to access its operations.
+ *
+ * @return the FileSharesClient object.
+ */
+ FileSharesClient getFileShares();
+
+ /**
+ * Gets the QueueServicesClient object to access its operations.
+ *
+ * @return the QueueServicesClient object.
+ */
+ QueueServicesClient getQueueServices();
+
+ /**
+ * Gets the QueuesClient object to access its operations.
+ *
+ * @return the QueuesClient object.
+ */
+ QueuesClient getQueues();
+
+ /**
+ * Gets the TableServicesClient object to access its operations.
+ *
+ * @return the TableServicesClient object.
+ */
+ TableServicesClient getTableServices();
+
+ /**
+ * Gets the TablesClient object to access its operations.
+ *
+ * @return the TablesClient object.
+ */
+ TablesClient getTables();
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TableServicesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TableServicesClient.java
new file mode 100644
index 000000000000..1678e50024ad
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TableServicesClient.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListTableServicesInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.TableServicePropertiesInner;
+
+/** An instance of this class provides access to all the operations defined in TableServicesClient. */
+public interface TableServicesClient {
+ /**
+ * List all table 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ListTableServicesInner list(String resourceGroupName, String accountName);
+
+ /**
+ * List all table 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Sets the properties of a storage account’s Table 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.
+ * @param parameters The properties of a storage account’s Table service, only properties for Storage Analytics and
+ * CORS (Cross-Origin Resource Sharing) rules can be specified.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Table service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TableServicePropertiesInner setServiceProperties(
+ String resourceGroupName, String accountName, TableServicePropertiesInner parameters);
+
+ /**
+ * Sets the properties of a storage account’s Table 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.
+ * @param parameters The properties of a storage account’s Table service, only properties for Storage Analytics and
+ * CORS (Cross-Origin Resource Sharing) rules can be specified.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Table service along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response setServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, TableServicePropertiesInner parameters, Context context);
+
+ /**
+ * Gets the properties of a storage account’s Table 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Table service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TableServicePropertiesInner getServiceProperties(String resourceGroupName, String accountName);
+
+ /**
+ * Gets the properties of a storage account’s Table 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the properties of a storage account’s Table service, including properties for Storage Analytics and CORS
+ * (Cross-Origin Resource Sharing) rules along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getServicePropertiesWithResponse(
+ String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TablesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TablesClient.java
new file mode 100644
index 000000000000..6c6b3aa98d06
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/TablesClient.java
@@ -0,0 +1,193 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.TableInner;
+
+/** An instance of this class provides access to all the operations defined in TablesClient. */
+public interface TablesClient {
+ /**
+ * Creates a new table with the specified table name, under the specified 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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the table, including Id, resource name, resource type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TableInner create(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Creates a new table with the specified table name, under the specified 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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @param parameters The parameters to provide to create a table.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the table, including Id, resource name, resource type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName, String accountName, String tableName, TableInner parameters, Context context);
+
+ /**
+ * Creates a new table with the specified table name, under the specified 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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the table, including Id, resource name, resource type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TableInner update(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Creates a new table with the specified table name, under the specified 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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @param parameters The parameters to provide to create a table.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the table, including Id, resource name, resource type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String accountName, String tableName, TableInner parameters, Context context);
+
+ /**
+ * Gets the table with the specified table name, under the specified account if it exists.
+ *
+ * @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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the table with the specified table name, under the specified account if it exists.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TableInner get(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Gets the table with the specified table name, under the specified account if it exists.
+ *
+ * @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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the table with the specified table name, under the specified account if it exists along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String tableName, Context context);
+
+ /**
+ * Deletes the table with the specified table name, under the specified account if it exists.
+ *
+ * @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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String tableName);
+
+ /**
+ * Deletes the table with the specified table name, under the specified account if it exists.
+ *
+ * @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 tableName A table name must be unique within a storage account and must be between 3 and 63 characters.The
+ * name must comprise of only alphanumeric characters and it cannot begin with a numeric character.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String accountName, String tableName, Context context);
+
+ /**
+ * Gets a list of all the tables 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all the tables under the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * Gets a list of all the tables 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of all the tables under the specified storage account as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/UsagesClient.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/UsagesClient.java
new file mode 100644
index 000000000000..fb78d134e3f4
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/UsagesClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.UsageInner;
+
+/** An instance of this class provides access to all the operations defined in UsagesClient. */
+public interface UsagesClient {
+ /**
+ * Gets the current usage count and the limit for the resources of the location under the subscription.
+ *
+ * @param location The location of the Azure Storage resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current usage count and the limit for the resources of the location under the subscription as
+ * paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByLocation(String location);
+
+ /**
+ * Gets the current usage count and the limit for the resources of the location under the subscription.
+ *
+ * @param location The location of the Azure Storage resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the current usage count and the limit for the resources of the location under the subscription as
+ * paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByLocation(String location, Context context);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobContainerInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobContainerInner.java
new file mode 100644
index 000000000000..e7878b4c4520
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobContainerInner.java
@@ -0,0 +1,339 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AzureEntityResource;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageWithVersioning;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.LegalHoldProperties;
+import com.azure.resourcemanager.storage.generated.models.PublicAccess;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+/** Properties of the blob container, including Id, resource name, resource type, Etag. */
+@Fluent
+public final class BlobContainerInner extends AzureEntityResource {
+ /*
+ * Properties of the blob container.
+ */
+ @JsonProperty(value = "properties")
+ private ContainerProperties innerContainerProperties;
+
+ /**
+ * Get the innerContainerProperties property: Properties of the blob container.
+ *
+ * @return the innerContainerProperties value.
+ */
+ private ContainerProperties innerContainerProperties() {
+ return this.innerContainerProperties;
+ }
+
+ /**
+ * Get the version property: The version of the deleted blob container.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().version();
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the blob container was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().deleted();
+ }
+
+ /**
+ * Get the deletedTime property: Blob container deletion time.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().deletedTime();
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for soft deleted blob container.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.innerContainerProperties() == null
+ ? null
+ : this.innerContainerProperties().remainingRetentionDays();
+ }
+
+ /**
+ * Get the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @return the defaultEncryptionScope value.
+ */
+ public String defaultEncryptionScope() {
+ return this.innerContainerProperties() == null
+ ? null
+ : this.innerContainerProperties().defaultEncryptionScope();
+ }
+
+ /**
+ * Set the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @param defaultEncryptionScope the defaultEncryptionScope value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withDefaultEncryptionScope(String defaultEncryptionScope) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withDefaultEncryptionScope(defaultEncryptionScope);
+ return this;
+ }
+
+ /**
+ * Get the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @return the denyEncryptionScopeOverride value.
+ */
+ public Boolean denyEncryptionScopeOverride() {
+ return this.innerContainerProperties() == null
+ ? null
+ : this.innerContainerProperties().denyEncryptionScopeOverride();
+ }
+
+ /**
+ * Set the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @param denyEncryptionScopeOverride the denyEncryptionScopeOverride value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withDenyEncryptionScopeOverride(denyEncryptionScopeOverride);
+ return this;
+ }
+
+ /**
+ * Get the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @return the publicAccess value.
+ */
+ public PublicAccess publicAccess() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().publicAccess();
+ }
+
+ /**
+ * Set the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @param publicAccess the publicAccess value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withPublicAccess(PublicAccess publicAccess) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withPublicAccess(publicAccess);
+ return this;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the container was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the container.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().leaseStatus();
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the container.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().leaseState();
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a container is of infinite or fixed duration, only
+ * when the container is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().leaseDuration();
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withMetadata(Map metadata) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Get the immutabilityPolicy property: The ImmutabilityPolicy property of the container.
+ *
+ * @return the immutabilityPolicy value.
+ */
+ public ImmutabilityPolicyProperties immutabilityPolicy() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().immutabilityPolicy();
+ }
+
+ /**
+ * Get the legalHold property: The LegalHold property of the container.
+ *
+ * @return the legalHold value.
+ */
+ public LegalHoldProperties legalHold() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().legalHold();
+ }
+
+ /**
+ * Get the hasLegalHold property: 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.innerContainerProperties() == null ? null : this.innerContainerProperties().hasLegalHold();
+ }
+
+ /**
+ * Get the hasImmutabilityPolicy property: The hasImmutabilityPolicy public property is set to true by SRP if
+ * ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false
+ * by SRP if ImmutabilityPolicy has not been created for this container.
+ *
+ * @return the hasImmutabilityPolicy value.
+ */
+ public Boolean hasImmutabilityPolicy() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().hasImmutabilityPolicy();
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageWithVersioning immutableStorageWithVersioning() {
+ return this.innerContainerProperties() == null
+ ? null
+ : this.innerContainerProperties().immutableStorageWithVersioning();
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withImmutableStorageWithVersioning(
+ ImmutableStorageWithVersioning immutableStorageWithVersioning) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withImmutableStorageWithVersioning(immutableStorageWithVersioning);
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @return the enableNfsV3RootSquash value.
+ */
+ public Boolean enableNfsV3RootSquash() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().enableNfsV3RootSquash();
+ }
+
+ /**
+ * Set the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @param enableNfsV3RootSquash the enableNfsV3RootSquash value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withEnableNfsV3RootSquash(Boolean enableNfsV3RootSquash) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withEnableNfsV3RootSquash(enableNfsV3RootSquash);
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @return the enableNfsV3AllSquash value.
+ */
+ public Boolean enableNfsV3AllSquash() {
+ return this.innerContainerProperties() == null ? null : this.innerContainerProperties().enableNfsV3AllSquash();
+ }
+
+ /**
+ * Set the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @param enableNfsV3AllSquash the enableNfsV3AllSquash value to set.
+ * @return the BlobContainerInner object itself.
+ */
+ public BlobContainerInner withEnableNfsV3AllSquash(Boolean enableNfsV3AllSquash) {
+ if (this.innerContainerProperties() == null) {
+ this.innerContainerProperties = new ContainerProperties();
+ }
+ this.innerContainerProperties().withEnableNfsV3AllSquash(enableNfsV3AllSquash);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerContainerProperties() != null) {
+ innerContainerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyInner.java
new file mode 100644
index 000000000000..f782cda5a4a2
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyInner.java
@@ -0,0 +1,89 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicySchema;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The storage account blob inventory policy. */
+@Fluent
+public final class BlobInventoryPolicyInner extends ProxyResource {
+ /*
+ * Returns the storage account blob inventory policy rules.
+ */
+ @JsonProperty(value = "properties")
+ private BlobInventoryPolicyProperties innerProperties;
+
+ /*
+ * Metadata pertaining to creation and last modification of the resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Returns the storage account blob inventory policy rules.
+ *
+ * @return the innerProperties value.
+ */
+ private BlobInventoryPolicyProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Metadata pertaining to creation and last modification of the resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the last modified date and time of the blob inventory policy.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the policy property: The storage account blob inventory policy object. It is composed of policy rules.
+ *
+ * @return the policy value.
+ */
+ public BlobInventoryPolicySchema policy() {
+ return this.innerProperties() == null ? null : this.innerProperties().policy();
+ }
+
+ /**
+ * Set the policy property: The storage account blob inventory policy object. It is composed of policy rules.
+ *
+ * @param policy the policy value to set.
+ * @return the BlobInventoryPolicyInner object itself.
+ */
+ public BlobInventoryPolicyInner withPolicy(BlobInventoryPolicySchema policy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new BlobInventoryPolicyProperties();
+ }
+ this.innerProperties().withPolicy(policy);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyProperties.java
new file mode 100644
index 000000000000..801deeccb0fc
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobInventoryPolicyProperties.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.BlobInventoryPolicySchema;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The storage account blob inventory policy properties. */
+@Fluent
+public final class BlobInventoryPolicyProperties {
+ /*
+ * Returns the last modified date and time of the blob inventory policy.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The storage account blob inventory policy object. It is composed of
+ * policy rules.
+ */
+ @JsonProperty(value = "policy", required = true)
+ private BlobInventoryPolicySchema policy;
+
+ /**
+ * Get the lastModifiedTime property: Returns the last modified date and time of the blob inventory policy.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the policy property: The storage account blob inventory policy object. It is composed of policy rules.
+ *
+ * @return the policy value.
+ */
+ public BlobInventoryPolicySchema policy() {
+ return this.policy;
+ }
+
+ /**
+ * Set the policy property: The storage account blob inventory policy object. It is composed of policy rules.
+ *
+ * @param policy the policy value to set.
+ * @return the BlobInventoryPolicyProperties object itself.
+ */
+ public BlobInventoryPolicyProperties withPolicy(BlobInventoryPolicySchema policy) {
+ this.policy = policy;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (policy() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property policy in model BlobInventoryPolicyProperties"));
+ } else {
+ policy().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(BlobInventoryPolicyProperties.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobRestoreStatusInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobRestoreStatusInner.java
new file mode 100644
index 000000000000..446b439be995
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobRestoreStatusInner.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.storage.generated.models.BlobRestoreParameters;
+import com.azure.resourcemanager.storage.generated.models.BlobRestoreProgressStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Blob restore status. */
+@Immutable
+public final class BlobRestoreStatusInner {
+ /*
+ * The status of blob restore progress. Possible values are: - InProgress:
+ * Indicates that blob restore is ongoing. - Complete: Indicates that blob
+ * restore has been completed successfully. - Failed: Indicates that blob
+ * restore is failed.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private BlobRestoreProgressStatus status;
+
+ /*
+ * Failure reason when blob restore is failed.
+ */
+ @JsonProperty(value = "failureReason", access = JsonProperty.Access.WRITE_ONLY)
+ private String failureReason;
+
+ /*
+ * Id for tracking blob restore request.
+ */
+ @JsonProperty(value = "restoreId", access = JsonProperty.Access.WRITE_ONLY)
+ private String restoreId;
+
+ /*
+ * Blob restore request parameters.
+ */
+ @JsonProperty(value = "parameters", access = JsonProperty.Access.WRITE_ONLY)
+ private BlobRestoreParameters parameters;
+
+ /**
+ * Get the status property: The status of blob restore progress. Possible values are: - InProgress: Indicates that
+ * blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed:
+ * Indicates that blob restore is failed.
+ *
+ * @return the status value.
+ */
+ public BlobRestoreProgressStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the failureReason property: Failure reason when blob restore is failed.
+ *
+ * @return the failureReason value.
+ */
+ public String failureReason() {
+ return this.failureReason;
+ }
+
+ /**
+ * Get the restoreId property: Id for tracking blob restore request.
+ *
+ * @return the restoreId value.
+ */
+ public String restoreId() {
+ return this.restoreId;
+ }
+
+ /**
+ * Get the parameters property: Blob restore request parameters.
+ *
+ * @return the parameters value.
+ */
+ public BlobRestoreParameters parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (parameters() != null) {
+ parameters().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesInner.java
new file mode 100644
index 000000000000..853f0890e3ad
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesInner.java
@@ -0,0 +1,294 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.ChangeFeed;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.DeleteRetentionPolicy;
+import com.azure.resourcemanager.storage.generated.models.LastAccessTimeTrackingPolicy;
+import com.azure.resourcemanager.storage.generated.models.RestorePolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.Sku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Blob service. */
+@Fluent
+public final class BlobServicePropertiesInner extends ProxyResource {
+ /*
+ * The properties of a storage account’s Blob service.
+ */
+ @JsonProperty(value = "properties")
+ private BlobServicePropertiesProperties innerBlobServiceProperties;
+
+ /*
+ * Sku name and tier.
+ */
+ @JsonProperty(value = "sku", access = JsonProperty.Access.WRITE_ONLY)
+ private Sku sku;
+
+ /**
+ * Get the innerBlobServiceProperties property: The properties of a storage account’s Blob service.
+ *
+ * @return the innerBlobServiceProperties value.
+ */
+ private BlobServicePropertiesProperties innerBlobServiceProperties() {
+ return this.innerBlobServiceProperties;
+ }
+
+ /**
+ * Get the sku property: Sku name and tier.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.innerBlobServiceProperties() == null ? null : this.innerBlobServiceProperties().cors();
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withCors(CorsRules cors) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withCors(cors);
+ return this;
+ }
+
+ /**
+ * Get the defaultServiceVersion property: 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 defaultServiceVersion value.
+ */
+ public String defaultServiceVersion() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().defaultServiceVersion();
+ }
+
+ /**
+ * Set the defaultServiceVersion property: 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.
+ *
+ * @param defaultServiceVersion the defaultServiceVersion value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withDefaultServiceVersion(String defaultServiceVersion) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withDefaultServiceVersion(defaultServiceVersion);
+ return this;
+ }
+
+ /**
+ * Get the deleteRetentionPolicy property: The blob service properties for blob soft delete.
+ *
+ * @return the deleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy deleteRetentionPolicy() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().deleteRetentionPolicy();
+ }
+
+ /**
+ * Set the deleteRetentionPolicy property: The blob service properties for blob soft delete.
+ *
+ * @param deleteRetentionPolicy the deleteRetentionPolicy value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withDeleteRetentionPolicy(DeleteRetentionPolicy deleteRetentionPolicy) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withDeleteRetentionPolicy(deleteRetentionPolicy);
+ return this;
+ }
+
+ /**
+ * Get the isVersioningEnabled property: Versioning is enabled if set to true.
+ *
+ * @return the isVersioningEnabled value.
+ */
+ public Boolean isVersioningEnabled() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().isVersioningEnabled();
+ }
+
+ /**
+ * Set the isVersioningEnabled property: Versioning is enabled if set to true.
+ *
+ * @param isVersioningEnabled the isVersioningEnabled value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withIsVersioningEnabled(Boolean isVersioningEnabled) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withIsVersioningEnabled(isVersioningEnabled);
+ return this;
+ }
+
+ /**
+ * Get the automaticSnapshotPolicyEnabled property: Deprecated in favor of isVersioningEnabled property.
+ *
+ * @return the automaticSnapshotPolicyEnabled value.
+ */
+ public Boolean automaticSnapshotPolicyEnabled() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().automaticSnapshotPolicyEnabled();
+ }
+
+ /**
+ * Set the automaticSnapshotPolicyEnabled property: Deprecated in favor of isVersioningEnabled property.
+ *
+ * @param automaticSnapshotPolicyEnabled the automaticSnapshotPolicyEnabled value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withAutomaticSnapshotPolicyEnabled(Boolean automaticSnapshotPolicyEnabled) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withAutomaticSnapshotPolicyEnabled(automaticSnapshotPolicyEnabled);
+ return this;
+ }
+
+ /**
+ * Get the changeFeed property: The blob service properties for change feed events.
+ *
+ * @return the changeFeed value.
+ */
+ public ChangeFeed changeFeed() {
+ return this.innerBlobServiceProperties() == null ? null : this.innerBlobServiceProperties().changeFeed();
+ }
+
+ /**
+ * Set the changeFeed property: The blob service properties for change feed events.
+ *
+ * @param changeFeed the changeFeed value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withChangeFeed(ChangeFeed changeFeed) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withChangeFeed(changeFeed);
+ return this;
+ }
+
+ /**
+ * Get the restorePolicy property: The blob service properties for blob restore policy.
+ *
+ * @return the restorePolicy value.
+ */
+ public RestorePolicyProperties restorePolicy() {
+ return this.innerBlobServiceProperties() == null ? null : this.innerBlobServiceProperties().restorePolicy();
+ }
+
+ /**
+ * Set the restorePolicy property: The blob service properties for blob restore policy.
+ *
+ * @param restorePolicy the restorePolicy value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withRestorePolicy(RestorePolicyProperties restorePolicy) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withRestorePolicy(restorePolicy);
+ return this;
+ }
+
+ /**
+ * Get the containerDeleteRetentionPolicy property: The blob service properties for container soft delete.
+ *
+ * @return the containerDeleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy containerDeleteRetentionPolicy() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().containerDeleteRetentionPolicy();
+ }
+
+ /**
+ * Set the containerDeleteRetentionPolicy property: The blob service properties for container soft delete.
+ *
+ * @param containerDeleteRetentionPolicy the containerDeleteRetentionPolicy value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withContainerDeleteRetentionPolicy(
+ DeleteRetentionPolicy containerDeleteRetentionPolicy) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withContainerDeleteRetentionPolicy(containerDeleteRetentionPolicy);
+ return this;
+ }
+
+ /**
+ * Get the lastAccessTimeTrackingPolicy property: The blob service property to configure last access time based
+ * tracking policy.
+ *
+ * @return the lastAccessTimeTrackingPolicy value.
+ */
+ public LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy() {
+ return this.innerBlobServiceProperties() == null
+ ? null
+ : this.innerBlobServiceProperties().lastAccessTimeTrackingPolicy();
+ }
+
+ /**
+ * Set the lastAccessTimeTrackingPolicy property: The blob service property to configure last access time based
+ * tracking policy.
+ *
+ * @param lastAccessTimeTrackingPolicy the lastAccessTimeTrackingPolicy value to set.
+ * @return the BlobServicePropertiesInner object itself.
+ */
+ public BlobServicePropertiesInner withLastAccessTimeTrackingPolicy(
+ LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy) {
+ if (this.innerBlobServiceProperties() == null) {
+ this.innerBlobServiceProperties = new BlobServicePropertiesProperties();
+ }
+ this.innerBlobServiceProperties().withLastAccessTimeTrackingPolicy(lastAccessTimeTrackingPolicy);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerBlobServiceProperties() != null) {
+ innerBlobServiceProperties().validate();
+ }
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesProperties.java
new file mode 100644
index 000000000000..9c8b179036b0
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/BlobServicePropertiesProperties.java
@@ -0,0 +1,295 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.ChangeFeed;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.DeleteRetentionPolicy;
+import com.azure.resourcemanager.storage.generated.models.LastAccessTimeTrackingPolicy;
+import com.azure.resourcemanager.storage.generated.models.RestorePolicyProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Blob service. */
+@Fluent
+public final class BlobServicePropertiesProperties {
+ /*
+ * 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.
+ */
+ @JsonProperty(value = "cors")
+ private CorsRules cors;
+
+ /*
+ * 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.
+ */
+ @JsonProperty(value = "defaultServiceVersion")
+ private String defaultServiceVersion;
+
+ /*
+ * The blob service properties for blob soft delete.
+ */
+ @JsonProperty(value = "deleteRetentionPolicy")
+ private DeleteRetentionPolicy deleteRetentionPolicy;
+
+ /*
+ * Versioning is enabled if set to true.
+ */
+ @JsonProperty(value = "isVersioningEnabled")
+ private Boolean isVersioningEnabled;
+
+ /*
+ * Deprecated in favor of isVersioningEnabled property.
+ */
+ @JsonProperty(value = "automaticSnapshotPolicyEnabled")
+ private Boolean automaticSnapshotPolicyEnabled;
+
+ /*
+ * The blob service properties for change feed events.
+ */
+ @JsonProperty(value = "changeFeed")
+ private ChangeFeed changeFeed;
+
+ /*
+ * The blob service properties for blob restore policy.
+ */
+ @JsonProperty(value = "restorePolicy")
+ private RestorePolicyProperties restorePolicy;
+
+ /*
+ * The blob service properties for container soft delete.
+ */
+ @JsonProperty(value = "containerDeleteRetentionPolicy")
+ private DeleteRetentionPolicy containerDeleteRetentionPolicy;
+
+ /*
+ * The blob service property to configure last access time based tracking
+ * policy.
+ */
+ @JsonProperty(value = "lastAccessTimeTrackingPolicy")
+ private LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy;
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withCors(CorsRules cors) {
+ this.cors = cors;
+ return this;
+ }
+
+ /**
+ * Get the defaultServiceVersion property: 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 defaultServiceVersion value.
+ */
+ public String defaultServiceVersion() {
+ return this.defaultServiceVersion;
+ }
+
+ /**
+ * Set the defaultServiceVersion property: 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.
+ *
+ * @param defaultServiceVersion the defaultServiceVersion value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withDefaultServiceVersion(String defaultServiceVersion) {
+ this.defaultServiceVersion = defaultServiceVersion;
+ return this;
+ }
+
+ /**
+ * Get the deleteRetentionPolicy property: The blob service properties for blob soft delete.
+ *
+ * @return the deleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy deleteRetentionPolicy() {
+ return this.deleteRetentionPolicy;
+ }
+
+ /**
+ * Set the deleteRetentionPolicy property: The blob service properties for blob soft delete.
+ *
+ * @param deleteRetentionPolicy the deleteRetentionPolicy value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withDeleteRetentionPolicy(DeleteRetentionPolicy deleteRetentionPolicy) {
+ this.deleteRetentionPolicy = deleteRetentionPolicy;
+ return this;
+ }
+
+ /**
+ * Get the isVersioningEnabled property: Versioning is enabled if set to true.
+ *
+ * @return the isVersioningEnabled value.
+ */
+ public Boolean isVersioningEnabled() {
+ return this.isVersioningEnabled;
+ }
+
+ /**
+ * Set the isVersioningEnabled property: Versioning is enabled if set to true.
+ *
+ * @param isVersioningEnabled the isVersioningEnabled value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withIsVersioningEnabled(Boolean isVersioningEnabled) {
+ this.isVersioningEnabled = isVersioningEnabled;
+ return this;
+ }
+
+ /**
+ * Get the automaticSnapshotPolicyEnabled property: Deprecated in favor of isVersioningEnabled property.
+ *
+ * @return the automaticSnapshotPolicyEnabled value.
+ */
+ public Boolean automaticSnapshotPolicyEnabled() {
+ return this.automaticSnapshotPolicyEnabled;
+ }
+
+ /**
+ * Set the automaticSnapshotPolicyEnabled property: Deprecated in favor of isVersioningEnabled property.
+ *
+ * @param automaticSnapshotPolicyEnabled the automaticSnapshotPolicyEnabled value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withAutomaticSnapshotPolicyEnabled(Boolean automaticSnapshotPolicyEnabled) {
+ this.automaticSnapshotPolicyEnabled = automaticSnapshotPolicyEnabled;
+ return this;
+ }
+
+ /**
+ * Get the changeFeed property: The blob service properties for change feed events.
+ *
+ * @return the changeFeed value.
+ */
+ public ChangeFeed changeFeed() {
+ return this.changeFeed;
+ }
+
+ /**
+ * Set the changeFeed property: The blob service properties for change feed events.
+ *
+ * @param changeFeed the changeFeed value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withChangeFeed(ChangeFeed changeFeed) {
+ this.changeFeed = changeFeed;
+ return this;
+ }
+
+ /**
+ * Get the restorePolicy property: The blob service properties for blob restore policy.
+ *
+ * @return the restorePolicy value.
+ */
+ public RestorePolicyProperties restorePolicy() {
+ return this.restorePolicy;
+ }
+
+ /**
+ * Set the restorePolicy property: The blob service properties for blob restore policy.
+ *
+ * @param restorePolicy the restorePolicy value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withRestorePolicy(RestorePolicyProperties restorePolicy) {
+ this.restorePolicy = restorePolicy;
+ return this;
+ }
+
+ /**
+ * Get the containerDeleteRetentionPolicy property: The blob service properties for container soft delete.
+ *
+ * @return the containerDeleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy containerDeleteRetentionPolicy() {
+ return this.containerDeleteRetentionPolicy;
+ }
+
+ /**
+ * Set the containerDeleteRetentionPolicy property: The blob service properties for container soft delete.
+ *
+ * @param containerDeleteRetentionPolicy the containerDeleteRetentionPolicy value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withContainerDeleteRetentionPolicy(
+ DeleteRetentionPolicy containerDeleteRetentionPolicy) {
+ this.containerDeleteRetentionPolicy = containerDeleteRetentionPolicy;
+ return this;
+ }
+
+ /**
+ * Get the lastAccessTimeTrackingPolicy property: The blob service property to configure last access time based
+ * tracking policy.
+ *
+ * @return the lastAccessTimeTrackingPolicy value.
+ */
+ public LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy() {
+ return this.lastAccessTimeTrackingPolicy;
+ }
+
+ /**
+ * Set the lastAccessTimeTrackingPolicy property: The blob service property to configure last access time based
+ * tracking policy.
+ *
+ * @param lastAccessTimeTrackingPolicy the lastAccessTimeTrackingPolicy value to set.
+ * @return the BlobServicePropertiesProperties object itself.
+ */
+ public BlobServicePropertiesProperties withLastAccessTimeTrackingPolicy(
+ LastAccessTimeTrackingPolicy lastAccessTimeTrackingPolicy) {
+ this.lastAccessTimeTrackingPolicy = lastAccessTimeTrackingPolicy;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (cors() != null) {
+ cors().validate();
+ }
+ if (deleteRetentionPolicy() != null) {
+ deleteRetentionPolicy().validate();
+ }
+ if (changeFeed() != null) {
+ changeFeed().validate();
+ }
+ if (restorePolicy() != null) {
+ restorePolicy().validate();
+ }
+ if (containerDeleteRetentionPolicy() != null) {
+ containerDeleteRetentionPolicy().validate();
+ }
+ if (lastAccessTimeTrackingPolicy() != null) {
+ lastAccessTimeTrackingPolicy().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/CheckNameAvailabilityResultInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/CheckNameAvailabilityResultInner.java
new file mode 100644
index 000000000000..589c59b3e4e7
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/CheckNameAvailabilityResultInner.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.storage.generated.models.Reason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The CheckNameAvailability operation response. */
+@Immutable
+public final class CheckNameAvailabilityResultInner {
+ /*
+ * Gets a boolean value that indicates whether the name is available for
+ * you to use. If true, the name is available. If false, the name has
+ * already been taken or is invalid and cannot be used.
+ */
+ @JsonProperty(value = "nameAvailable", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean nameAvailable;
+
+ /*
+ * Gets the reason that a storage account name could not be used. The
+ * Reason element is only returned if NameAvailable is false.
+ */
+ @JsonProperty(value = "reason", access = JsonProperty.Access.WRITE_ONLY)
+ private Reason reason;
+
+ /*
+ * Gets an error message explaining the Reason value in more detail.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the nameAvailable property: Gets a boolean value that indicates whether the name is available for you to use.
+ * If true, the name is available. If false, the name has already been taken or is invalid and cannot be used.
+ *
+ * @return the nameAvailable value.
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Get the reason property: Gets the reason that a storage account name could not be used. The Reason element is
+ * only returned if NameAvailable is false.
+ *
+ * @return the reason value.
+ */
+ public Reason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Get the message property: Gets an error message explaining the Reason value in more detail.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ContainerProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ContainerProperties.java
new file mode 100644
index 000000000000..6745784d5f22
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ContainerProperties.java
@@ -0,0 +1,425 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageWithVersioning;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.LegalHoldProperties;
+import com.azure.resourcemanager.storage.generated.models.PublicAccess;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+/** The properties of a container. */
+@Fluent
+public final class ContainerProperties {
+ /*
+ * The version of the deleted blob container.
+ */
+ @JsonProperty(value = "version", access = JsonProperty.Access.WRITE_ONLY)
+ private String version;
+
+ /*
+ * Indicates whether the blob container was deleted.
+ */
+ @JsonProperty(value = "deleted", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean deleted;
+
+ /*
+ * Blob container deletion time.
+ */
+ @JsonProperty(value = "deletedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime deletedTime;
+
+ /*
+ * Remaining retention days for soft deleted blob container.
+ */
+ @JsonProperty(value = "remainingRetentionDays", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer remainingRetentionDays;
+
+ /*
+ * Default the container to use specified encryption scope for all writes.
+ */
+ @JsonProperty(value = "defaultEncryptionScope")
+ private String defaultEncryptionScope;
+
+ /*
+ * Block override of encryption scope from the container default.
+ */
+ @JsonProperty(value = "denyEncryptionScopeOverride")
+ private Boolean denyEncryptionScopeOverride;
+
+ /*
+ * Specifies whether data in the container may be accessed publicly and the
+ * level of access.
+ */
+ @JsonProperty(value = "publicAccess")
+ private PublicAccess publicAccess;
+
+ /*
+ * Returns the date and time the container was last modified.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The lease status of the container.
+ */
+ @JsonProperty(value = "leaseStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseStatus leaseStatus;
+
+ /*
+ * Lease state of the container.
+ */
+ @JsonProperty(value = "leaseState", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseState leaseState;
+
+ /*
+ * Specifies whether the lease on a container is of infinite or fixed
+ * duration, only when the container is leased.
+ */
+ @JsonProperty(value = "leaseDuration", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseDuration leaseDuration;
+
+ /*
+ * A name-value pair to associate with the container as metadata.
+ */
+ @JsonProperty(value = "metadata")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map metadata;
+
+ /*
+ * The ImmutabilityPolicy property of the container.
+ */
+ @JsonProperty(value = "immutabilityPolicy", access = JsonProperty.Access.WRITE_ONLY)
+ private ImmutabilityPolicyProperties immutabilityPolicy;
+
+ /*
+ * The LegalHold property of the container.
+ */
+ @JsonProperty(value = "legalHold", access = JsonProperty.Access.WRITE_ONLY)
+ private LegalHoldProperties legalHold;
+
+ /*
+ * 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 hasImmutabilityPolicy public property is set to true by SRP if
+ * ImmutabilityPolicy has been created for this container. The
+ * hasImmutabilityPolicy public property is set to false by SRP if
+ * ImmutabilityPolicy has not been created for this container.
+ */
+ @JsonProperty(value = "hasImmutabilityPolicy", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean hasImmutabilityPolicy;
+
+ /*
+ * The object level immutability property of the container. The property is
+ * immutable and can only be set to true at the container creation time.
+ * Existing containers must undergo a migration process.
+ */
+ @JsonProperty(value = "immutableStorageWithVersioning")
+ private ImmutableStorageWithVersioning immutableStorageWithVersioning;
+
+ /*
+ * Enable NFSv3 root squash on blob container.
+ */
+ @JsonProperty(value = "enableNfsV3RootSquash")
+ private Boolean enableNfsV3RootSquash;
+
+ /*
+ * Enable NFSv3 all squash on blob container.
+ */
+ @JsonProperty(value = "enableNfsV3AllSquash")
+ private Boolean enableNfsV3AllSquash;
+
+ /**
+ * Get the version property: The version of the deleted blob container.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the blob container was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.deleted;
+ }
+
+ /**
+ * Get the deletedTime property: Blob container deletion time.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.deletedTime;
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for soft deleted blob container.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.remainingRetentionDays;
+ }
+
+ /**
+ * Get the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @return the defaultEncryptionScope value.
+ */
+ public String defaultEncryptionScope() {
+ return this.defaultEncryptionScope;
+ }
+
+ /**
+ * Set the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @param defaultEncryptionScope the defaultEncryptionScope value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withDefaultEncryptionScope(String defaultEncryptionScope) {
+ this.defaultEncryptionScope = defaultEncryptionScope;
+ return this;
+ }
+
+ /**
+ * Get the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @return the denyEncryptionScopeOverride value.
+ */
+ public Boolean denyEncryptionScopeOverride() {
+ return this.denyEncryptionScopeOverride;
+ }
+
+ /**
+ * Set the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @param denyEncryptionScopeOverride the denyEncryptionScopeOverride value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride) {
+ this.denyEncryptionScopeOverride = denyEncryptionScopeOverride;
+ return this;
+ }
+
+ /**
+ * Get the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @return the publicAccess value.
+ */
+ public PublicAccess publicAccess() {
+ return this.publicAccess;
+ }
+
+ /**
+ * Set the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @param publicAccess the publicAccess value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withPublicAccess(PublicAccess publicAccess) {
+ this.publicAccess = publicAccess;
+ return this;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the container was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the container.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.leaseStatus;
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the container.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.leaseState;
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a container is of infinite or fixed duration, only
+ * when the container is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.leaseDuration;
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withMetadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get the immutabilityPolicy property: The ImmutabilityPolicy property of the container.
+ *
+ * @return the immutabilityPolicy value.
+ */
+ public ImmutabilityPolicyProperties immutabilityPolicy() {
+ return this.immutabilityPolicy;
+ }
+
+ /**
+ * Get the legalHold property: The LegalHold property of the container.
+ *
+ * @return the legalHold value.
+ */
+ public LegalHoldProperties legalHold() {
+ return this.legalHold;
+ }
+
+ /**
+ * Get the hasLegalHold property: 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 hasImmutabilityPolicy property: The hasImmutabilityPolicy public property is set to true by SRP if
+ * ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false
+ * by SRP if ImmutabilityPolicy has not been created for this container.
+ *
+ * @return the hasImmutabilityPolicy value.
+ */
+ public Boolean hasImmutabilityPolicy() {
+ return this.hasImmutabilityPolicy;
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageWithVersioning immutableStorageWithVersioning() {
+ return this.immutableStorageWithVersioning;
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withImmutableStorageWithVersioning(
+ ImmutableStorageWithVersioning immutableStorageWithVersioning) {
+ this.immutableStorageWithVersioning = immutableStorageWithVersioning;
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @return the enableNfsV3RootSquash value.
+ */
+ public Boolean enableNfsV3RootSquash() {
+ return this.enableNfsV3RootSquash;
+ }
+
+ /**
+ * Set the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @param enableNfsV3RootSquash the enableNfsV3RootSquash value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withEnableNfsV3RootSquash(Boolean enableNfsV3RootSquash) {
+ this.enableNfsV3RootSquash = enableNfsV3RootSquash;
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @return the enableNfsV3AllSquash value.
+ */
+ public Boolean enableNfsV3AllSquash() {
+ return this.enableNfsV3AllSquash;
+ }
+
+ /**
+ * Set the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @param enableNfsV3AllSquash the enableNfsV3AllSquash value to set.
+ * @return the ContainerProperties object itself.
+ */
+ public ContainerProperties withEnableNfsV3AllSquash(Boolean enableNfsV3AllSquash) {
+ this.enableNfsV3AllSquash = enableNfsV3AllSquash;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (immutabilityPolicy() != null) {
+ immutabilityPolicy().validate();
+ }
+ if (legalHold() != null) {
+ legalHold().validate();
+ }
+ if (immutableStorageWithVersioning() != null) {
+ immutableStorageWithVersioning().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountInner.java
new file mode 100644
index 000000000000..785ee1158f63
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountInner.java
@@ -0,0 +1,85 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Deleted storage account. */
+@Fluent
+public final class DeletedAccountInner extends ProxyResource {
+ /*
+ * Properties of the deleted account.
+ */
+ @JsonProperty(value = "properties")
+ private DeletedAccountProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Properties of the deleted account.
+ *
+ * @return the innerProperties value.
+ */
+ private DeletedAccountProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the storageAccountResourceId property: Full resource id of the original storage account.
+ *
+ * @return the storageAccountResourceId value.
+ */
+ public String storageAccountResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageAccountResourceId();
+ }
+
+ /**
+ * Get the location property: Location of the deleted account.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.innerProperties() == null ? null : this.innerProperties().location();
+ }
+
+ /**
+ * Get the restoreReference property: Can be used to attempt recovering this deleted account via PutStorageAccount
+ * API.
+ *
+ * @return the restoreReference value.
+ */
+ public String restoreReference() {
+ return this.innerProperties() == null ? null : this.innerProperties().restoreReference();
+ }
+
+ /**
+ * Get the creationTime property: Creation time of the deleted account.
+ *
+ * @return the creationTime value.
+ */
+ public String creationTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationTime();
+ }
+
+ /**
+ * Get the deletionTime property: Deletion time of the deleted account.
+ *
+ * @return the deletionTime value.
+ */
+ public String deletionTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().deletionTime();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountProperties.java
new file mode 100644
index 000000000000..0f7d53e1653f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/DeletedAccountProperties.java
@@ -0,0 +1,97 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Attributes of a deleted storage account. */
+@Immutable
+public final class DeletedAccountProperties {
+ /*
+ * Full resource id of the original storage account.
+ */
+ @JsonProperty(value = "storageAccountResourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String storageAccountResourceId;
+
+ /*
+ * Location of the deleted account.
+ */
+ @JsonProperty(value = "location", access = JsonProperty.Access.WRITE_ONLY)
+ private String location;
+
+ /*
+ * Can be used to attempt recovering this deleted account via
+ * PutStorageAccount API.
+ */
+ @JsonProperty(value = "restoreReference", access = JsonProperty.Access.WRITE_ONLY)
+ private String restoreReference;
+
+ /*
+ * Creation time of the deleted account.
+ */
+ @JsonProperty(value = "creationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private String creationTime;
+
+ /*
+ * Deletion time of the deleted account.
+ */
+ @JsonProperty(value = "deletionTime", access = JsonProperty.Access.WRITE_ONLY)
+ private String deletionTime;
+
+ /**
+ * Get the storageAccountResourceId property: Full resource id of the original storage account.
+ *
+ * @return the storageAccountResourceId value.
+ */
+ public String storageAccountResourceId() {
+ return this.storageAccountResourceId;
+ }
+
+ /**
+ * Get the location property: Location of the deleted account.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Get the restoreReference property: Can be used to attempt recovering this deleted account via PutStorageAccount
+ * API.
+ *
+ * @return the restoreReference value.
+ */
+ public String restoreReference() {
+ return this.restoreReference;
+ }
+
+ /**
+ * Get the creationTime property: Creation time of the deleted account.
+ *
+ * @return the creationTime value.
+ */
+ public String creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Get the deletionTime property: Deletion time of the deleted account.
+ *
+ * @return the deletionTime value.
+ */
+ public String deletionTime() {
+ return this.deletionTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeInner.java
new file mode 100644
index 000000000000..da83029c070f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeInner.java
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeKeyVaultProperties;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeSource;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The Encryption Scope resource. */
+@Fluent
+public final class EncryptionScopeInner extends ProxyResource {
+ /*
+ * Properties of the encryption scope.
+ */
+ @JsonProperty(value = "properties")
+ private EncryptionScopeProperties innerEncryptionScopeProperties;
+
+ /**
+ * Get the innerEncryptionScopeProperties property: Properties of the encryption scope.
+ *
+ * @return the innerEncryptionScopeProperties value.
+ */
+ private EncryptionScopeProperties innerEncryptionScopeProperties() {
+ return this.innerEncryptionScopeProperties;
+ }
+
+ /**
+ * Get the source property: The provider for the encryption scope. Possible values (case-insensitive):
+ * Microsoft.Storage, Microsoft.KeyVault.
+ *
+ * @return the source value.
+ */
+ public EncryptionScopeSource source() {
+ return this.innerEncryptionScopeProperties() == null ? null : this.innerEncryptionScopeProperties().source();
+ }
+
+ /**
+ * Set the source property: The provider for the encryption scope. Possible values (case-insensitive):
+ * Microsoft.Storage, Microsoft.KeyVault.
+ *
+ * @param source the source value to set.
+ * @return the EncryptionScopeInner object itself.
+ */
+ public EncryptionScopeInner withSource(EncryptionScopeSource source) {
+ if (this.innerEncryptionScopeProperties() == null) {
+ this.innerEncryptionScopeProperties = new EncryptionScopeProperties();
+ }
+ this.innerEncryptionScopeProperties().withSource(source);
+ return this;
+ }
+
+ /**
+ * Get the state property: The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled.
+ *
+ * @return the state value.
+ */
+ public EncryptionScopeState state() {
+ return this.innerEncryptionScopeProperties() == null ? null : this.innerEncryptionScopeProperties().state();
+ }
+
+ /**
+ * Set the state property: The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled.
+ *
+ * @param state the state value to set.
+ * @return the EncryptionScopeInner object itself.
+ */
+ public EncryptionScopeInner withState(EncryptionScopeState state) {
+ if (this.innerEncryptionScopeProperties() == null) {
+ this.innerEncryptionScopeProperties = new EncryptionScopeProperties();
+ }
+ this.innerEncryptionScopeProperties().withState(state);
+ return this;
+ }
+
+ /**
+ * Get the creationTime property: Gets the creation date and time of the encryption scope in UTC.
+ *
+ * @return the creationTime value.
+ */
+ public OffsetDateTime creationTime() {
+ return this.innerEncryptionScopeProperties() == null
+ ? null
+ : this.innerEncryptionScopeProperties().creationTime();
+ }
+
+ /**
+ * Get the lastModifiedTime property: Gets the last modification date and time of the encryption scope in UTC.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerEncryptionScopeProperties() == null
+ ? null
+ : this.innerEncryptionScopeProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the keyVaultProperties property: 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 keyVaultProperties value.
+ */
+ public EncryptionScopeKeyVaultProperties keyVaultProperties() {
+ return this.innerEncryptionScopeProperties() == null
+ ? null
+ : this.innerEncryptionScopeProperties().keyVaultProperties();
+ }
+
+ /**
+ * Set the keyVaultProperties property: The key vault properties for the encryption scope. This is a required field
+ * if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'.
+ *
+ * @param keyVaultProperties the keyVaultProperties value to set.
+ * @return the EncryptionScopeInner object itself.
+ */
+ public EncryptionScopeInner withKeyVaultProperties(EncryptionScopeKeyVaultProperties keyVaultProperties) {
+ if (this.innerEncryptionScopeProperties() == null) {
+ this.innerEncryptionScopeProperties = new EncryptionScopeProperties();
+ }
+ this.innerEncryptionScopeProperties().withKeyVaultProperties(keyVaultProperties);
+ return this;
+ }
+
+ /**
+ * Get the requireInfrastructureEncryption property: 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.innerEncryptionScopeProperties() == null
+ ? null
+ : this.innerEncryptionScopeProperties().requireInfrastructureEncryption();
+ }
+
+ /**
+ * Set the requireInfrastructureEncryption property: 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 EncryptionScopeInner object itself.
+ */
+ public EncryptionScopeInner withRequireInfrastructureEncryption(Boolean requireInfrastructureEncryption) {
+ if (this.innerEncryptionScopeProperties() == null) {
+ this.innerEncryptionScopeProperties = new EncryptionScopeProperties();
+ }
+ this.innerEncryptionScopeProperties().withRequireInfrastructureEncryption(requireInfrastructureEncryption);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerEncryptionScopeProperties() != null) {
+ innerEncryptionScopeProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeProperties.java
new file mode 100644
index 000000000000..208288adc36a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/EncryptionScopeProperties.java
@@ -0,0 +1,172 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeKeyVaultProperties;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeSource;
+import com.azure.resourcemanager.storage.generated.models.EncryptionScopeState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of the encryption scope. */
+@Fluent
+public final class EncryptionScopeProperties {
+ /*
+ * The provider for the encryption scope. Possible values
+ * (case-insensitive): Microsoft.Storage, Microsoft.KeyVault.
+ */
+ @JsonProperty(value = "source")
+ private EncryptionScopeSource source;
+
+ /*
+ * The state of the encryption scope. Possible values (case-insensitive):
+ * Enabled, Disabled.
+ */
+ @JsonProperty(value = "state")
+ private EncryptionScopeState state;
+
+ /*
+ * Gets the creation date and time of the encryption scope in UTC.
+ */
+ @JsonProperty(value = "creationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime creationTime;
+
+ /*
+ * Gets the last modification date and time of the encryption scope in UTC.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The key vault properties for the encryption scope. This is a required
+ * field if encryption scope 'source' attribute is set to
+ * 'Microsoft.KeyVault'.
+ */
+ @JsonProperty(value = "keyVaultProperties")
+ private EncryptionScopeKeyVaultProperties keyVaultProperties;
+
+ /*
+ * 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;
+
+ /**
+ * Get the source property: The provider for the encryption scope. Possible values (case-insensitive):
+ * Microsoft.Storage, Microsoft.KeyVault.
+ *
+ * @return the source value.
+ */
+ public EncryptionScopeSource source() {
+ return this.source;
+ }
+
+ /**
+ * Set the source property: The provider for the encryption scope. Possible values (case-insensitive):
+ * Microsoft.Storage, Microsoft.KeyVault.
+ *
+ * @param source the source value to set.
+ * @return the EncryptionScopeProperties object itself.
+ */
+ public EncryptionScopeProperties withSource(EncryptionScopeSource source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get the state property: The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled.
+ *
+ * @return the state value.
+ */
+ public EncryptionScopeState state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state property: The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled.
+ *
+ * @param state the state value to set.
+ * @return the EncryptionScopeProperties object itself.
+ */
+ public EncryptionScopeProperties withState(EncryptionScopeState state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the creationTime property: Gets the creation date and time of the encryption scope in UTC.
+ *
+ * @return the creationTime value.
+ */
+ public OffsetDateTime creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Gets the last modification date and time of the encryption scope in UTC.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the keyVaultProperties property: 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 keyVaultProperties value.
+ */
+ public EncryptionScopeKeyVaultProperties keyVaultProperties() {
+ return this.keyVaultProperties;
+ }
+
+ /**
+ * Set the keyVaultProperties property: The key vault properties for the encryption scope. This is a required field
+ * if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'.
+ *
+ * @param keyVaultProperties the keyVaultProperties value to set.
+ * @return the EncryptionScopeProperties object itself.
+ */
+ public EncryptionScopeProperties withKeyVaultProperties(EncryptionScopeKeyVaultProperties keyVaultProperties) {
+ this.keyVaultProperties = keyVaultProperties;
+ return this;
+ }
+
+ /**
+ * Get the requireInfrastructureEncryption property: 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 the requireInfrastructureEncryption property: 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 EncryptionScopeProperties object itself.
+ */
+ public EncryptionScopeProperties withRequireInfrastructureEncryption(Boolean requireInfrastructureEncryption) {
+ this.requireInfrastructureEncryption = requireInfrastructureEncryption;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (keyVaultProperties() != null) {
+ keyVaultProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServiceItemsInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServiceItemsInner.java
new file mode 100644
index 000000000000..156f10efab0f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServiceItemsInner.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The FileServiceItems model. */
+@Immutable
+public final class FileServiceItemsInner {
+ /*
+ * List of file services returned.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private List value;
+
+ /**
+ * Get the value property: List of file services returned.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesInner.java
new file mode 100644
index 000000000000..7c89237454c8
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesInner.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.DeleteRetentionPolicy;
+import com.azure.resourcemanager.storage.generated.models.ProtocolSettings;
+import com.azure.resourcemanager.storage.generated.models.Sku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of File services in storage account. */
+@Fluent
+public final class FileServicePropertiesInner extends ProxyResource {
+ /*
+ * The properties of File services in storage account.
+ */
+ @JsonProperty(value = "properties")
+ private FileServicePropertiesProperties innerFileServiceProperties;
+
+ /*
+ * Sku name and tier.
+ */
+ @JsonProperty(value = "sku", access = JsonProperty.Access.WRITE_ONLY)
+ private Sku sku;
+
+ /**
+ * Get the innerFileServiceProperties property: The properties of File services in storage account.
+ *
+ * @return the innerFileServiceProperties value.
+ */
+ private FileServicePropertiesProperties innerFileServiceProperties() {
+ return this.innerFileServiceProperties;
+ }
+
+ /**
+ * Get the sku property: Sku name and tier.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.innerFileServiceProperties() == null ? null : this.innerFileServiceProperties().cors();
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the FileServicePropertiesInner object itself.
+ */
+ public FileServicePropertiesInner withCors(CorsRules cors) {
+ if (this.innerFileServiceProperties() == null) {
+ this.innerFileServiceProperties = new FileServicePropertiesProperties();
+ }
+ this.innerFileServiceProperties().withCors(cors);
+ return this;
+ }
+
+ /**
+ * Get the shareDeleteRetentionPolicy property: The file service properties for share soft delete.
+ *
+ * @return the shareDeleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy shareDeleteRetentionPolicy() {
+ return this.innerFileServiceProperties() == null
+ ? null
+ : this.innerFileServiceProperties().shareDeleteRetentionPolicy();
+ }
+
+ /**
+ * Set the shareDeleteRetentionPolicy property: The file service properties for share soft delete.
+ *
+ * @param shareDeleteRetentionPolicy the shareDeleteRetentionPolicy value to set.
+ * @return the FileServicePropertiesInner object itself.
+ */
+ public FileServicePropertiesInner withShareDeleteRetentionPolicy(DeleteRetentionPolicy shareDeleteRetentionPolicy) {
+ if (this.innerFileServiceProperties() == null) {
+ this.innerFileServiceProperties = new FileServicePropertiesProperties();
+ }
+ this.innerFileServiceProperties().withShareDeleteRetentionPolicy(shareDeleteRetentionPolicy);
+ return this;
+ }
+
+ /**
+ * Get the protocolSettings property: Protocol settings for file service.
+ *
+ * @return the protocolSettings value.
+ */
+ public ProtocolSettings protocolSettings() {
+ return this.innerFileServiceProperties() == null ? null : this.innerFileServiceProperties().protocolSettings();
+ }
+
+ /**
+ * Set the protocolSettings property: Protocol settings for file service.
+ *
+ * @param protocolSettings the protocolSettings value to set.
+ * @return the FileServicePropertiesInner object itself.
+ */
+ public FileServicePropertiesInner withProtocolSettings(ProtocolSettings protocolSettings) {
+ if (this.innerFileServiceProperties() == null) {
+ this.innerFileServiceProperties = new FileServicePropertiesProperties();
+ }
+ this.innerFileServiceProperties().withProtocolSettings(protocolSettings);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerFileServiceProperties() != null) {
+ innerFileServiceProperties().validate();
+ }
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesProperties.java
new file mode 100644
index 000000000000..e7d7be04cacf
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileServicePropertiesProperties.java
@@ -0,0 +1,118 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.azure.resourcemanager.storage.generated.models.DeleteRetentionPolicy;
+import com.azure.resourcemanager.storage.generated.models.ProtocolSettings;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of File services in storage account. */
+@Fluent
+public final class FileServicePropertiesProperties {
+ /*
+ * 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.
+ */
+ @JsonProperty(value = "cors")
+ private CorsRules cors;
+
+ /*
+ * The file service properties for share soft delete.
+ */
+ @JsonProperty(value = "shareDeleteRetentionPolicy")
+ private DeleteRetentionPolicy shareDeleteRetentionPolicy;
+
+ /*
+ * Protocol settings for file service
+ */
+ @JsonProperty(value = "protocolSettings")
+ private ProtocolSettings protocolSettings;
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the FileServicePropertiesProperties object itself.
+ */
+ public FileServicePropertiesProperties withCors(CorsRules cors) {
+ this.cors = cors;
+ return this;
+ }
+
+ /**
+ * Get the shareDeleteRetentionPolicy property: The file service properties for share soft delete.
+ *
+ * @return the shareDeleteRetentionPolicy value.
+ */
+ public DeleteRetentionPolicy shareDeleteRetentionPolicy() {
+ return this.shareDeleteRetentionPolicy;
+ }
+
+ /**
+ * Set the shareDeleteRetentionPolicy property: The file service properties for share soft delete.
+ *
+ * @param shareDeleteRetentionPolicy the shareDeleteRetentionPolicy value to set.
+ * @return the FileServicePropertiesProperties object itself.
+ */
+ public FileServicePropertiesProperties withShareDeleteRetentionPolicy(
+ DeleteRetentionPolicy shareDeleteRetentionPolicy) {
+ this.shareDeleteRetentionPolicy = shareDeleteRetentionPolicy;
+ return this;
+ }
+
+ /**
+ * Get the protocolSettings property: Protocol settings for file service.
+ *
+ * @return the protocolSettings value.
+ */
+ public ProtocolSettings protocolSettings() {
+ return this.protocolSettings;
+ }
+
+ /**
+ * Set the protocolSettings property: Protocol settings for file service.
+ *
+ * @param protocolSettings the protocolSettings value to set.
+ * @return the FileServicePropertiesProperties object itself.
+ */
+ public FileServicePropertiesProperties withProtocolSettings(ProtocolSettings protocolSettings) {
+ this.protocolSettings = protocolSettings;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (cors() != null) {
+ cors().validate();
+ }
+ if (shareDeleteRetentionPolicy() != null) {
+ shareDeleteRetentionPolicy().validate();
+ }
+ if (protocolSettings() != null) {
+ protocolSettings().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareInner.java
new file mode 100644
index 000000000000..1c155eed46fa
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareInner.java
@@ -0,0 +1,308 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AzureEntityResource;
+import com.azure.resourcemanager.storage.generated.models.EnabledProtocols;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.RootSquashType;
+import com.azure.resourcemanager.storage.generated.models.ShareAccessTier;
+import com.azure.resourcemanager.storage.generated.models.SignedIdentifier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** Properties of the file share, including Id, resource name, resource type, Etag. */
+@Fluent
+public final class FileShareInner extends AzureEntityResource {
+ /*
+ * Properties of the file share.
+ */
+ @JsonProperty(value = "properties")
+ private FileShareProperties innerFileShareProperties;
+
+ /**
+ * Get the innerFileShareProperties property: Properties of the file share.
+ *
+ * @return the innerFileShareProperties value.
+ */
+ private FileShareProperties innerFileShareProperties() {
+ return this.innerFileShareProperties;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the share was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withMetadata(Map metadata) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Get the shareQuota property: 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 shareQuota value.
+ */
+ public Integer shareQuota() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().shareQuota();
+ }
+
+ /**
+ * Set the shareQuota property: 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.
+ *
+ * @param shareQuota the shareQuota value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withShareQuota(Integer shareQuota) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withShareQuota(shareQuota);
+ return this;
+ }
+
+ /**
+ * Get the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @return the enabledProtocols value.
+ */
+ public EnabledProtocols enabledProtocols() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().enabledProtocols();
+ }
+
+ /**
+ * Set the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @param enabledProtocols the enabledProtocols value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withEnabledProtocols(EnabledProtocols enabledProtocols) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withEnabledProtocols(enabledProtocols);
+ return this;
+ }
+
+ /**
+ * Get the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @return the rootSquash value.
+ */
+ public RootSquashType rootSquash() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().rootSquash();
+ }
+
+ /**
+ * Set the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @param rootSquash the rootSquash value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withRootSquash(RootSquashType rootSquash) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withRootSquash(rootSquash);
+ return this;
+ }
+
+ /**
+ * Get the version property: The version of the share.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().version();
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the share was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().deleted();
+ }
+
+ /**
+ * Get the deletedTime property: The deleted time if the share was deleted.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().deletedTime();
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for share that was soft deleted.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.innerFileShareProperties() == null
+ ? null
+ : this.innerFileShareProperties().remainingRetentionDays();
+ }
+
+ /**
+ * Get the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @return the accessTier value.
+ */
+ public ShareAccessTier accessTier() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().accessTier();
+ }
+
+ /**
+ * Set the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @param accessTier the accessTier value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withAccessTier(ShareAccessTier accessTier) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withAccessTier(accessTier);
+ return this;
+ }
+
+ /**
+ * Get the accessTierChangeTime property: Indicates the last modification time for share access tier.
+ *
+ * @return the accessTierChangeTime value.
+ */
+ public OffsetDateTime accessTierChangeTime() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().accessTierChangeTime();
+ }
+
+ /**
+ * Get the accessTierStatus property: Indicates if there is a pending transition for access tier.
+ *
+ * @return the accessTierStatus value.
+ */
+ public String accessTierStatus() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().accessTierStatus();
+ }
+
+ /**
+ * Get the shareUsageBytes property: The approximate size of the data stored on the share. Note that this value may
+ * not include all recently created or recently resized files.
+ *
+ * @return the shareUsageBytes value.
+ */
+ public Long shareUsageBytes() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().shareUsageBytes();
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the share.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().leaseStatus();
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the share.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().leaseState();
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a share is of infinite or fixed duration, only
+ * when the share is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().leaseDuration();
+ }
+
+ /**
+ * Get the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @return the signedIdentifiers value.
+ */
+ public List signedIdentifiers() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().signedIdentifiers();
+ }
+
+ /**
+ * Set the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @param signedIdentifiers the signedIdentifiers value to set.
+ * @return the FileShareInner object itself.
+ */
+ public FileShareInner withSignedIdentifiers(List signedIdentifiers) {
+ if (this.innerFileShareProperties() == null) {
+ this.innerFileShareProperties = new FileShareProperties();
+ }
+ this.innerFileShareProperties().withSignedIdentifiers(signedIdentifiers);
+ return this;
+ }
+
+ /**
+ * Get the snapshotTime property: Creation time of share snapshot returned in the response of list shares with
+ * expand param "snapshots".
+ *
+ * @return the snapshotTime value.
+ */
+ public OffsetDateTime snapshotTime() {
+ return this.innerFileShareProperties() == null ? null : this.innerFileShareProperties().snapshotTime();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerFileShareProperties() != null) {
+ innerFileShareProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareItemInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareItemInner.java
new file mode 100644
index 000000000000..01852779cf87
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareItemInner.java
@@ -0,0 +1,306 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AzureEntityResource;
+import com.azure.resourcemanager.storage.generated.models.EnabledProtocols;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.RootSquashType;
+import com.azure.resourcemanager.storage.generated.models.ShareAccessTier;
+import com.azure.resourcemanager.storage.generated.models.SignedIdentifier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The file share properties be listed out. */
+@Fluent
+public final class FileShareItemInner extends AzureEntityResource {
+ /*
+ * The file share properties be listed out.
+ */
+ @JsonProperty(value = "properties")
+ private FileShareProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: The file share properties be listed out.
+ *
+ * @return the innerProperties value.
+ */
+ private FileShareProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the share was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerProperties() == null ? null : this.innerProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withMetadata(Map metadata) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Get the shareQuota property: 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 shareQuota value.
+ */
+ public Integer shareQuota() {
+ return this.innerProperties() == null ? null : this.innerProperties().shareQuota();
+ }
+
+ /**
+ * Set the shareQuota property: 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.
+ *
+ * @param shareQuota the shareQuota value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withShareQuota(Integer shareQuota) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withShareQuota(shareQuota);
+ return this;
+ }
+
+ /**
+ * Get the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @return the enabledProtocols value.
+ */
+ public EnabledProtocols enabledProtocols() {
+ return this.innerProperties() == null ? null : this.innerProperties().enabledProtocols();
+ }
+
+ /**
+ * Set the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @param enabledProtocols the enabledProtocols value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withEnabledProtocols(EnabledProtocols enabledProtocols) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withEnabledProtocols(enabledProtocols);
+ return this;
+ }
+
+ /**
+ * Get the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @return the rootSquash value.
+ */
+ public RootSquashType rootSquash() {
+ return this.innerProperties() == null ? null : this.innerProperties().rootSquash();
+ }
+
+ /**
+ * Set the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @param rootSquash the rootSquash value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withRootSquash(RootSquashType rootSquash) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withRootSquash(rootSquash);
+ return this;
+ }
+
+ /**
+ * Get the version property: The version of the share.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the share was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.innerProperties() == null ? null : this.innerProperties().deleted();
+ }
+
+ /**
+ * Get the deletedTime property: The deleted time if the share was deleted.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().deletedTime();
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for share that was soft deleted.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.innerProperties() == null ? null : this.innerProperties().remainingRetentionDays();
+ }
+
+ /**
+ * Get the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @return the accessTier value.
+ */
+ public ShareAccessTier accessTier() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessTier();
+ }
+
+ /**
+ * Set the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @param accessTier the accessTier value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withAccessTier(ShareAccessTier accessTier) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withAccessTier(accessTier);
+ return this;
+ }
+
+ /**
+ * Get the accessTierChangeTime property: Indicates the last modification time for share access tier.
+ *
+ * @return the accessTierChangeTime value.
+ */
+ public OffsetDateTime accessTierChangeTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessTierChangeTime();
+ }
+
+ /**
+ * Get the accessTierStatus property: Indicates if there is a pending transition for access tier.
+ *
+ * @return the accessTierStatus value.
+ */
+ public String accessTierStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessTierStatus();
+ }
+
+ /**
+ * Get the shareUsageBytes property: The approximate size of the data stored on the share. Note that this value may
+ * not include all recently created or recently resized files.
+ *
+ * @return the shareUsageBytes value.
+ */
+ public Long shareUsageBytes() {
+ return this.innerProperties() == null ? null : this.innerProperties().shareUsageBytes();
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the share.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseStatus();
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the share.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseState();
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a share is of infinite or fixed duration, only
+ * when the share is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseDuration();
+ }
+
+ /**
+ * Get the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @return the signedIdentifiers value.
+ */
+ public List signedIdentifiers() {
+ return this.innerProperties() == null ? null : this.innerProperties().signedIdentifiers();
+ }
+
+ /**
+ * Set the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @param signedIdentifiers the signedIdentifiers value to set.
+ * @return the FileShareItemInner object itself.
+ */
+ public FileShareItemInner withSignedIdentifiers(List signedIdentifiers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FileShareProperties();
+ }
+ this.innerProperties().withSignedIdentifiers(signedIdentifiers);
+ return this;
+ }
+
+ /**
+ * Get the snapshotTime property: Creation time of share snapshot returned in the response of list shares with
+ * expand param "snapshots".
+ *
+ * @return the snapshotTime value.
+ */
+ public OffsetDateTime snapshotTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().snapshotTime();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareProperties.java
new file mode 100644
index 000000000000..52fdf70f31ee
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/FileShareProperties.java
@@ -0,0 +1,388 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.EnabledProtocols;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.RootSquashType;
+import com.azure.resourcemanager.storage.generated.models.ShareAccessTier;
+import com.azure.resourcemanager.storage.generated.models.SignedIdentifier;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The properties of the file share. */
+@Fluent
+public final class FileShareProperties {
+ /*
+ * Returns the date and time the share was last modified.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * A name-value pair to associate with the share as metadata.
+ */
+ @JsonProperty(value = "metadata")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map metadata;
+
+ /*
+ * 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.
+ */
+ @JsonProperty(value = "shareQuota")
+ private Integer shareQuota;
+
+ /*
+ * The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ */
+ @JsonProperty(value = "enabledProtocols")
+ private EnabledProtocols enabledProtocols;
+
+ /*
+ * The property is for NFS share only. The default is NoRootSquash.
+ */
+ @JsonProperty(value = "rootSquash")
+ private RootSquashType rootSquash;
+
+ /*
+ * The version of the share.
+ */
+ @JsonProperty(value = "version", access = JsonProperty.Access.WRITE_ONLY)
+ private String version;
+
+ /*
+ * Indicates whether the share was deleted.
+ */
+ @JsonProperty(value = "deleted", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean deleted;
+
+ /*
+ * The deleted time if the share was deleted.
+ */
+ @JsonProperty(value = "deletedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime deletedTime;
+
+ /*
+ * Remaining retention days for share that was soft deleted.
+ */
+ @JsonProperty(value = "remainingRetentionDays", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer remainingRetentionDays;
+
+ /*
+ * Access tier for specific share. GpV2 account can choose between
+ * TransactionOptimized (default), Hot, and Cool. FileStorage account can
+ * choose Premium.
+ */
+ @JsonProperty(value = "accessTier")
+ private ShareAccessTier accessTier;
+
+ /*
+ * Indicates the last modification time for share access tier.
+ */
+ @JsonProperty(value = "accessTierChangeTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime accessTierChangeTime;
+
+ /*
+ * Indicates if there is a pending transition for access tier.
+ */
+ @JsonProperty(value = "accessTierStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String accessTierStatus;
+
+ /*
+ * The approximate size of the data stored on the share. Note that this
+ * value may not include all recently created or recently resized files.
+ */
+ @JsonProperty(value = "shareUsageBytes", access = JsonProperty.Access.WRITE_ONLY)
+ private Long shareUsageBytes;
+
+ /*
+ * The lease status of the share.
+ */
+ @JsonProperty(value = "leaseStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseStatus leaseStatus;
+
+ /*
+ * Lease state of the share.
+ */
+ @JsonProperty(value = "leaseState", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseState leaseState;
+
+ /*
+ * Specifies whether the lease on a share is of infinite or fixed duration,
+ * only when the share is leased.
+ */
+ @JsonProperty(value = "leaseDuration", access = JsonProperty.Access.WRITE_ONLY)
+ private LeaseDuration leaseDuration;
+
+ /*
+ * List of stored access policies specified on the share.
+ */
+ @JsonProperty(value = "signedIdentifiers")
+ private List signedIdentifiers;
+
+ /*
+ * Creation time of share snapshot returned in the response of list shares
+ * with expand param "snapshots".
+ */
+ @JsonProperty(value = "snapshotTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime snapshotTime;
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the share was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the share as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withMetadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get the shareQuota property: 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 shareQuota value.
+ */
+ public Integer shareQuota() {
+ return this.shareQuota;
+ }
+
+ /**
+ * Set the shareQuota property: 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.
+ *
+ * @param shareQuota the shareQuota value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withShareQuota(Integer shareQuota) {
+ this.shareQuota = shareQuota;
+ return this;
+ }
+
+ /**
+ * Get the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @return the enabledProtocols value.
+ */
+ public EnabledProtocols enabledProtocols() {
+ return this.enabledProtocols;
+ }
+
+ /**
+ * Set the enabledProtocols property: The authentication protocol that is used for the file share. Can only be
+ * specified when creating a share.
+ *
+ * @param enabledProtocols the enabledProtocols value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withEnabledProtocols(EnabledProtocols enabledProtocols) {
+ this.enabledProtocols = enabledProtocols;
+ return this;
+ }
+
+ /**
+ * Get the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @return the rootSquash value.
+ */
+ public RootSquashType rootSquash() {
+ return this.rootSquash;
+ }
+
+ /**
+ * Set the rootSquash property: The property is for NFS share only. The default is NoRootSquash.
+ *
+ * @param rootSquash the rootSquash value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withRootSquash(RootSquashType rootSquash) {
+ this.rootSquash = rootSquash;
+ return this;
+ }
+
+ /**
+ * Get the version property: The version of the share.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the share was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.deleted;
+ }
+
+ /**
+ * Get the deletedTime property: The deleted time if the share was deleted.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.deletedTime;
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for share that was soft deleted.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.remainingRetentionDays;
+ }
+
+ /**
+ * Get the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @return the accessTier value.
+ */
+ public ShareAccessTier accessTier() {
+ return this.accessTier;
+ }
+
+ /**
+ * Set the accessTier property: Access tier for specific share. GpV2 account can choose between TransactionOptimized
+ * (default), Hot, and Cool. FileStorage account can choose Premium.
+ *
+ * @param accessTier the accessTier value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withAccessTier(ShareAccessTier accessTier) {
+ this.accessTier = accessTier;
+ return this;
+ }
+
+ /**
+ * Get the accessTierChangeTime property: Indicates the last modification time for share access tier.
+ *
+ * @return the accessTierChangeTime value.
+ */
+ public OffsetDateTime accessTierChangeTime() {
+ return this.accessTierChangeTime;
+ }
+
+ /**
+ * Get the accessTierStatus property: Indicates if there is a pending transition for access tier.
+ *
+ * @return the accessTierStatus value.
+ */
+ public String accessTierStatus() {
+ return this.accessTierStatus;
+ }
+
+ /**
+ * Get the shareUsageBytes property: The approximate size of the data stored on the share. Note that this value may
+ * not include all recently created or recently resized files.
+ *
+ * @return the shareUsageBytes value.
+ */
+ public Long shareUsageBytes() {
+ return this.shareUsageBytes;
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the share.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.leaseStatus;
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the share.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.leaseState;
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a share is of infinite or fixed duration, only
+ * when the share is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.leaseDuration;
+ }
+
+ /**
+ * Get the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @return the signedIdentifiers value.
+ */
+ public List signedIdentifiers() {
+ return this.signedIdentifiers;
+ }
+
+ /**
+ * Set the signedIdentifiers property: List of stored access policies specified on the share.
+ *
+ * @param signedIdentifiers the signedIdentifiers value to set.
+ * @return the FileShareProperties object itself.
+ */
+ public FileShareProperties withSignedIdentifiers(List signedIdentifiers) {
+ this.signedIdentifiers = signedIdentifiers;
+ return this;
+ }
+
+ /**
+ * Get the snapshotTime property: Creation time of share snapshot returned in the response of list shares with
+ * expand param "snapshots".
+ *
+ * @return the snapshotTime value.
+ */
+ public OffsetDateTime snapshotTime() {
+ return this.snapshotTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (signedIdentifiers() != null) {
+ signedIdentifiers().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyInner.java
new file mode 100644
index 000000000000..377abb1a6789
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyInner.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.AzureEntityResource;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag. */
+@Fluent
+public final class ImmutabilityPolicyInner extends AzureEntityResource {
+ /*
+ * The properties of an ImmutabilityPolicy of a blob container.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ImmutabilityPolicyProperty innerProperties = new ImmutabilityPolicyProperty();
+
+ /**
+ * Get the innerProperties property: The properties of an ImmutabilityPolicy of a blob container.
+ *
+ * @return the innerProperties value.
+ */
+ private ImmutabilityPolicyProperty innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the immutabilityPeriodSinceCreationInDays property: The immutability period for the blobs in the container
+ * since the policy creation, in days.
+ *
+ * @return the immutabilityPeriodSinceCreationInDays value.
+ */
+ public Integer immutabilityPeriodSinceCreationInDays() {
+ return this.innerProperties() == null ? null : this.innerProperties().immutabilityPeriodSinceCreationInDays();
+ }
+
+ /**
+ * Set the immutabilityPeriodSinceCreationInDays property: The immutability period for the blobs in the container
+ * since the policy creation, in days.
+ *
+ * @param immutabilityPeriodSinceCreationInDays the immutabilityPeriodSinceCreationInDays value to set.
+ * @return the ImmutabilityPolicyInner object itself.
+ */
+ public ImmutabilityPolicyInner withImmutabilityPeriodSinceCreationInDays(
+ Integer immutabilityPeriodSinceCreationInDays) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ImmutabilityPolicyProperty();
+ }
+ this.innerProperties().withImmutabilityPeriodSinceCreationInDays(immutabilityPeriodSinceCreationInDays);
+ return this;
+ }
+
+ /**
+ * Get the state property: The ImmutabilityPolicy state of a blob container, possible values include: Locked and
+ * Unlocked.
+ *
+ * @return the state value.
+ */
+ public ImmutabilityPolicyState state() {
+ return this.innerProperties() == null ? null : this.innerProperties().state();
+ }
+
+ /**
+ * Get the allowProtectedAppendWrites property: 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.innerProperties() == null ? null : this.innerProperties().allowProtectedAppendWrites();
+ }
+
+ /**
+ * Set the allowProtectedAppendWrites property: 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 ImmutabilityPolicyInner object itself.
+ */
+ public ImmutabilityPolicyInner withAllowProtectedAppendWrites(Boolean allowProtectedAppendWrites) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ImmutabilityPolicyProperty();
+ }
+ this.innerProperties().withAllowProtectedAppendWrites(allowProtectedAppendWrites);
+ return this;
+ }
+
+ /**
+ * Get the allowProtectedAppendWritesAll property: This property can only be changed for unlocked time-based
+ * retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' 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. The 'allowProtectedAppendWrites'
+ * and 'allowProtectedAppendWritesAll' properties are mutually exclusive.
+ *
+ * @return the allowProtectedAppendWritesAll value.
+ */
+ public Boolean allowProtectedAppendWritesAll() {
+ return this.innerProperties() == null ? null : this.innerProperties().allowProtectedAppendWritesAll();
+ }
+
+ /**
+ * Set the allowProtectedAppendWritesAll property: This property can only be changed for unlocked time-based
+ * retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' 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. The 'allowProtectedAppendWrites'
+ * and 'allowProtectedAppendWritesAll' properties are mutually exclusive.
+ *
+ * @param allowProtectedAppendWritesAll the allowProtectedAppendWritesAll value to set.
+ * @return the ImmutabilityPolicyInner object itself.
+ */
+ public ImmutabilityPolicyInner withAllowProtectedAppendWritesAll(Boolean allowProtectedAppendWritesAll) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ImmutabilityPolicyProperty();
+ }
+ this.innerProperties().withAllowProtectedAppendWritesAll(allowProtectedAppendWritesAll);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerProperties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model ImmutabilityPolicyInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ImmutabilityPolicyInner.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyProperty.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyProperty.java
new file mode 100644
index 000000000000..ef676e959690
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ImmutabilityPolicyProperty.java
@@ -0,0 +1,145 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of an ImmutabilityPolicy of a blob container. */
+@Fluent
+public final class ImmutabilityPolicyProperty {
+ /*
+ * The immutability period for the blobs in the container since the policy
+ * creation, in days.
+ */
+ @JsonProperty(value = "immutabilityPeriodSinceCreationInDays")
+ private Integer immutabilityPeriodSinceCreationInDays;
+
+ /*
+ * The ImmutabilityPolicy state of a blob container, possible values
+ * include: Locked and Unlocked.
+ */
+ @JsonProperty(value = "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 = "allowProtectedAppendWrites")
+ private Boolean allowProtectedAppendWrites;
+
+ /*
+ * This property can only be changed for unlocked time-based retention
+ * policies. When enabled, new blocks can be written to both 'Append and
+ * Bock Blobs' 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. The 'allowProtectedAppendWrites' and
+ * 'allowProtectedAppendWritesAll' properties are mutually exclusive.
+ */
+ @JsonProperty(value = "allowProtectedAppendWritesAll")
+ private Boolean allowProtectedAppendWritesAll;
+
+ /**
+ * Get the immutabilityPeriodSinceCreationInDays property: 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 immutabilityPeriodSinceCreationInDays property: The immutability period for the blobs in the container
+ * since the policy creation, in days.
+ *
+ * @param immutabilityPeriodSinceCreationInDays the immutabilityPeriodSinceCreationInDays value to set.
+ * @return the ImmutabilityPolicyProperty object itself.
+ */
+ public ImmutabilityPolicyProperty withImmutabilityPeriodSinceCreationInDays(
+ Integer immutabilityPeriodSinceCreationInDays) {
+ this.immutabilityPeriodSinceCreationInDays = immutabilityPeriodSinceCreationInDays;
+ return this;
+ }
+
+ /**
+ * Get the state property: The ImmutabilityPolicy state of a blob container, possible values include: Locked and
+ * Unlocked.
+ *
+ * @return the state value.
+ */
+ public ImmutabilityPolicyState state() {
+ return this.state;
+ }
+
+ /**
+ * Get the allowProtectedAppendWrites property: 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 the allowProtectedAppendWrites property: 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 ImmutabilityPolicyProperty object itself.
+ */
+ public ImmutabilityPolicyProperty withAllowProtectedAppendWrites(Boolean allowProtectedAppendWrites) {
+ this.allowProtectedAppendWrites = allowProtectedAppendWrites;
+ return this;
+ }
+
+ /**
+ * Get the allowProtectedAppendWritesAll property: This property can only be changed for unlocked time-based
+ * retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' 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. The 'allowProtectedAppendWrites'
+ * and 'allowProtectedAppendWritesAll' properties are mutually exclusive.
+ *
+ * @return the allowProtectedAppendWritesAll value.
+ */
+ public Boolean allowProtectedAppendWritesAll() {
+ return this.allowProtectedAppendWritesAll;
+ }
+
+ /**
+ * Set the allowProtectedAppendWritesAll property: This property can only be changed for unlocked time-based
+ * retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' 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. The 'allowProtectedAppendWrites'
+ * and 'allowProtectedAppendWritesAll' properties are mutually exclusive.
+ *
+ * @param allowProtectedAppendWritesAll the allowProtectedAppendWritesAll value to set.
+ * @return the ImmutabilityPolicyProperty object itself.
+ */
+ public ImmutabilityPolicyProperty withAllowProtectedAppendWritesAll(Boolean allowProtectedAppendWritesAll) {
+ this.allowProtectedAppendWritesAll = allowProtectedAppendWritesAll;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseContainerResponseInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseContainerResponseInner.java
new file mode 100644
index 000000000000..e8303dde31e0
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseContainerResponseInner.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Lease Container response schema. */
+@Fluent
+public final class LeaseContainerResponseInner {
+ /*
+ * Returned unique lease ID that must be included with any request to
+ * delete the container, or to renew, change, or release the lease.
+ */
+ @JsonProperty(value = "leaseId")
+ private String leaseId;
+
+ /*
+ * Approximate time remaining in the lease period, in seconds.
+ */
+ @JsonProperty(value = "leaseTimeSeconds")
+ private String leaseTimeSeconds;
+
+ /**
+ * Get the leaseId property: Returned unique lease ID that must be included with any request to delete the
+ * container, or to renew, change, or release the lease.
+ *
+ * @return the leaseId value.
+ */
+ public String leaseId() {
+ return this.leaseId;
+ }
+
+ /**
+ * Set the leaseId property: Returned unique lease ID that must be included with any request to delete the
+ * container, or to renew, change, or release the lease.
+ *
+ * @param leaseId the leaseId value to set.
+ * @return the LeaseContainerResponseInner object itself.
+ */
+ public LeaseContainerResponseInner withLeaseId(String leaseId) {
+ this.leaseId = leaseId;
+ return this;
+ }
+
+ /**
+ * Get the leaseTimeSeconds property: Approximate time remaining in the lease period, in seconds.
+ *
+ * @return the leaseTimeSeconds value.
+ */
+ public String leaseTimeSeconds() {
+ return this.leaseTimeSeconds;
+ }
+
+ /**
+ * Set the leaseTimeSeconds property: Approximate time remaining in the lease period, in seconds.
+ *
+ * @param leaseTimeSeconds the leaseTimeSeconds value to set.
+ * @return the LeaseContainerResponseInner object itself.
+ */
+ public LeaseContainerResponseInner withLeaseTimeSeconds(String leaseTimeSeconds) {
+ this.leaseTimeSeconds = leaseTimeSeconds;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseShareResponseInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseShareResponseInner.java
new file mode 100644
index 000000000000..f35a3a07cdbb
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LeaseShareResponseInner.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Lease Share response schema. */
+@Fluent
+public final class LeaseShareResponseInner {
+ /*
+ * Returned unique lease ID that must be included with any request to
+ * delete the share, or to renew, change, or release the lease.
+ */
+ @JsonProperty(value = "leaseId")
+ private String leaseId;
+
+ /*
+ * Approximate time remaining in the lease period, in seconds.
+ */
+ @JsonProperty(value = "leaseTimeSeconds")
+ private String leaseTimeSeconds;
+
+ /**
+ * Get the leaseId property: Returned unique lease ID that must be included with any request to delete the share, or
+ * to renew, change, or release the lease.
+ *
+ * @return the leaseId value.
+ */
+ public String leaseId() {
+ return this.leaseId;
+ }
+
+ /**
+ * Set the leaseId property: Returned unique lease ID that must be included with any request to delete the share, or
+ * to renew, change, or release the lease.
+ *
+ * @param leaseId the leaseId value to set.
+ * @return the LeaseShareResponseInner object itself.
+ */
+ public LeaseShareResponseInner withLeaseId(String leaseId) {
+ this.leaseId = leaseId;
+ return this;
+ }
+
+ /**
+ * Get the leaseTimeSeconds property: Approximate time remaining in the lease period, in seconds.
+ *
+ * @return the leaseTimeSeconds value.
+ */
+ public String leaseTimeSeconds() {
+ return this.leaseTimeSeconds;
+ }
+
+ /**
+ * Set the leaseTimeSeconds property: Approximate time remaining in the lease period, in seconds.
+ *
+ * @param leaseTimeSeconds the leaseTimeSeconds value to set.
+ * @return the LeaseShareResponseInner object itself.
+ */
+ public LeaseShareResponseInner withLeaseTimeSeconds(String leaseTimeSeconds) {
+ this.leaseTimeSeconds = leaseTimeSeconds;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LegalHoldInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LegalHoldInner.java
new file mode 100644
index 000000000000..c172f0d2f167
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LegalHoldInner.java
@@ -0,0 +1,109 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The LegalHold property of a blob container. */
+@Fluent
+public final class LegalHoldInner {
+ /*
+ * 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;
+
+ /*
+ * Each tag should be 3 to 23 alphanumeric characters and is normalized to
+ * lower case at SRP.
+ */
+ @JsonProperty(value = "tags", required = true)
+ private List tags;
+
+ /*
+ * When enabled, new blocks can be written to both 'Append and Bock Blobs'
+ * while maintaining legal hold protection and compliance. Only new blocks
+ * can be added and any existing blocks cannot be modified or deleted.
+ */
+ @JsonProperty(value = "allowProtectedAppendWritesAll")
+ private Boolean allowProtectedAppendWritesAll;
+
+ /**
+ * Get the hasLegalHold property: 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 tags property: Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
+ *
+ * @return the tags value.
+ */
+ public List tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
+ *
+ * @param tags the tags value to set.
+ * @return the LegalHoldInner object itself.
+ */
+ public LegalHoldInner withTags(List tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the allowProtectedAppendWritesAll property: When enabled, new blocks can be written to both 'Append and Bock
+ * Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing
+ * blocks cannot be modified or deleted.
+ *
+ * @return the allowProtectedAppendWritesAll value.
+ */
+ public Boolean allowProtectedAppendWritesAll() {
+ return this.allowProtectedAppendWritesAll;
+ }
+
+ /**
+ * Set the allowProtectedAppendWritesAll property: When enabled, new blocks can be written to both 'Append and Bock
+ * Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing
+ * blocks cannot be modified or deleted.
+ *
+ * @param allowProtectedAppendWritesAll the allowProtectedAppendWritesAll value to set.
+ * @return the LegalHoldInner object itself.
+ */
+ public LegalHoldInner withAllowProtectedAppendWritesAll(Boolean allowProtectedAppendWritesAll) {
+ this.allowProtectedAppendWritesAll = allowProtectedAppendWritesAll;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (tags() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property tags in model LegalHoldInner"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(LegalHoldInner.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListAccountSasResponseInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListAccountSasResponseInner.java
new file mode 100644
index 000000000000..36294922397a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListAccountSasResponseInner.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The List SAS credentials operation response. */
+@Immutable
+public final class ListAccountSasResponseInner {
+ /*
+ * List SAS credentials of storage account.
+ */
+ @JsonProperty(value = "accountSasToken", access = JsonProperty.Access.WRITE_ONLY)
+ private String accountSasToken;
+
+ /**
+ * Get the accountSasToken property: List SAS credentials of storage account.
+ *
+ * @return the accountSasToken value.
+ */
+ public String accountSasToken() {
+ return this.accountSasToken;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListContainerItemInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListContainerItemInner.java
new file mode 100644
index 000000000000..21c42cf09d4f
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListContainerItemInner.java
@@ -0,0 +1,331 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AzureEntityResource;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageWithVersioning;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.LegalHoldProperties;
+import com.azure.resourcemanager.storage.generated.models.PublicAccess;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+/** The blob container properties be listed out. */
+@Fluent
+public final class ListContainerItemInner extends AzureEntityResource {
+ /*
+ * The blob container properties be listed out.
+ */
+ @JsonProperty(value = "properties")
+ private ContainerProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: The blob container properties be listed out.
+ *
+ * @return the innerProperties value.
+ */
+ private ContainerProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the version property: The version of the deleted blob container.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Get the deleted property: Indicates whether the blob container was deleted.
+ *
+ * @return the deleted value.
+ */
+ public Boolean deleted() {
+ return this.innerProperties() == null ? null : this.innerProperties().deleted();
+ }
+
+ /**
+ * Get the deletedTime property: Blob container deletion time.
+ *
+ * @return the deletedTime value.
+ */
+ public OffsetDateTime deletedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().deletedTime();
+ }
+
+ /**
+ * Get the remainingRetentionDays property: Remaining retention days for soft deleted blob container.
+ *
+ * @return the remainingRetentionDays value.
+ */
+ public Integer remainingRetentionDays() {
+ return this.innerProperties() == null ? null : this.innerProperties().remainingRetentionDays();
+ }
+
+ /**
+ * Get the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @return the defaultEncryptionScope value.
+ */
+ public String defaultEncryptionScope() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultEncryptionScope();
+ }
+
+ /**
+ * Set the defaultEncryptionScope property: Default the container to use specified encryption scope for all writes.
+ *
+ * @param defaultEncryptionScope the defaultEncryptionScope value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withDefaultEncryptionScope(String defaultEncryptionScope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withDefaultEncryptionScope(defaultEncryptionScope);
+ return this;
+ }
+
+ /**
+ * Get the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @return the denyEncryptionScopeOverride value.
+ */
+ public Boolean denyEncryptionScopeOverride() {
+ return this.innerProperties() == null ? null : this.innerProperties().denyEncryptionScopeOverride();
+ }
+
+ /**
+ * Set the denyEncryptionScopeOverride property: Block override of encryption scope from the container default.
+ *
+ * @param denyEncryptionScopeOverride the denyEncryptionScopeOverride value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withDenyEncryptionScopeOverride(denyEncryptionScopeOverride);
+ return this;
+ }
+
+ /**
+ * Get the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @return the publicAccess value.
+ */
+ public PublicAccess publicAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicAccess();
+ }
+
+ /**
+ * Set the publicAccess property: Specifies whether data in the container may be accessed publicly and the level of
+ * access.
+ *
+ * @param publicAccess the publicAccess value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withPublicAccess(PublicAccess publicAccess) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withPublicAccess(publicAccess);
+ return this;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the container was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the leaseStatus property: The lease status of the container.
+ *
+ * @return the leaseStatus value.
+ */
+ public LeaseStatus leaseStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseStatus();
+ }
+
+ /**
+ * Get the leaseState property: Lease state of the container.
+ *
+ * @return the leaseState value.
+ */
+ public LeaseState leaseState() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseState();
+ }
+
+ /**
+ * Get the leaseDuration property: Specifies whether the lease on a container is of infinite or fixed duration, only
+ * when the container is leased.
+ *
+ * @return the leaseDuration value.
+ */
+ public LeaseDuration leaseDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().leaseDuration();
+ }
+
+ /**
+ * Get the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerProperties() == null ? null : this.innerProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair to associate with the container as metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withMetadata(Map metadata) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Get the immutabilityPolicy property: The ImmutabilityPolicy property of the container.
+ *
+ * @return the immutabilityPolicy value.
+ */
+ public ImmutabilityPolicyProperties immutabilityPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().immutabilityPolicy();
+ }
+
+ /**
+ * Get the legalHold property: The LegalHold property of the container.
+ *
+ * @return the legalHold value.
+ */
+ public LegalHoldProperties legalHold() {
+ return this.innerProperties() == null ? null : this.innerProperties().legalHold();
+ }
+
+ /**
+ * Get the hasLegalHold property: 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.innerProperties() == null ? null : this.innerProperties().hasLegalHold();
+ }
+
+ /**
+ * Get the hasImmutabilityPolicy property: The hasImmutabilityPolicy public property is set to true by SRP if
+ * ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false
+ * by SRP if ImmutabilityPolicy has not been created for this container.
+ *
+ * @return the hasImmutabilityPolicy value.
+ */
+ public Boolean hasImmutabilityPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().hasImmutabilityPolicy();
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageWithVersioning immutableStorageWithVersioning() {
+ return this.innerProperties() == null ? null : this.innerProperties().immutableStorageWithVersioning();
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The object level immutability property of the container. The
+ * property is immutable and can only be set to true at the container creation time. Existing containers must
+ * undergo a migration process.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withImmutableStorageWithVersioning(
+ ImmutableStorageWithVersioning immutableStorageWithVersioning) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withImmutableStorageWithVersioning(immutableStorageWithVersioning);
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @return the enableNfsV3RootSquash value.
+ */
+ public Boolean enableNfsV3RootSquash() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNfsV3RootSquash();
+ }
+
+ /**
+ * Set the enableNfsV3RootSquash property: Enable NFSv3 root squash on blob container.
+ *
+ * @param enableNfsV3RootSquash the enableNfsV3RootSquash value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withEnableNfsV3RootSquash(Boolean enableNfsV3RootSquash) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withEnableNfsV3RootSquash(enableNfsV3RootSquash);
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @return the enableNfsV3AllSquash value.
+ */
+ public Boolean enableNfsV3AllSquash() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNfsV3AllSquash();
+ }
+
+ /**
+ * Set the enableNfsV3AllSquash property: Enable NFSv3 all squash on blob container.
+ *
+ * @param enableNfsV3AllSquash the enableNfsV3AllSquash value to set.
+ * @return the ListContainerItemInner object itself.
+ */
+ public ListContainerItemInner withEnableNfsV3AllSquash(Boolean enableNfsV3AllSquash) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContainerProperties();
+ }
+ this.innerProperties().withEnableNfsV3AllSquash(enableNfsV3AllSquash);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueInner.java
new file mode 100644
index 000000000000..dfcfdf2c878d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueInner.java
@@ -0,0 +1,63 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The ListQueue model. */
+@Fluent
+public final class ListQueueInner extends ProxyResource {
+ /*
+ * List Queue resource properties.
+ */
+ @JsonProperty(value = "properties")
+ private ListQueueProperties innerQueueProperties;
+
+ /**
+ * Get the innerQueueProperties property: List Queue resource properties.
+ *
+ * @return the innerQueueProperties value.
+ */
+ private ListQueueProperties innerQueueProperties() {
+ return this.innerQueueProperties;
+ }
+
+ /**
+ * Get the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerQueueProperties() == null ? null : this.innerQueueProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the ListQueueInner object itself.
+ */
+ public ListQueueInner withMetadata(Map metadata) {
+ if (this.innerQueueProperties() == null) {
+ this.innerQueueProperties = new ListQueueProperties();
+ }
+ this.innerQueueProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerQueueProperties() != null) {
+ innerQueueProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueProperties.java
new file mode 100644
index 000000000000..42cee2323c5b
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueProperties.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The ListQueueProperties model. */
+@Fluent
+public final class ListQueueProperties {
+ /*
+ * A name-value pair that represents queue metadata.
+ */
+ @JsonProperty(value = "metadata")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map metadata;
+
+ /**
+ * Get the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the ListQueueProperties object itself.
+ */
+ public ListQueueProperties withMetadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueServicesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueServicesInner.java
new file mode 100644
index 000000000000..8be7e8826217
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListQueueServicesInner.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The ListQueueServices model. */
+@Immutable
+public final class ListQueueServicesInner {
+ /*
+ * List of queue services returned.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private List value;
+
+ /**
+ * Get the value property: List of queue services returned.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListServiceSasResponseInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListServiceSasResponseInner.java
new file mode 100644
index 000000000000..21d4262b7352
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListServiceSasResponseInner.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The List service SAS credentials operation response. */
+@Immutable
+public final class ListServiceSasResponseInner {
+ /*
+ * List service SAS credentials of specific resource.
+ */
+ @JsonProperty(value = "serviceSasToken", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceSasToken;
+
+ /**
+ * Get the serviceSasToken property: List service SAS credentials of specific resource.
+ *
+ * @return the serviceSasToken value.
+ */
+ public String serviceSasToken() {
+ return this.serviceSasToken;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListTableServicesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListTableServicesInner.java
new file mode 100644
index 000000000000..a888c037363e
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ListTableServicesInner.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The ListTableServices model. */
+@Immutable
+public final class ListTableServicesInner {
+ /*
+ * List of table services returned.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private List value;
+
+ /**
+ * Get the value property: List of table services returned.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserInner.java
new file mode 100644
index 000000000000..0eac9da489d0
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserInner.java
@@ -0,0 +1,209 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.storage.generated.models.PermissionScope;
+import com.azure.resourcemanager.storage.generated.models.SshPublicKey;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The local user associated with the storage accounts. */
+@Fluent
+public final class LocalUserInner extends ProxyResource {
+ /*
+ * Storage account local user properties.
+ */
+ @JsonProperty(value = "properties")
+ private LocalUserProperties innerProperties;
+
+ /*
+ * Metadata pertaining to creation and last modification of the resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Storage account local user properties.
+ *
+ * @return the innerProperties value.
+ */
+ private LocalUserProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Metadata pertaining to creation and last modification of the resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the permissionScopes property: The permission scopes of the local user.
+ *
+ * @return the permissionScopes value.
+ */
+ public List permissionScopes() {
+ return this.innerProperties() == null ? null : this.innerProperties().permissionScopes();
+ }
+
+ /**
+ * Set the permissionScopes property: The permission scopes of the local user.
+ *
+ * @param permissionScopes the permissionScopes value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withPermissionScopes(List permissionScopes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withPermissionScopes(permissionScopes);
+ return this;
+ }
+
+ /**
+ * Get the homeDirectory property: Optional, local user home directory.
+ *
+ * @return the homeDirectory value.
+ */
+ public String homeDirectory() {
+ return this.innerProperties() == null ? null : this.innerProperties().homeDirectory();
+ }
+
+ /**
+ * Set the homeDirectory property: Optional, local user home directory.
+ *
+ * @param homeDirectory the homeDirectory value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withHomeDirectory(String homeDirectory) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withHomeDirectory(homeDirectory);
+ return this;
+ }
+
+ /**
+ * Get the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @return the sshAuthorizedKeys value.
+ */
+ public List sshAuthorizedKeys() {
+ return this.innerProperties() == null ? null : this.innerProperties().sshAuthorizedKeys();
+ }
+
+ /**
+ * Set the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @param sshAuthorizedKeys the sshAuthorizedKeys value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withSshAuthorizedKeys(List sshAuthorizedKeys) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withSshAuthorizedKeys(sshAuthorizedKeys);
+ return this;
+ }
+
+ /**
+ * Get the sid property: A unique Security Identifier that is generated by the server.
+ *
+ * @return the sid value.
+ */
+ public String sid() {
+ return this.innerProperties() == null ? null : this.innerProperties().sid();
+ }
+
+ /**
+ * Get the hasSharedKey property: Indicates whether shared key exists. Set it to false to remove existing shared
+ * key.
+ *
+ * @return the hasSharedKey value.
+ */
+ public Boolean hasSharedKey() {
+ return this.innerProperties() == null ? null : this.innerProperties().hasSharedKey();
+ }
+
+ /**
+ * Set the hasSharedKey property: Indicates whether shared key exists. Set it to false to remove existing shared
+ * key.
+ *
+ * @param hasSharedKey the hasSharedKey value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withHasSharedKey(Boolean hasSharedKey) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withHasSharedKey(hasSharedKey);
+ return this;
+ }
+
+ /**
+ * Get the hasSshKey property: Indicates whether ssh key exists. Set it to false to remove existing SSH key.
+ *
+ * @return the hasSshKey value.
+ */
+ public Boolean hasSshKey() {
+ return this.innerProperties() == null ? null : this.innerProperties().hasSshKey();
+ }
+
+ /**
+ * Set the hasSshKey property: Indicates whether ssh key exists. Set it to false to remove existing SSH key.
+ *
+ * @param hasSshKey the hasSshKey value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withHasSshKey(Boolean hasSshKey) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withHasSshKey(hasSshKey);
+ return this;
+ }
+
+ /**
+ * Get the hasSshPassword property: Indicates whether ssh password exists. Set it to false to remove existing SSH
+ * password.
+ *
+ * @return the hasSshPassword value.
+ */
+ public Boolean hasSshPassword() {
+ return this.innerProperties() == null ? null : this.innerProperties().hasSshPassword();
+ }
+
+ /**
+ * Set the hasSshPassword property: Indicates whether ssh password exists. Set it to false to remove existing SSH
+ * password.
+ *
+ * @param hasSshPassword the hasSshPassword value to set.
+ * @return the LocalUserInner object itself.
+ */
+ public LocalUserInner withHasSshPassword(Boolean hasSshPassword) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new LocalUserProperties();
+ }
+ this.innerProperties().withHasSshPassword(hasSshPassword);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserKeysInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserKeysInner.java
new file mode 100644
index 000000000000..58e56776ddda
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserKeysInner.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.SshPublicKey;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The Storage Account Local User keys. */
+@Fluent
+public final class LocalUserKeysInner {
+ /*
+ * Optional, local user ssh authorized keys for SFTP.
+ */
+ @JsonProperty(value = "sshAuthorizedKeys")
+ private List sshAuthorizedKeys;
+
+ /*
+ * Auto generated by the server for SMB authentication.
+ */
+ @JsonProperty(value = "sharedKey", access = JsonProperty.Access.WRITE_ONLY)
+ private String sharedKey;
+
+ /**
+ * Get the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @return the sshAuthorizedKeys value.
+ */
+ public List sshAuthorizedKeys() {
+ return this.sshAuthorizedKeys;
+ }
+
+ /**
+ * Set the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @param sshAuthorizedKeys the sshAuthorizedKeys value to set.
+ * @return the LocalUserKeysInner object itself.
+ */
+ public LocalUserKeysInner withSshAuthorizedKeys(List sshAuthorizedKeys) {
+ this.sshAuthorizedKeys = sshAuthorizedKeys;
+ return this;
+ }
+
+ /**
+ * Get the sharedKey property: Auto generated by the server for SMB authentication.
+ *
+ * @return the sharedKey value.
+ */
+ public String sharedKey() {
+ return this.sharedKey;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sshAuthorizedKeys() != null) {
+ sshAuthorizedKeys().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserProperties.java
new file mode 100644
index 000000000000..102493879910
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserProperties.java
@@ -0,0 +1,207 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.PermissionScope;
+import com.azure.resourcemanager.storage.generated.models.SshPublicKey;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The Storage Account Local User properties. */
+@Fluent
+public final class LocalUserProperties {
+ /*
+ * The permission scopes of the local user.
+ */
+ @JsonProperty(value = "permissionScopes")
+ private List permissionScopes;
+
+ /*
+ * Optional, local user home directory.
+ */
+ @JsonProperty(value = "homeDirectory")
+ private String homeDirectory;
+
+ /*
+ * Optional, local user ssh authorized keys for SFTP.
+ */
+ @JsonProperty(value = "sshAuthorizedKeys")
+ private List sshAuthorizedKeys;
+
+ /*
+ * A unique Security Identifier that is generated by the server.
+ */
+ @JsonProperty(value = "sid", access = JsonProperty.Access.WRITE_ONLY)
+ private String sid;
+
+ /*
+ * Indicates whether shared key exists. Set it to false to remove existing
+ * shared key.
+ */
+ @JsonProperty(value = "hasSharedKey")
+ private Boolean hasSharedKey;
+
+ /*
+ * Indicates whether ssh key exists. Set it to false to remove existing SSH
+ * key.
+ */
+ @JsonProperty(value = "hasSshKey")
+ private Boolean hasSshKey;
+
+ /*
+ * Indicates whether ssh password exists. Set it to false to remove
+ * existing SSH password.
+ */
+ @JsonProperty(value = "hasSshPassword")
+ private Boolean hasSshPassword;
+
+ /**
+ * Get the permissionScopes property: The permission scopes of the local user.
+ *
+ * @return the permissionScopes value.
+ */
+ public List permissionScopes() {
+ return this.permissionScopes;
+ }
+
+ /**
+ * Set the permissionScopes property: The permission scopes of the local user.
+ *
+ * @param permissionScopes the permissionScopes value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withPermissionScopes(List permissionScopes) {
+ this.permissionScopes = permissionScopes;
+ return this;
+ }
+
+ /**
+ * Get the homeDirectory property: Optional, local user home directory.
+ *
+ * @return the homeDirectory value.
+ */
+ public String homeDirectory() {
+ return this.homeDirectory;
+ }
+
+ /**
+ * Set the homeDirectory property: Optional, local user home directory.
+ *
+ * @param homeDirectory the homeDirectory value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withHomeDirectory(String homeDirectory) {
+ this.homeDirectory = homeDirectory;
+ return this;
+ }
+
+ /**
+ * Get the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @return the sshAuthorizedKeys value.
+ */
+ public List sshAuthorizedKeys() {
+ return this.sshAuthorizedKeys;
+ }
+
+ /**
+ * Set the sshAuthorizedKeys property: Optional, local user ssh authorized keys for SFTP.
+ *
+ * @param sshAuthorizedKeys the sshAuthorizedKeys value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withSshAuthorizedKeys(List sshAuthorizedKeys) {
+ this.sshAuthorizedKeys = sshAuthorizedKeys;
+ return this;
+ }
+
+ /**
+ * Get the sid property: A unique Security Identifier that is generated by the server.
+ *
+ * @return the sid value.
+ */
+ public String sid() {
+ return this.sid;
+ }
+
+ /**
+ * Get the hasSharedKey property: Indicates whether shared key exists. Set it to false to remove existing shared
+ * key.
+ *
+ * @return the hasSharedKey value.
+ */
+ public Boolean hasSharedKey() {
+ return this.hasSharedKey;
+ }
+
+ /**
+ * Set the hasSharedKey property: Indicates whether shared key exists. Set it to false to remove existing shared
+ * key.
+ *
+ * @param hasSharedKey the hasSharedKey value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withHasSharedKey(Boolean hasSharedKey) {
+ this.hasSharedKey = hasSharedKey;
+ return this;
+ }
+
+ /**
+ * Get the hasSshKey property: Indicates whether ssh key exists. Set it to false to remove existing SSH key.
+ *
+ * @return the hasSshKey value.
+ */
+ public Boolean hasSshKey() {
+ return this.hasSshKey;
+ }
+
+ /**
+ * Set the hasSshKey property: Indicates whether ssh key exists. Set it to false to remove existing SSH key.
+ *
+ * @param hasSshKey the hasSshKey value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withHasSshKey(Boolean hasSshKey) {
+ this.hasSshKey = hasSshKey;
+ return this;
+ }
+
+ /**
+ * Get the hasSshPassword property: Indicates whether ssh password exists. Set it to false to remove existing SSH
+ * password.
+ *
+ * @return the hasSshPassword value.
+ */
+ public Boolean hasSshPassword() {
+ return this.hasSshPassword;
+ }
+
+ /**
+ * Set the hasSshPassword property: Indicates whether ssh password exists. Set it to false to remove existing SSH
+ * password.
+ *
+ * @param hasSshPassword the hasSshPassword value to set.
+ * @return the LocalUserProperties object itself.
+ */
+ public LocalUserProperties withHasSshPassword(Boolean hasSshPassword) {
+ this.hasSshPassword = hasSshPassword;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (permissionScopes() != null) {
+ permissionScopes().forEach(e -> e.validate());
+ }
+ if (sshAuthorizedKeys() != null) {
+ sshAuthorizedKeys().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserRegeneratePasswordResultInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserRegeneratePasswordResultInner.java
new file mode 100644
index 000000000000..16af06932626
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/LocalUserRegeneratePasswordResultInner.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The secrets of Storage Account Local User. */
+@Immutable
+public final class LocalUserRegeneratePasswordResultInner {
+ /*
+ * Auto generated password by the server for SSH authentication if
+ * hasSshPassword is set to true on the creation of local user.
+ */
+ @JsonProperty(value = "sshPassword", access = JsonProperty.Access.WRITE_ONLY)
+ private String sshPassword;
+
+ /**
+ * Get the sshPassword property: Auto generated password by the server for SSH authentication if hasSshPassword is
+ * set to true on the creation of local user.
+ *
+ * @return the sshPassword value.
+ */
+ public String sshPassword() {
+ return this.sshPassword;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyInner.java
new file mode 100644
index 000000000000..7f5111c97532
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyInner.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicySchema;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The Get Storage Account ManagementPolicies operation response. */
+@Fluent
+public final class ManagementPolicyInner extends ProxyResource {
+ /*
+ * Returns the Storage Account Data Policies Rules.
+ */
+ @JsonProperty(value = "properties")
+ private ManagementPolicyProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Returns the Storage Account Data Policies Rules.
+ *
+ * @return the innerProperties value.
+ */
+ private ManagementPolicyProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the ManagementPolicies was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the policy property: 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 policy value.
+ */
+ public ManagementPolicySchema policy() {
+ return this.innerProperties() == null ? null : this.innerProperties().policy();
+ }
+
+ /**
+ * Set the policy property: The Storage Account ManagementPolicy, in JSON format. See more details in:
+ * https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ *
+ * @param policy the policy value to set.
+ * @return the ManagementPolicyInner object itself.
+ */
+ public ManagementPolicyInner withPolicy(ManagementPolicySchema policy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ManagementPolicyProperties();
+ }
+ this.innerProperties().withPolicy(policy);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyProperties.java
new file mode 100644
index 000000000000..bf4a21c15f8d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ManagementPolicyProperties.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.ManagementPolicySchema;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The Storage Account ManagementPolicy properties. */
+@Fluent
+public final class ManagementPolicyProperties {
+ /*
+ * Returns the date and time the ManagementPolicies was last modified.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The Storage Account ManagementPolicy, in JSON format. See more details
+ * in:
+ * https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ */
+ @JsonProperty(value = "policy", required = true)
+ private ManagementPolicySchema policy;
+
+ /**
+ * Get the lastModifiedTime property: Returns the date and time the ManagementPolicies was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the policy property: 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 policy value.
+ */
+ public ManagementPolicySchema policy() {
+ return this.policy;
+ }
+
+ /**
+ * Set the policy property: The Storage Account ManagementPolicy, in JSON format. See more details in:
+ * https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
+ *
+ * @param policy the policy value to set.
+ * @return the ManagementPolicyProperties object itself.
+ */
+ public ManagementPolicyProperties withPolicy(ManagementPolicySchema policy) {
+ this.policy = policy;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (policy() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property policy in model ManagementPolicyProperties"));
+ } else {
+ policy().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ManagementPolicyProperties.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyInner.java
new file mode 100644
index 000000000000..fcef72f629e9
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyInner.java
@@ -0,0 +1,133 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPolicyRule;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The replication policy between two storage accounts. Multiple rules can be defined in one policy. */
+@Fluent
+public final class ObjectReplicationPolicyInner extends ProxyResource {
+ /*
+ * Returns the Storage Account Object Replication Policy.
+ */
+ @JsonProperty(value = "properties")
+ private ObjectReplicationPolicyProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Returns the Storage Account Object Replication Policy.
+ *
+ * @return the innerProperties value.
+ */
+ private ObjectReplicationPolicyProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the policyId property: A unique id for object replication policy.
+ *
+ * @return the policyId value.
+ */
+ public String policyId() {
+ return this.innerProperties() == null ? null : this.innerProperties().policyId();
+ }
+
+ /**
+ * Get the enabledTime property: Indicates when the policy is enabled on the source account.
+ *
+ * @return the enabledTime value.
+ */
+ public OffsetDateTime enabledTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().enabledTime();
+ }
+
+ /**
+ * Get the sourceAccount property: Required. Source account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @return the sourceAccount value.
+ */
+ public String sourceAccount() {
+ return this.innerProperties() == null ? null : this.innerProperties().sourceAccount();
+ }
+
+ /**
+ * Set the sourceAccount property: Required. Source account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @param sourceAccount the sourceAccount value to set.
+ * @return the ObjectReplicationPolicyInner object itself.
+ */
+ public ObjectReplicationPolicyInner withSourceAccount(String sourceAccount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ObjectReplicationPolicyProperties();
+ }
+ this.innerProperties().withSourceAccount(sourceAccount);
+ return this;
+ }
+
+ /**
+ * Get the destinationAccount property: Required. Destination account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @return the destinationAccount value.
+ */
+ public String destinationAccount() {
+ return this.innerProperties() == null ? null : this.innerProperties().destinationAccount();
+ }
+
+ /**
+ * Set the destinationAccount property: Required. Destination account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @param destinationAccount the destinationAccount value to set.
+ * @return the ObjectReplicationPolicyInner object itself.
+ */
+ public ObjectReplicationPolicyInner withDestinationAccount(String destinationAccount) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ObjectReplicationPolicyProperties();
+ }
+ this.innerProperties().withDestinationAccount(destinationAccount);
+ return this;
+ }
+
+ /**
+ * Get the rules property: The storage account object replication rules.
+ *
+ * @return the rules value.
+ */
+ public List rules() {
+ return this.innerProperties() == null ? null : this.innerProperties().rules();
+ }
+
+ /**
+ * Set the rules property: The storage account object replication rules.
+ *
+ * @param rules the rules value to set.
+ * @return the ObjectReplicationPolicyInner object itself.
+ */
+ public ObjectReplicationPolicyInner withRules(List rules) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ObjectReplicationPolicyProperties();
+ }
+ this.innerProperties().withRules(rules);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyProperties.java
new file mode 100644
index 000000000000..847aeaaa7962
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/ObjectReplicationPolicyProperties.java
@@ -0,0 +1,155 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.ObjectReplicationPolicyRule;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The Storage Account ObjectReplicationPolicy properties. */
+@Fluent
+public final class ObjectReplicationPolicyProperties {
+ /*
+ * A unique id for object replication policy.
+ */
+ @JsonProperty(value = "policyId", access = JsonProperty.Access.WRITE_ONLY)
+ private String policyId;
+
+ /*
+ * Indicates when the policy is enabled on the source account.
+ */
+ @JsonProperty(value = "enabledTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime enabledTime;
+
+ /*
+ * Required. Source account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ */
+ @JsonProperty(value = "sourceAccount", required = true)
+ private String sourceAccount;
+
+ /*
+ * Required. Destination account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ */
+ @JsonProperty(value = "destinationAccount", required = true)
+ private String destinationAccount;
+
+ /*
+ * The storage account object replication rules.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get the policyId property: A unique id for object replication policy.
+ *
+ * @return the policyId value.
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Get the enabledTime property: Indicates when the policy is enabled on the source account.
+ *
+ * @return the enabledTime value.
+ */
+ public OffsetDateTime enabledTime() {
+ return this.enabledTime;
+ }
+
+ /**
+ * Get the sourceAccount property: Required. Source account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @return the sourceAccount value.
+ */
+ public String sourceAccount() {
+ return this.sourceAccount;
+ }
+
+ /**
+ * Set the sourceAccount property: Required. Source account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @param sourceAccount the sourceAccount value to set.
+ * @return the ObjectReplicationPolicyProperties object itself.
+ */
+ public ObjectReplicationPolicyProperties withSourceAccount(String sourceAccount) {
+ this.sourceAccount = sourceAccount;
+ return this;
+ }
+
+ /**
+ * Get the destinationAccount property: Required. Destination account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @return the destinationAccount value.
+ */
+ public String destinationAccount() {
+ return this.destinationAccount;
+ }
+
+ /**
+ * Set the destinationAccount property: Required. Destination account name. It should be full resource id if
+ * allowCrossTenantReplication set to false.
+ *
+ * @param destinationAccount the destinationAccount value to set.
+ * @return the ObjectReplicationPolicyProperties object itself.
+ */
+ public ObjectReplicationPolicyProperties withDestinationAccount(String destinationAccount) {
+ this.destinationAccount = destinationAccount;
+ return this;
+ }
+
+ /**
+ * Get the rules property: The storage account object replication rules.
+ *
+ * @return the rules value.
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set the rules property: The storage account object replication rules.
+ *
+ * @param rules the rules value to set.
+ * @return the ObjectReplicationPolicyProperties object itself.
+ */
+ public ObjectReplicationPolicyProperties withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sourceAccount() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sourceAccount in model ObjectReplicationPolicyProperties"));
+ }
+ if (destinationAccount() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property destinationAccount in model ObjectReplicationPolicyProperties"));
+ }
+ if (rules() != null) {
+ rules().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ObjectReplicationPolicyProperties.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..50b5c51f2d0d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationInner.java
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.OperationDisplay;
+import com.azure.resourcemanager.storage.generated.models.ServiceSpecification;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Storage REST API operation definition. */
+@Fluent
+public final class OperationInner {
+ /*
+ * Operation name: {provider}/{resource}/{operation}
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Display metadata associated with the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The origin of operations.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /*
+ * Properties of operation, include metric specifications.
+ */
+ @JsonProperty(value = "properties")
+ private OperationProperties innerOperationProperties;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display metadata associated with the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display metadata associated with the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The origin of operations.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The origin of operations.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the innerOperationProperties property: Properties of operation, include metric specifications.
+ *
+ * @return the innerOperationProperties value.
+ */
+ private OperationProperties innerOperationProperties() {
+ return this.innerOperationProperties;
+ }
+
+ /**
+ * Get the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @return the serviceSpecification value.
+ */
+ public ServiceSpecification serviceSpecification() {
+ return this.innerOperationProperties() == null ? null : this.innerOperationProperties().serviceSpecification();
+ }
+
+ /**
+ * Set the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @param serviceSpecification the serviceSpecification value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withServiceSpecification(ServiceSpecification serviceSpecification) {
+ if (this.innerOperationProperties() == null) {
+ this.innerOperationProperties = new OperationProperties();
+ }
+ this.innerOperationProperties().withServiceSpecification(serviceSpecification);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ if (innerOperationProperties() != null) {
+ innerOperationProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationProperties.java
new file mode 100644
index 000000000000..2e6118de017d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/OperationProperties.java
@@ -0,0 +1,50 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.ServiceSpecification;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of operation, include metric specifications. */
+@Fluent
+public final class OperationProperties {
+ /*
+ * One property of operation, include metric specifications.
+ */
+ @JsonProperty(value = "serviceSpecification")
+ private ServiceSpecification serviceSpecification;
+
+ /**
+ * Get the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @return the serviceSpecification value.
+ */
+ public ServiceSpecification serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @param serviceSpecification the serviceSpecification value to set.
+ * @return the OperationProperties object itself.
+ */
+ public OperationProperties withServiceSpecification(ServiceSpecification serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (serviceSpecification() != null) {
+ serviceSpecification().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionInner.java
new file mode 100644
index 000000000000..3076878ff6a6
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,100 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpoint;
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.storage.generated.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Private Endpoint Connection resource. */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+ /*
+ * Resource properties.
+ */
+ @JsonProperty(value = "properties")
+ private PrivateEndpointConnectionProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Resource properties.
+ *
+ * @return the innerProperties value.
+ */
+ private PrivateEndpointConnectionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the privateEndpoint property: The resource of private end point.
+ *
+ * @return the privateEndpoint value.
+ */
+ public PrivateEndpoint privateEndpoint() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateEndpoint();
+ }
+
+ /**
+ * Set the privateEndpoint property: The resource of private end point.
+ *
+ * @param privateEndpoint the privateEndpoint value to set.
+ * @return the PrivateEndpointConnectionInner object itself.
+ */
+ public PrivateEndpointConnectionInner withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PrivateEndpointConnectionProperties();
+ }
+ this.innerProperties().withPrivateEndpoint(privateEndpoint);
+ return this;
+ }
+
+ /**
+ * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @return the privateLinkServiceConnectionState value.
+ */
+ public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateLinkServiceConnectionState();
+ }
+
+ /**
+ * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+ * @return the PrivateEndpointConnectionInner object itself.
+ */
+ public PrivateEndpointConnectionInner withPrivateLinkServiceConnectionState(
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PrivateEndpointConnectionProperties();
+ }
+ this.innerProperties().withPrivateLinkServiceConnectionState(privateLinkServiceConnectionState);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the private endpoint connection resource.
+ *
+ * @return the provisioningState value.
+ */
+ public PrivateEndpointConnectionProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionProperties.java
new file mode 100644
index 000000000000..b762f3e4e60a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateEndpointConnectionProperties.java
@@ -0,0 +1,109 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpoint;
+import com.azure.resourcemanager.storage.generated.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.storage.generated.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of the PrivateEndpointConnectProperties. */
+@Fluent
+public final class PrivateEndpointConnectionProperties {
+ /*
+ * The resource of private end point.
+ */
+ @JsonProperty(value = "privateEndpoint")
+ private PrivateEndpoint privateEndpoint;
+
+ /*
+ * A collection of information about the state of the connection between
+ * service consumer and provider.
+ */
+ @JsonProperty(value = "privateLinkServiceConnectionState", required = true)
+ private PrivateLinkServiceConnectionState privateLinkServiceConnectionState;
+
+ /*
+ * The provisioning state of the private endpoint connection resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private PrivateEndpointConnectionProvisioningState provisioningState;
+
+ /**
+ * Get the privateEndpoint property: The resource of private end point.
+ *
+ * @return the privateEndpoint value.
+ */
+ public PrivateEndpoint privateEndpoint() {
+ return this.privateEndpoint;
+ }
+
+ /**
+ * Set the privateEndpoint property: The resource of private end point.
+ *
+ * @param privateEndpoint the privateEndpoint value to set.
+ * @return the PrivateEndpointConnectionProperties object itself.
+ */
+ public PrivateEndpointConnectionProperties withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+ this.privateEndpoint = privateEndpoint;
+ return this;
+ }
+
+ /**
+ * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @return the privateLinkServiceConnectionState value.
+ */
+ public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+ return this.privateLinkServiceConnectionState;
+ }
+
+ /**
+ * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+ * between service consumer and provider.
+ *
+ * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+ * @return the PrivateEndpointConnectionProperties object itself.
+ */
+ public PrivateEndpointConnectionProperties withPrivateLinkServiceConnectionState(
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+ this.privateLinkServiceConnectionState = privateLinkServiceConnectionState;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the private endpoint connection resource.
+ *
+ * @return the provisioningState value.
+ */
+ public PrivateEndpointConnectionProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (privateEndpoint() != null) {
+ privateEndpoint().validate();
+ }
+ if (privateLinkServiceConnectionState() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property privateLinkServiceConnectionState in model"
+ + " PrivateEndpointConnectionProperties"));
+ } else {
+ privateLinkServiceConnectionState().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PrivateEndpointConnectionProperties.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceListResultInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceListResultInner.java
new file mode 100644
index 000000000000..4f61dd8236c2
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceListResultInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.PrivateLinkResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private link resources. */
+@Fluent
+public final class PrivateLinkResourceListResultInner {
+ /*
+ * Array of private link resources
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: Array of private link resources.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: Array of private link resources.
+ *
+ * @param value the value value to set.
+ * @return the PrivateLinkResourceListResultInner object itself.
+ */
+ public PrivateLinkResourceListResultInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceProperties.java
new file mode 100644
index 000000000000..bca44d6247f8
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/PrivateLinkResourceProperties.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Properties of a private link resource. */
+@Fluent
+public final class PrivateLinkResourceProperties {
+ /*
+ * The private link resource group id.
+ */
+ @JsonProperty(value = "groupId", access = JsonProperty.Access.WRITE_ONLY)
+ private String groupId;
+
+ /*
+ * The private link resource required member names.
+ */
+ @JsonProperty(value = "requiredMembers", access = JsonProperty.Access.WRITE_ONLY)
+ private List requiredMembers;
+
+ /*
+ * The private link resource Private link DNS zone name.
+ */
+ @JsonProperty(value = "requiredZoneNames")
+ private List requiredZoneNames;
+
+ /**
+ * Get the groupId property: The private link resource group id.
+ *
+ * @return the groupId value.
+ */
+ public String groupId() {
+ return this.groupId;
+ }
+
+ /**
+ * Get the requiredMembers property: The private link resource required member names.
+ *
+ * @return the requiredMembers value.
+ */
+ public List requiredMembers() {
+ return this.requiredMembers;
+ }
+
+ /**
+ * Get the requiredZoneNames property: The private link resource Private link DNS zone name.
+ *
+ * @return the requiredZoneNames value.
+ */
+ public List requiredZoneNames() {
+ return this.requiredZoneNames;
+ }
+
+ /**
+ * Set the requiredZoneNames property: The private link resource Private link DNS zone name.
+ *
+ * @param requiredZoneNames the requiredZoneNames value to set.
+ * @return the PrivateLinkResourceProperties object itself.
+ */
+ public PrivateLinkResourceProperties withRequiredZoneNames(List requiredZoneNames) {
+ this.requiredZoneNames = requiredZoneNames;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueProperties.java
new file mode 100644
index 000000000000..07910cd0bf65
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueProperties.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The QueueProperties model. */
+@Fluent
+public final class QueueProperties {
+ /*
+ * A name-value pair that represents queue metadata.
+ */
+ @JsonProperty(value = "metadata")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map metadata;
+
+ /*
+ * Integer indicating an approximate number of messages in the queue. This
+ * number is not lower than the actual number of messages in the queue, but
+ * could be higher.
+ */
+ @JsonProperty(value = "approximateMessageCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer approximateMessageCount;
+
+ /**
+ * Get the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.metadata;
+ }
+
+ /**
+ * Set the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the QueueProperties object itself.
+ */
+ public QueueProperties withMetadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get the approximateMessageCount property: Integer indicating an approximate number of messages in the queue. This
+ * number is not lower than the actual number of messages in the queue, but could be higher.
+ *
+ * @return the approximateMessageCount value.
+ */
+ public Integer approximateMessageCount() {
+ return this.approximateMessageCount;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesInner.java
new file mode 100644
index 000000000000..9ae89e023b12
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesInner.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Queue service. */
+@Fluent
+public final class QueueServicePropertiesInner extends ProxyResource {
+ /*
+ * The properties of a storage account’s Queue service.
+ */
+ @JsonProperty(value = "properties")
+ private QueueServicePropertiesProperties innerQueueServiceProperties;
+
+ /**
+ * Get the innerQueueServiceProperties property: The properties of a storage account’s Queue service.
+ *
+ * @return the innerQueueServiceProperties value.
+ */
+ private QueueServicePropertiesProperties innerQueueServiceProperties() {
+ return this.innerQueueServiceProperties;
+ }
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.innerQueueServiceProperties() == null ? null : this.innerQueueServiceProperties().cors();
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the QueueServicePropertiesInner object itself.
+ */
+ public QueueServicePropertiesInner withCors(CorsRules cors) {
+ if (this.innerQueueServiceProperties() == null) {
+ this.innerQueueServiceProperties = new QueueServicePropertiesProperties();
+ }
+ this.innerQueueServiceProperties().withCors(cors);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerQueueServiceProperties() != null) {
+ innerQueueServiceProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesProperties.java
new file mode 100644
index 000000000000..eb5104c57b2e
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/QueueServicePropertiesProperties.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Queue service. */
+@Fluent
+public final class QueueServicePropertiesProperties {
+ /*
+ * 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.
+ */
+ @JsonProperty(value = "cors")
+ private CorsRules cors;
+
+ /**
+ * Get the cors property: 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 cors value.
+ */
+ public CorsRules cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the cors property: 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.
+ *
+ * @param cors the cors value to set.
+ * @return the QueueServicePropertiesProperties object itself.
+ */
+ public QueueServicePropertiesProperties withCors(CorsRules cors) {
+ this.cors = cors;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (cors() != null) {
+ cors().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/SkuInformationInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/SkuInformationInner.java
new file mode 100644
index 000000000000..860b5fd308a7
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/SkuInformationInner.java
@@ -0,0 +1,178 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.storage.generated.models.Kind;
+import com.azure.resourcemanager.storage.generated.models.Restriction;
+import com.azure.resourcemanager.storage.generated.models.SkuCapability;
+import com.azure.resourcemanager.storage.generated.models.SkuName;
+import com.azure.resourcemanager.storage.generated.models.SkuTier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Storage SKU and its properties. */
+@Fluent
+public final class SkuInformationInner {
+ /*
+ * The SKU name. Required for account creation; optional for update. Note
+ * that in older versions, SKU name was called accountType.
+ */
+ @JsonProperty(value = "name", required = true)
+ private SkuName name;
+
+ /*
+ * The SKU tier. This is based on the SKU name.
+ */
+ @JsonProperty(value = "tier", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuTier tier;
+
+ /*
+ * The type of the resource, usually it is 'storageAccounts'.
+ */
+ @JsonProperty(value = "resourceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceType;
+
+ /*
+ * Indicates the type of storage account.
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private Kind kind;
+
+ /*
+ * The set of locations that the SKU is available. This will be supported
+ * and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia,
+ * etc.).
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /*
+ * The capability information in the specified SKU, including file
+ * encryption, network ACLs, change notification, etc.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /*
+ * The restrictions because of which SKU cannot be used. This is empty if
+ * there are no restrictions.
+ */
+ @JsonProperty(value = "restrictions")
+ private List restrictions;
+
+ /**
+ * Get the name property: The SKU name. Required for account creation; optional for update. Note that in older
+ * versions, SKU name was called accountType.
+ *
+ * @return the name value.
+ */
+ public SkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The SKU name. Required for account creation; optional for update. Note that in older
+ * versions, SKU name was called accountType.
+ *
+ * @param name the name value to set.
+ * @return the SkuInformationInner object itself.
+ */
+ public SkuInformationInner withName(SkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier property: The SKU tier. This is based on the SKU name.
+ *
+ * @return the tier value.
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Get the resourceType property: The type of the resource, usually it is 'storageAccounts'.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Get the kind property: Indicates the type of storage account.
+ *
+ * @return the kind value.
+ */
+ public Kind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get the locations property: The set of locations that the SKU is available. This will be supported and registered
+ * Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.).
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the capabilities property: The capability information in the specified SKU, including file encryption,
+ * network ACLs, change notification, etc.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Get the restrictions property: The restrictions because of which SKU cannot be used. This is empty if there are
+ * no restrictions.
+ *
+ * @return the restrictions value.
+ */
+ public List restrictions() {
+ return this.restrictions;
+ }
+
+ /**
+ * Set the restrictions property: The restrictions because of which SKU cannot be used. This is empty if there are
+ * no restrictions.
+ *
+ * @param restrictions the restrictions value to set.
+ * @return the SkuInformationInner object itself.
+ */
+ public SkuInformationInner withRestrictions(List restrictions) {
+ this.restrictions = restrictions;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property name in model SkuInformationInner"));
+ }
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ if (restrictions() != null) {
+ restrictions().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(SkuInformationInner.class);
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountInner.java
new file mode 100644
index 000000000000..d1f5d21c6d16
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountInner.java
@@ -0,0 +1,812 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.resourcemanager.storage.generated.models.AccessTier;
+import com.azure.resourcemanager.storage.generated.models.AccountStatus;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.AzureFilesIdentityBasedAuthentication;
+import com.azure.resourcemanager.storage.generated.models.CustomDomain;
+import com.azure.resourcemanager.storage.generated.models.DnsEndpointType;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.Endpoints;
+import com.azure.resourcemanager.storage.generated.models.ExtendedLocation;
+import com.azure.resourcemanager.storage.generated.models.GeoReplicationStats;
+import com.azure.resourcemanager.storage.generated.models.Identity;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyCreationTime;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.Kind;
+import com.azure.resourcemanager.storage.generated.models.LargeFileSharesState;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.ProvisioningState;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.azure.resourcemanager.storage.generated.models.Sku;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountSkuConversionStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The storage account. */
+@Fluent
+public final class StorageAccountInner extends Resource {
+ /*
+ * Gets the SKU.
+ */
+ @JsonProperty(value = "sku", access = JsonProperty.Access.WRITE_ONLY)
+ private Sku sku;
+
+ /*
+ * Gets the Kind.
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private Kind kind;
+
+ /*
+ * The identity of the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /*
+ * The extendedLocation of the resource.
+ */
+ @JsonProperty(value = "extendedLocation")
+ private ExtendedLocation extendedLocation;
+
+ /*
+ * Properties of the storage account.
+ */
+ @JsonProperty(value = "properties")
+ private StorageAccountPropertiesInner innerProperties;
+
+ /**
+ * Get the sku property: Gets the SKU.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Get the kind property: Gets the Kind.
+ *
+ * @return the kind value.
+ */
+ public Kind kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get the identity property: The identity of the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The identity of the resource.
+ *
+ * @param identity the identity value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @return the extendedLocation value.
+ */
+ public ExtendedLocation extendedLocation() {
+ return this.extendedLocation;
+ }
+
+ /**
+ * Set the extendedLocation property: The extendedLocation of the resource.
+ *
+ * @param extendedLocation the extendedLocation value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withExtendedLocation(ExtendedLocation extendedLocation) {
+ this.extendedLocation = extendedLocation;
+ return this;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of the storage account.
+ *
+ * @return the innerProperties value.
+ */
+ private StorageAccountPropertiesInner innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public StorageAccountInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public StorageAccountInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Gets the status of the storage account at the time the operation was called.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the primaryEndpoints property: Gets the URLs that are used to perform a retrieval of a public blob, queue, or
+ * table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint.
+ *
+ * @return the primaryEndpoints value.
+ */
+ public Endpoints primaryEndpoints() {
+ return this.innerProperties() == null ? null : this.innerProperties().primaryEndpoints();
+ }
+
+ /**
+ * Get the primaryLocation property: Gets the location of the primary data center for the storage account.
+ *
+ * @return the primaryLocation value.
+ */
+ public String primaryLocation() {
+ return this.innerProperties() == null ? null : this.innerProperties().primaryLocation();
+ }
+
+ /**
+ * Get the statusOfPrimary property: Gets the status indicating whether the primary location of the storage account
+ * is available or unavailable.
+ *
+ * @return the statusOfPrimary value.
+ */
+ public AccountStatus statusOfPrimary() {
+ return this.innerProperties() == null ? null : this.innerProperties().statusOfPrimary();
+ }
+
+ /**
+ * Get the lastGeoFailoverTime property: Gets the timestamp of the most recent instance of a failover to the
+ * secondary location. Only the most recent timestamp is retained. This element is not returned if there has never
+ * been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the lastGeoFailoverTime value.
+ */
+ public OffsetDateTime lastGeoFailoverTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastGeoFailoverTime();
+ }
+
+ /**
+ * Get the secondaryLocation property: Gets the location of the geo-replicated secondary for the storage account.
+ * Only available if the accountType is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the secondaryLocation value.
+ */
+ public String secondaryLocation() {
+ return this.innerProperties() == null ? null : this.innerProperties().secondaryLocation();
+ }
+
+ /**
+ * Get the statusOfSecondary property: Gets the status indicating whether the secondary location of the storage
+ * account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the statusOfSecondary value.
+ */
+ public AccountStatus statusOfSecondary() {
+ return this.innerProperties() == null ? null : this.innerProperties().statusOfSecondary();
+ }
+
+ /**
+ * Get the creationTime property: Gets the creation date and time of the storage account in UTC.
+ *
+ * @return the creationTime value.
+ */
+ public OffsetDateTime creationTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().creationTime();
+ }
+
+ /**
+ * Get the customDomain property: Gets the custom domain the user assigned to this storage account.
+ *
+ * @return the customDomain value.
+ */
+ public CustomDomain customDomain() {
+ return this.innerProperties() == null ? null : this.innerProperties().customDomain();
+ }
+
+ /**
+ * Get the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @return the sasPolicy value.
+ */
+ public SasPolicy sasPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().sasPolicy();
+ }
+
+ /**
+ * Get the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @return the keyPolicy value.
+ */
+ public KeyPolicy keyPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().keyPolicy();
+ }
+
+ /**
+ * Get the keyCreationTime property: Storage account keys creation time.
+ *
+ * @return the keyCreationTime value.
+ */
+ public KeyCreationTime keyCreationTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().keyCreationTime();
+ }
+
+ /**
+ * Get the secondaryEndpoints property: Gets the URLs that are used to perform a retrieval of a public blob, queue,
+ * or table object from the secondary location of the storage account. Only available if the SKU name is
+ * Standard_RAGRS.
+ *
+ * @return the secondaryEndpoints value.
+ */
+ public Endpoints secondaryEndpoints() {
+ return this.innerProperties() == null ? null : this.innerProperties().secondaryEndpoints();
+ }
+
+ /**
+ * Get the encryption property: Encryption settings to be used for server-side encryption for the storage account.
+ *
+ * @return the encryption value.
+ */
+ public Encryption encryption() {
+ return this.innerProperties() == null ? null : this.innerProperties().encryption();
+ }
+
+ /**
+ * Get the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @return the accessTier value.
+ */
+ public AccessTier accessTier() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessTier();
+ }
+
+ /**
+ * Get the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @return the azureFilesIdentityBasedAuthentication value.
+ */
+ public AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication() {
+ return this.innerProperties() == null ? null : this.innerProperties().azureFilesIdentityBasedAuthentication();
+ }
+
+ /**
+ * Set the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @param azureFilesIdentityBasedAuthentication the azureFilesIdentityBasedAuthentication value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withAzureFilesIdentityBasedAuthentication(
+ AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withAzureFilesIdentityBasedAuthentication(azureFilesIdentityBasedAuthentication);
+ return this;
+ }
+
+ /**
+ * Get the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @return the enableHttpsTrafficOnly value.
+ */
+ public Boolean enableHttpsTrafficOnly() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableHttpsTrafficOnly();
+ }
+
+ /**
+ * Set the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @param enableHttpsTrafficOnly the enableHttpsTrafficOnly value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withEnableHttpsTrafficOnly(Boolean enableHttpsTrafficOnly) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withEnableHttpsTrafficOnly(enableHttpsTrafficOnly);
+ return this;
+ }
+
+ /**
+ * Get the networkRuleSet property: Network rule set.
+ *
+ * @return the networkRuleSet value.
+ */
+ public NetworkRuleSet networkRuleSet() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkRuleSet();
+ }
+
+ /**
+ * Get the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @return the isSftpEnabled value.
+ */
+ public Boolean isSftpEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isSftpEnabled();
+ }
+
+ /**
+ * Set the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @param isSftpEnabled the isSftpEnabled value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withIsSftpEnabled(Boolean isSftpEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withIsSftpEnabled(isSftpEnabled);
+ return this;
+ }
+
+ /**
+ * Get the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @return the isLocalUserEnabled value.
+ */
+ public Boolean isLocalUserEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isLocalUserEnabled();
+ }
+
+ /**
+ * Set the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @param isLocalUserEnabled the isLocalUserEnabled value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withIsLocalUserEnabled(Boolean isLocalUserEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withIsLocalUserEnabled(isLocalUserEnabled);
+ return this;
+ }
+
+ /**
+ * Get the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @return the isHnsEnabled value.
+ */
+ public Boolean isHnsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isHnsEnabled();
+ }
+
+ /**
+ * Set the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @param isHnsEnabled the isHnsEnabled value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withIsHnsEnabled(Boolean isHnsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withIsHnsEnabled(isHnsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the geoReplicationStats property: Geo Replication Stats.
+ *
+ * @return the geoReplicationStats value.
+ */
+ public GeoReplicationStats geoReplicationStats() {
+ return this.innerProperties() == null ? null : this.innerProperties().geoReplicationStats();
+ }
+
+ /**
+ * Get the failoverInProgress property: If the failover is in progress, the value will be true, otherwise, it will
+ * be null.
+ *
+ * @return the failoverInProgress value.
+ */
+ public Boolean failoverInProgress() {
+ return this.innerProperties() == null ? null : this.innerProperties().failoverInProgress();
+ }
+
+ /**
+ * Get the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @return the largeFileSharesState value.
+ */
+ public LargeFileSharesState largeFileSharesState() {
+ return this.innerProperties() == null ? null : this.innerProperties().largeFileSharesState();
+ }
+
+ /**
+ * Set the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @param largeFileSharesState the largeFileSharesState value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withLargeFileSharesState(LargeFileSharesState largeFileSharesState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withLargeFileSharesState(largeFileSharesState);
+ return this;
+ }
+
+ /**
+ * Get the privateEndpointConnections property: List of private endpoint connection associated with the specified
+ * storage account.
+ *
+ * @return the privateEndpointConnections value.
+ */
+ public List privateEndpointConnections() {
+ return this.innerProperties() == null ? null : this.innerProperties().privateEndpointConnections();
+ }
+
+ /**
+ * Get the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @return the routingPreference value.
+ */
+ public RoutingPreference routingPreference() {
+ return this.innerProperties() == null ? null : this.innerProperties().routingPreference();
+ }
+
+ /**
+ * Set the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @param routingPreference the routingPreference value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withRoutingPreference(RoutingPreference routingPreference) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withRoutingPreference(routingPreference);
+ return this;
+ }
+
+ /**
+ * Get the blobRestoreStatus property: Blob restore status.
+ *
+ * @return the blobRestoreStatus value.
+ */
+ public BlobRestoreStatusInner blobRestoreStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().blobRestoreStatus();
+ }
+
+ /**
+ * Get the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @return the allowBlobPublicAccess value.
+ */
+ public Boolean allowBlobPublicAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().allowBlobPublicAccess();
+ }
+
+ /**
+ * Set the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @param allowBlobPublicAccess the allowBlobPublicAccess value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withAllowBlobPublicAccess(Boolean allowBlobPublicAccess) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withAllowBlobPublicAccess(allowBlobPublicAccess);
+ return this;
+ }
+
+ /**
+ * Get the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @return the minimumTlsVersion value.
+ */
+ public MinimumTlsVersion minimumTlsVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().minimumTlsVersion();
+ }
+
+ /**
+ * Set the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @param minimumTlsVersion the minimumTlsVersion value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withMinimumTlsVersion(MinimumTlsVersion minimumTlsVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withMinimumTlsVersion(minimumTlsVersion);
+ return this;
+ }
+
+ /**
+ * Get the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @return the allowSharedKeyAccess value.
+ */
+ public Boolean allowSharedKeyAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().allowSharedKeyAccess();
+ }
+
+ /**
+ * Set the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @param allowSharedKeyAccess the allowSharedKeyAccess value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withAllowSharedKeyAccess(Boolean allowSharedKeyAccess) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withAllowSharedKeyAccess(allowSharedKeyAccess);
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @return the enableNfsV3 value.
+ */
+ public Boolean enableNfsV3() {
+ return this.innerProperties() == null ? null : this.innerProperties().enableNfsV3();
+ }
+
+ /**
+ * Set the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @param enableNfsV3 the enableNfsV3 value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withEnableNfsV3(Boolean enableNfsV3) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withEnableNfsV3(enableNfsV3);
+ return this;
+ }
+
+ /**
+ * Get the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @return the allowCrossTenantReplication value.
+ */
+ public Boolean allowCrossTenantReplication() {
+ return this.innerProperties() == null ? null : this.innerProperties().allowCrossTenantReplication();
+ }
+
+ /**
+ * Set the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @param allowCrossTenantReplication the allowCrossTenantReplication value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withAllowCrossTenantReplication(Boolean allowCrossTenantReplication) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withAllowCrossTenantReplication(allowCrossTenantReplication);
+ return this;
+ }
+
+ /**
+ * Get the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @return the defaultToOAuthAuthentication value.
+ */
+ public Boolean defaultToOAuthAuthentication() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultToOAuthAuthentication();
+ }
+
+ /**
+ * Set the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @param defaultToOAuthAuthentication the defaultToOAuthAuthentication value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withDefaultToOAuthAuthentication(Boolean defaultToOAuthAuthentication) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withDefaultToOAuthAuthentication(defaultToOAuthAuthentication);
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().publicNetworkAccess();
+ }
+
+ /**
+ * Set the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withPublicNetworkAccess(publicNetworkAccess);
+ return this;
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageAccount immutableStorageWithVersioning() {
+ return this.innerProperties() == null ? null : this.innerProperties().immutableStorageWithVersioning();
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withImmutableStorageWithVersioning(
+ ImmutableStorageAccount immutableStorageWithVersioning) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withImmutableStorageWithVersioning(immutableStorageWithVersioning);
+ return this;
+ }
+
+ /**
+ * Get the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @return the allowedCopyScope value.
+ */
+ public AllowedCopyScope allowedCopyScope() {
+ return this.innerProperties() == null ? null : this.innerProperties().allowedCopyScope();
+ }
+
+ /**
+ * Set the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @param allowedCopyScope the allowedCopyScope value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withAllowedCopyScope(AllowedCopyScope allowedCopyScope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withAllowedCopyScope(allowedCopyScope);
+ return this;
+ }
+
+ /**
+ * Get the storageAccountSkuConversionStatus property: This property is readOnly and is set by server during
+ * asynchronous storage account sku conversion operations.
+ *
+ * @return the storageAccountSkuConversionStatus value.
+ */
+ public StorageAccountSkuConversionStatus storageAccountSkuConversionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageAccountSkuConversionStatus();
+ }
+
+ /**
+ * Set the storageAccountSkuConversionStatus property: This property is readOnly and is set by server during
+ * asynchronous storage account sku conversion operations.
+ *
+ * @param storageAccountSkuConversionStatus the storageAccountSkuConversionStatus value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withStorageAccountSkuConversionStatus(
+ StorageAccountSkuConversionStatus storageAccountSkuConversionStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withStorageAccountSkuConversionStatus(storageAccountSkuConversionStatus);
+ return this;
+ }
+
+ /**
+ * Get the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @return the dnsEndpointType value.
+ */
+ public DnsEndpointType dnsEndpointType() {
+ return this.innerProperties() == null ? null : this.innerProperties().dnsEndpointType();
+ }
+
+ /**
+ * Set the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @param dnsEndpointType the dnsEndpointType value to set.
+ * @return the StorageAccountInner object itself.
+ */
+ public StorageAccountInner withDnsEndpointType(DnsEndpointType dnsEndpointType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new StorageAccountPropertiesInner();
+ }
+ this.innerProperties().withDnsEndpointType(dnsEndpointType);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ if (extendedLocation() != null) {
+ extendedLocation().validate();
+ }
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountListKeysResultInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountListKeysResultInner.java
new file mode 100644
index 000000000000..b94426bf2e5a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountListKeysResultInner.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountKey;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The response from the ListKeys operation. */
+@Immutable
+public final class StorageAccountListKeysResultInner {
+ /*
+ * Gets the list of storage account keys and their properties for the
+ * specified storage account.
+ */
+ @JsonProperty(value = "keys", access = JsonProperty.Access.WRITE_ONLY)
+ private List keys;
+
+ /**
+ * Get the keys property: Gets the list of storage account keys and their properties for the specified storage
+ * account.
+ *
+ * @return the keys value.
+ */
+ public List keys() {
+ return this.keys;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (keys() != null) {
+ keys().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesCreateParameters.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesCreateParameters.java
new file mode 100644
index 000000000000..f4fcbc4e350c
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesCreateParameters.java
@@ -0,0 +1,726 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AccessTier;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.AzureFilesIdentityBasedAuthentication;
+import com.azure.resourcemanager.storage.generated.models.CustomDomain;
+import com.azure.resourcemanager.storage.generated.models.DnsEndpointType;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.LargeFileSharesState;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The parameters used to create the storage account. */
+@Fluent
+public final class StorageAccountPropertiesCreateParameters {
+ /*
+ * Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ */
+ @JsonProperty(value = "allowedCopyScope")
+ private AllowedCopyScope allowedCopyScope;
+
+ /*
+ * Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ */
+ @JsonProperty(value = "publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /*
+ * SasPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "sasPolicy")
+ private SasPolicy sasPolicy;
+
+ /*
+ * KeyPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "keyPolicy")
+ private KeyPolicy keyPolicy;
+
+ /*
+ * User domain assigned to the storage account. Name is the CNAME source.
+ * Only one custom domain is supported per storage account at this time. To
+ * clear the existing custom domain, use an empty string for the custom
+ * domain name property.
+ */
+ @JsonProperty(value = "customDomain")
+ private CustomDomain customDomain;
+
+ /*
+ * Encryption settings to be used for server-side encryption for the
+ * storage account.
+ */
+ @JsonProperty(value = "encryption")
+ private Encryption encryption;
+
+ /*
+ * Network rule set
+ */
+ @JsonProperty(value = "networkAcls")
+ private NetworkRuleSet networkRuleSet;
+
+ /*
+ * Required for storage accounts where kind = BlobStorage. The access tier
+ * is used for billing. The 'Premium' access tier is the default value for
+ * premium block blobs storage account type and it cannot be changed for
+ * the premium block blobs storage account type.
+ */
+ @JsonProperty(value = "accessTier")
+ private AccessTier accessTier;
+
+ /*
+ * Provides the identity based authentication settings for Azure Files.
+ */
+ @JsonProperty(value = "azureFilesIdentityBasedAuthentication")
+ private AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication;
+
+ /*
+ * Allows https traffic only to storage service if sets to true. The
+ * default value is true since API version 2019-04-01.
+ */
+ @JsonProperty(value = "supportsHttpsTrafficOnly")
+ private Boolean enableHttpsTrafficOnly;
+
+ /*
+ * Enables Secure File Transfer Protocol, if set to true
+ */
+ @JsonProperty(value = "isSftpEnabled")
+ private Boolean isSftpEnabled;
+
+ /*
+ * Enables local users feature, if set to true
+ */
+ @JsonProperty(value = "isLocalUserEnabled")
+ private Boolean isLocalUserEnabled;
+
+ /*
+ * Account HierarchicalNamespace enabled if sets to true.
+ */
+ @JsonProperty(value = "isHnsEnabled")
+ private Boolean isHnsEnabled;
+
+ /*
+ * Allow large file shares if sets to Enabled. It cannot be disabled once
+ * it is enabled.
+ */
+ @JsonProperty(value = "largeFileSharesState")
+ private LargeFileSharesState largeFileSharesState;
+
+ /*
+ * Maintains information about the network routing choice opted by the user
+ * for data transfer
+ */
+ @JsonProperty(value = "routingPreference")
+ private RoutingPreference routingPreference;
+
+ /*
+ * Allow or disallow public access to all blobs or containers in the
+ * storage account. The default interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowBlobPublicAccess")
+ private Boolean allowBlobPublicAccess;
+
+ /*
+ * Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ */
+ @JsonProperty(value = "minimumTlsVersion")
+ private MinimumTlsVersion minimumTlsVersion;
+
+ /*
+ * Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests,
+ * including shared access signatures, must be authorized with Azure Active
+ * Directory (Azure AD). The default value is null, which is equivalent to
+ * true.
+ */
+ @JsonProperty(value = "allowSharedKeyAccess")
+ private Boolean allowSharedKeyAccess;
+
+ /*
+ * NFS 3.0 protocol support enabled if set to true.
+ */
+ @JsonProperty(value = "isNfsV3Enabled")
+ private Boolean enableNfsV3;
+
+ /*
+ * Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowCrossTenantReplication")
+ private Boolean allowCrossTenantReplication;
+
+ /*
+ * A boolean flag which indicates whether the default authentication is
+ * OAuth or not. The default interpretation is false for this property.
+ */
+ @JsonProperty(value = "defaultToOAuthAuthentication")
+ private Boolean defaultToOAuthAuthentication;
+
+ /*
+ * The property is immutable and can only be set to true at the account
+ * creation time. When set to true, it enables object level immutability
+ * for all the new containers in the account by default.
+ */
+ @JsonProperty(value = "immutableStorageWithVersioning")
+ private ImmutableStorageAccount immutableStorageWithVersioning;
+
+ /*
+ * Allows you to specify the type of endpoint. Set this to AzureDNSZone to
+ * create a large number of accounts in a single subscription, which
+ * creates accounts in an Azure DNS Zone and the endpoint URL will have an
+ * alphanumeric DNS Zone identifier.
+ */
+ @JsonProperty(value = "dnsEndpointType")
+ private DnsEndpointType dnsEndpointType;
+
+ /**
+ * Get the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @return the allowedCopyScope value.
+ */
+ public AllowedCopyScope allowedCopyScope() {
+ return this.allowedCopyScope;
+ }
+
+ /**
+ * Set the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @param allowedCopyScope the allowedCopyScope value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAllowedCopyScope(AllowedCopyScope allowedCopyScope) {
+ this.allowedCopyScope = allowedCopyScope;
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @return the sasPolicy value.
+ */
+ public SasPolicy sasPolicy() {
+ return this.sasPolicy;
+ }
+
+ /**
+ * Set the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @param sasPolicy the sasPolicy value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withSasPolicy(SasPolicy sasPolicy) {
+ this.sasPolicy = sasPolicy;
+ return this;
+ }
+
+ /**
+ * Get the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @return the keyPolicy value.
+ */
+ public KeyPolicy keyPolicy() {
+ return this.keyPolicy;
+ }
+
+ /**
+ * Set the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @param keyPolicy the keyPolicy value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withKeyPolicy(KeyPolicy keyPolicy) {
+ this.keyPolicy = keyPolicy;
+ return this;
+ }
+
+ /**
+ * Get the customDomain property: User domain assigned to the storage account. Name is the CNAME source. Only one
+ * custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty
+ * string for the custom domain name property.
+ *
+ * @return the customDomain value.
+ */
+ public CustomDomain customDomain() {
+ return this.customDomain;
+ }
+
+ /**
+ * Set the customDomain property: User domain assigned to the storage account. Name is the CNAME source. Only one
+ * custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty
+ * string for the custom domain name property.
+ *
+ * @param customDomain the customDomain value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withCustomDomain(CustomDomain customDomain) {
+ this.customDomain = customDomain;
+ return this;
+ }
+
+ /**
+ * Get the encryption property: Encryption settings to be used for server-side encryption for the storage account.
+ *
+ * @return the encryption value.
+ */
+ public Encryption encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set the encryption property: Encryption settings to be used for server-side encryption for the storage account.
+ *
+ * @param encryption the encryption value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withEncryption(Encryption encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get the networkRuleSet property: Network rule set.
+ *
+ * @return the networkRuleSet value.
+ */
+ public NetworkRuleSet networkRuleSet() {
+ return this.networkRuleSet;
+ }
+
+ /**
+ * Set the networkRuleSet property: Network rule set.
+ *
+ * @param networkRuleSet the networkRuleSet value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withNetworkRuleSet(NetworkRuleSet networkRuleSet) {
+ this.networkRuleSet = networkRuleSet;
+ return this;
+ }
+
+ /**
+ * Get the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @return the accessTier value.
+ */
+ public AccessTier accessTier() {
+ return this.accessTier;
+ }
+
+ /**
+ * Set the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @param accessTier the accessTier value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAccessTier(AccessTier accessTier) {
+ this.accessTier = accessTier;
+ return this;
+ }
+
+ /**
+ * Get the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @return the azureFilesIdentityBasedAuthentication value.
+ */
+ public AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication() {
+ return this.azureFilesIdentityBasedAuthentication;
+ }
+
+ /**
+ * Set the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @param azureFilesIdentityBasedAuthentication the azureFilesIdentityBasedAuthentication value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAzureFilesIdentityBasedAuthentication(
+ AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication) {
+ this.azureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true. The
+ * default value is true since API version 2019-04-01.
+ *
+ * @return the enableHttpsTrafficOnly value.
+ */
+ public Boolean enableHttpsTrafficOnly() {
+ return this.enableHttpsTrafficOnly;
+ }
+
+ /**
+ * Set the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true. The
+ * default value is true since API version 2019-04-01.
+ *
+ * @param enableHttpsTrafficOnly the enableHttpsTrafficOnly value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withEnableHttpsTrafficOnly(Boolean enableHttpsTrafficOnly) {
+ this.enableHttpsTrafficOnly = enableHttpsTrafficOnly;
+ return this;
+ }
+
+ /**
+ * Get the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @return the isSftpEnabled value.
+ */
+ public Boolean isSftpEnabled() {
+ return this.isSftpEnabled;
+ }
+
+ /**
+ * Set the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @param isSftpEnabled the isSftpEnabled value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withIsSftpEnabled(Boolean isSftpEnabled) {
+ this.isSftpEnabled = isSftpEnabled;
+ return this;
+ }
+
+ /**
+ * Get the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @return the isLocalUserEnabled value.
+ */
+ public Boolean isLocalUserEnabled() {
+ return this.isLocalUserEnabled;
+ }
+
+ /**
+ * Set the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @param isLocalUserEnabled the isLocalUserEnabled value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withIsLocalUserEnabled(Boolean isLocalUserEnabled) {
+ this.isLocalUserEnabled = isLocalUserEnabled;
+ return this;
+ }
+
+ /**
+ * Get the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @return the isHnsEnabled value.
+ */
+ public Boolean isHnsEnabled() {
+ return this.isHnsEnabled;
+ }
+
+ /**
+ * Set the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @param isHnsEnabled the isHnsEnabled value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withIsHnsEnabled(Boolean isHnsEnabled) {
+ this.isHnsEnabled = isHnsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @return the largeFileSharesState value.
+ */
+ public LargeFileSharesState largeFileSharesState() {
+ return this.largeFileSharesState;
+ }
+
+ /**
+ * Set the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @param largeFileSharesState the largeFileSharesState value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withLargeFileSharesState(
+ LargeFileSharesState largeFileSharesState) {
+ this.largeFileSharesState = largeFileSharesState;
+ return this;
+ }
+
+ /**
+ * Get the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @return the routingPreference value.
+ */
+ public RoutingPreference routingPreference() {
+ return this.routingPreference;
+ }
+
+ /**
+ * Set the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @param routingPreference the routingPreference value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withRoutingPreference(RoutingPreference routingPreference) {
+ this.routingPreference = routingPreference;
+ return this;
+ }
+
+ /**
+ * Get the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @return the allowBlobPublicAccess value.
+ */
+ public Boolean allowBlobPublicAccess() {
+ return this.allowBlobPublicAccess;
+ }
+
+ /**
+ * Set the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @param allowBlobPublicAccess the allowBlobPublicAccess value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAllowBlobPublicAccess(Boolean allowBlobPublicAccess) {
+ this.allowBlobPublicAccess = allowBlobPublicAccess;
+ return this;
+ }
+
+ /**
+ * Get the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @return the minimumTlsVersion value.
+ */
+ public MinimumTlsVersion minimumTlsVersion() {
+ return this.minimumTlsVersion;
+ }
+
+ /**
+ * Set the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @param minimumTlsVersion the minimumTlsVersion value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withMinimumTlsVersion(MinimumTlsVersion minimumTlsVersion) {
+ this.minimumTlsVersion = minimumTlsVersion;
+ return this;
+ }
+
+ /**
+ * Get the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @return the allowSharedKeyAccess value.
+ */
+ public Boolean allowSharedKeyAccess() {
+ return this.allowSharedKeyAccess;
+ }
+
+ /**
+ * Set the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @param allowSharedKeyAccess the allowSharedKeyAccess value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAllowSharedKeyAccess(Boolean allowSharedKeyAccess) {
+ this.allowSharedKeyAccess = allowSharedKeyAccess;
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @return the enableNfsV3 value.
+ */
+ public Boolean enableNfsV3() {
+ return this.enableNfsV3;
+ }
+
+ /**
+ * Set the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @param enableNfsV3 the enableNfsV3 value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withEnableNfsV3(Boolean enableNfsV3) {
+ this.enableNfsV3 = enableNfsV3;
+ return this;
+ }
+
+ /**
+ * Get the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @return the allowCrossTenantReplication value.
+ */
+ public Boolean allowCrossTenantReplication() {
+ return this.allowCrossTenantReplication;
+ }
+
+ /**
+ * Set the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @param allowCrossTenantReplication the allowCrossTenantReplication value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withAllowCrossTenantReplication(
+ Boolean allowCrossTenantReplication) {
+ this.allowCrossTenantReplication = allowCrossTenantReplication;
+ return this;
+ }
+
+ /**
+ * Get the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @return the defaultToOAuthAuthentication value.
+ */
+ public Boolean defaultToOAuthAuthentication() {
+ return this.defaultToOAuthAuthentication;
+ }
+
+ /**
+ * Set the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @param defaultToOAuthAuthentication the defaultToOAuthAuthentication value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withDefaultToOAuthAuthentication(
+ Boolean defaultToOAuthAuthentication) {
+ this.defaultToOAuthAuthentication = defaultToOAuthAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the new containers in the
+ * account by default.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageAccount immutableStorageWithVersioning() {
+ return this.immutableStorageWithVersioning;
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the new containers in the
+ * account by default.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withImmutableStorageWithVersioning(
+ ImmutableStorageAccount immutableStorageWithVersioning) {
+ this.immutableStorageWithVersioning = immutableStorageWithVersioning;
+ return this;
+ }
+
+ /**
+ * Get the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @return the dnsEndpointType value.
+ */
+ public DnsEndpointType dnsEndpointType() {
+ return this.dnsEndpointType;
+ }
+
+ /**
+ * Set the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @param dnsEndpointType the dnsEndpointType value to set.
+ * @return the StorageAccountPropertiesCreateParameters object itself.
+ */
+ public StorageAccountPropertiesCreateParameters withDnsEndpointType(DnsEndpointType dnsEndpointType) {
+ this.dnsEndpointType = dnsEndpointType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sasPolicy() != null) {
+ sasPolicy().validate();
+ }
+ if (keyPolicy() != null) {
+ keyPolicy().validate();
+ }
+ if (customDomain() != null) {
+ customDomain().validate();
+ }
+ if (encryption() != null) {
+ encryption().validate();
+ }
+ if (networkRuleSet() != null) {
+ networkRuleSet().validate();
+ }
+ if (azureFilesIdentityBasedAuthentication() != null) {
+ azureFilesIdentityBasedAuthentication().validate();
+ }
+ if (routingPreference() != null) {
+ routingPreference().validate();
+ }
+ if (immutableStorageWithVersioning() != null) {
+ immutableStorageWithVersioning().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesInner.java
new file mode 100644
index 000000000000..0368c104c72a
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesInner.java
@@ -0,0 +1,939 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AccessTier;
+import com.azure.resourcemanager.storage.generated.models.AccountStatus;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.AzureFilesIdentityBasedAuthentication;
+import com.azure.resourcemanager.storage.generated.models.CustomDomain;
+import com.azure.resourcemanager.storage.generated.models.DnsEndpointType;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.Endpoints;
+import com.azure.resourcemanager.storage.generated.models.GeoReplicationStats;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyCreationTime;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.LargeFileSharesState;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.ProvisioningState;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.azure.resourcemanager.storage.generated.models.StorageAccountSkuConversionStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Properties of the storage account. */
+@Fluent
+public final class StorageAccountPropertiesInner {
+ /*
+ * Gets the status of the storage account at the time the operation was
+ * called.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * Gets the URLs that are used to perform a retrieval of a public blob,
+ * queue, or table object. Note that Standard_ZRS and Premium_LRS accounts
+ * only return the blob endpoint.
+ */
+ @JsonProperty(value = "primaryEndpoints", access = JsonProperty.Access.WRITE_ONLY)
+ private Endpoints primaryEndpoints;
+
+ /*
+ * Gets the location of the primary data center for the storage account.
+ */
+ @JsonProperty(value = "primaryLocation", access = JsonProperty.Access.WRITE_ONLY)
+ private String primaryLocation;
+
+ /*
+ * Gets the status indicating whether the primary location of the storage
+ * account is available or unavailable.
+ */
+ @JsonProperty(value = "statusOfPrimary", access = JsonProperty.Access.WRITE_ONLY)
+ private AccountStatus statusOfPrimary;
+
+ /*
+ * Gets the timestamp of the most recent instance of a failover to the
+ * secondary location. Only the most recent timestamp is retained. This
+ * element is not returned if there has never been a failover instance.
+ * Only available if the accountType is Standard_GRS or Standard_RAGRS.
+ */
+ @JsonProperty(value = "lastGeoFailoverTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastGeoFailoverTime;
+
+ /*
+ * Gets the location of the geo-replicated secondary for the storage
+ * account. Only available if the accountType is Standard_GRS or
+ * Standard_RAGRS.
+ */
+ @JsonProperty(value = "secondaryLocation", access = JsonProperty.Access.WRITE_ONLY)
+ private String secondaryLocation;
+
+ /*
+ * Gets the status indicating whether the secondary location of the storage
+ * account is available or unavailable. Only available if the SKU name is
+ * Standard_GRS or Standard_RAGRS.
+ */
+ @JsonProperty(value = "statusOfSecondary", access = JsonProperty.Access.WRITE_ONLY)
+ private AccountStatus statusOfSecondary;
+
+ /*
+ * Gets the creation date and time of the storage account in UTC.
+ */
+ @JsonProperty(value = "creationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime creationTime;
+
+ /*
+ * Gets the custom domain the user assigned to this storage account.
+ */
+ @JsonProperty(value = "customDomain", access = JsonProperty.Access.WRITE_ONLY)
+ private CustomDomain customDomain;
+
+ /*
+ * SasPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "sasPolicy", access = JsonProperty.Access.WRITE_ONLY)
+ private SasPolicy sasPolicy;
+
+ /*
+ * KeyPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "keyPolicy", access = JsonProperty.Access.WRITE_ONLY)
+ private KeyPolicy keyPolicy;
+
+ /*
+ * Storage account keys creation time.
+ */
+ @JsonProperty(value = "keyCreationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private KeyCreationTime keyCreationTime;
+
+ /*
+ * Gets the URLs that are used to perform a retrieval of a public blob,
+ * queue, or table object from the secondary location of the storage
+ * account. Only available if the SKU name is Standard_RAGRS.
+ */
+ @JsonProperty(value = "secondaryEndpoints", access = JsonProperty.Access.WRITE_ONLY)
+ private Endpoints secondaryEndpoints;
+
+ /*
+ * Encryption settings to be used for server-side encryption for the
+ * storage account.
+ */
+ @JsonProperty(value = "encryption", access = JsonProperty.Access.WRITE_ONLY)
+ private Encryption encryption;
+
+ /*
+ * Required for storage accounts where kind = BlobStorage. The access tier
+ * is used for billing. The 'Premium' access tier is the default value for
+ * premium block blobs storage account type and it cannot be changed for
+ * the premium block blobs storage account type.
+ */
+ @JsonProperty(value = "accessTier", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessTier accessTier;
+
+ /*
+ * Provides the identity based authentication settings for Azure Files.
+ */
+ @JsonProperty(value = "azureFilesIdentityBasedAuthentication")
+ private AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication;
+
+ /*
+ * Allows https traffic only to storage service if sets to true.
+ */
+ @JsonProperty(value = "supportsHttpsTrafficOnly")
+ private Boolean enableHttpsTrafficOnly;
+
+ /*
+ * Network rule set
+ */
+ @JsonProperty(value = "networkAcls", access = JsonProperty.Access.WRITE_ONLY)
+ private NetworkRuleSet networkRuleSet;
+
+ /*
+ * Enables Secure File Transfer Protocol, if set to true
+ */
+ @JsonProperty(value = "isSftpEnabled")
+ private Boolean isSftpEnabled;
+
+ /*
+ * Enables local users feature, if set to true
+ */
+ @JsonProperty(value = "isLocalUserEnabled")
+ private Boolean isLocalUserEnabled;
+
+ /*
+ * Account HierarchicalNamespace enabled if sets to true.
+ */
+ @JsonProperty(value = "isHnsEnabled")
+ private Boolean isHnsEnabled;
+
+ /*
+ * Geo Replication Stats
+ */
+ @JsonProperty(value = "geoReplicationStats", access = JsonProperty.Access.WRITE_ONLY)
+ private GeoReplicationStats geoReplicationStats;
+
+ /*
+ * If the failover is in progress, the value will be true, otherwise, it
+ * will be null.
+ */
+ @JsonProperty(value = "failoverInProgress", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean failoverInProgress;
+
+ /*
+ * Allow large file shares if sets to Enabled. It cannot be disabled once
+ * it is enabled.
+ */
+ @JsonProperty(value = "largeFileSharesState")
+ private LargeFileSharesState largeFileSharesState;
+
+ /*
+ * List of private endpoint connection associated with the specified
+ * storage account
+ */
+ @JsonProperty(value = "privateEndpointConnections", access = JsonProperty.Access.WRITE_ONLY)
+ private List privateEndpointConnections;
+
+ /*
+ * Maintains information about the network routing choice opted by the user
+ * for data transfer
+ */
+ @JsonProperty(value = "routingPreference")
+ private RoutingPreference routingPreference;
+
+ /*
+ * Blob restore status
+ */
+ @JsonProperty(value = "blobRestoreStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private BlobRestoreStatusInner blobRestoreStatus;
+
+ /*
+ * Allow or disallow public access to all blobs or containers in the
+ * storage account. The default interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowBlobPublicAccess")
+ private Boolean allowBlobPublicAccess;
+
+ /*
+ * Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ */
+ @JsonProperty(value = "minimumTlsVersion")
+ private MinimumTlsVersion minimumTlsVersion;
+
+ /*
+ * Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests,
+ * including shared access signatures, must be authorized with Azure Active
+ * Directory (Azure AD). The default value is null, which is equivalent to
+ * true.
+ */
+ @JsonProperty(value = "allowSharedKeyAccess")
+ private Boolean allowSharedKeyAccess;
+
+ /*
+ * NFS 3.0 protocol support enabled if set to true.
+ */
+ @JsonProperty(value = "isNfsV3Enabled")
+ private Boolean enableNfsV3;
+
+ /*
+ * Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowCrossTenantReplication")
+ private Boolean allowCrossTenantReplication;
+
+ /*
+ * A boolean flag which indicates whether the default authentication is
+ * OAuth or not. The default interpretation is false for this property.
+ */
+ @JsonProperty(value = "defaultToOAuthAuthentication")
+ private Boolean defaultToOAuthAuthentication;
+
+ /*
+ * Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ */
+ @JsonProperty(value = "publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /*
+ * The property is immutable and can only be set to true at the account
+ * creation time. When set to true, it enables object level immutability
+ * for all the containers in the account by default.
+ */
+ @JsonProperty(value = "immutableStorageWithVersioning")
+ private ImmutableStorageAccount immutableStorageWithVersioning;
+
+ /*
+ * Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ */
+ @JsonProperty(value = "allowedCopyScope")
+ private AllowedCopyScope allowedCopyScope;
+
+ /*
+ * This property is readOnly and is set by server during asynchronous
+ * storage account sku conversion operations.
+ */
+ @JsonProperty(value = "storageAccountSkuConversionStatus")
+ private StorageAccountSkuConversionStatus storageAccountSkuConversionStatus;
+
+ /*
+ * Allows you to specify the type of endpoint. Set this to AzureDNSZone to
+ * create a large number of accounts in a single subscription, which
+ * creates accounts in an Azure DNS Zone and the endpoint URL will have an
+ * alphanumeric DNS Zone identifier.
+ */
+ @JsonProperty(value = "dnsEndpointType")
+ private DnsEndpointType dnsEndpointType;
+
+ /**
+ * Get the provisioningState property: Gets the status of the storage account at the time the operation was called.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the primaryEndpoints property: Gets the URLs that are used to perform a retrieval of a public blob, queue, or
+ * table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint.
+ *
+ * @return the primaryEndpoints value.
+ */
+ public Endpoints primaryEndpoints() {
+ return this.primaryEndpoints;
+ }
+
+ /**
+ * Get the primaryLocation property: Gets the location of the primary data center for the storage account.
+ *
+ * @return the primaryLocation value.
+ */
+ public String primaryLocation() {
+ return this.primaryLocation;
+ }
+
+ /**
+ * Get the statusOfPrimary property: Gets the status indicating whether the primary location of the storage account
+ * is available or unavailable.
+ *
+ * @return the statusOfPrimary value.
+ */
+ public AccountStatus statusOfPrimary() {
+ return this.statusOfPrimary;
+ }
+
+ /**
+ * Get the lastGeoFailoverTime property: Gets the timestamp of the most recent instance of a failover to the
+ * secondary location. Only the most recent timestamp is retained. This element is not returned if there has never
+ * been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the lastGeoFailoverTime value.
+ */
+ public OffsetDateTime lastGeoFailoverTime() {
+ return this.lastGeoFailoverTime;
+ }
+
+ /**
+ * Get the secondaryLocation property: Gets the location of the geo-replicated secondary for the storage account.
+ * Only available if the accountType is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the secondaryLocation value.
+ */
+ public String secondaryLocation() {
+ return this.secondaryLocation;
+ }
+
+ /**
+ * Get the statusOfSecondary property: Gets the status indicating whether the secondary location of the storage
+ * account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.
+ *
+ * @return the statusOfSecondary value.
+ */
+ public AccountStatus statusOfSecondary() {
+ return this.statusOfSecondary;
+ }
+
+ /**
+ * Get the creationTime property: Gets the creation date and time of the storage account in UTC.
+ *
+ * @return the creationTime value.
+ */
+ public OffsetDateTime creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Get the customDomain property: Gets the custom domain the user assigned to this storage account.
+ *
+ * @return the customDomain value.
+ */
+ public CustomDomain customDomain() {
+ return this.customDomain;
+ }
+
+ /**
+ * Get the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @return the sasPolicy value.
+ */
+ public SasPolicy sasPolicy() {
+ return this.sasPolicy;
+ }
+
+ /**
+ * Get the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @return the keyPolicy value.
+ */
+ public KeyPolicy keyPolicy() {
+ return this.keyPolicy;
+ }
+
+ /**
+ * Get the keyCreationTime property: Storage account keys creation time.
+ *
+ * @return the keyCreationTime value.
+ */
+ public KeyCreationTime keyCreationTime() {
+ return this.keyCreationTime;
+ }
+
+ /**
+ * Get the secondaryEndpoints property: Gets the URLs that are used to perform a retrieval of a public blob, queue,
+ * or table object from the secondary location of the storage account. Only available if the SKU name is
+ * Standard_RAGRS.
+ *
+ * @return the secondaryEndpoints value.
+ */
+ public Endpoints secondaryEndpoints() {
+ return this.secondaryEndpoints;
+ }
+
+ /**
+ * Get the encryption property: Encryption settings to be used for server-side encryption for the storage account.
+ *
+ * @return the encryption value.
+ */
+ public Encryption encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Get the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @return the accessTier value.
+ */
+ public AccessTier accessTier() {
+ return this.accessTier;
+ }
+
+ /**
+ * Get the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @return the azureFilesIdentityBasedAuthentication value.
+ */
+ public AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication() {
+ return this.azureFilesIdentityBasedAuthentication;
+ }
+
+ /**
+ * Set the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @param azureFilesIdentityBasedAuthentication the azureFilesIdentityBasedAuthentication value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withAzureFilesIdentityBasedAuthentication(
+ AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication) {
+ this.azureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @return the enableHttpsTrafficOnly value.
+ */
+ public Boolean enableHttpsTrafficOnly() {
+ return this.enableHttpsTrafficOnly;
+ }
+
+ /**
+ * Set the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @param enableHttpsTrafficOnly the enableHttpsTrafficOnly value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withEnableHttpsTrafficOnly(Boolean enableHttpsTrafficOnly) {
+ this.enableHttpsTrafficOnly = enableHttpsTrafficOnly;
+ return this;
+ }
+
+ /**
+ * Get the networkRuleSet property: Network rule set.
+ *
+ * @return the networkRuleSet value.
+ */
+ public NetworkRuleSet networkRuleSet() {
+ return this.networkRuleSet;
+ }
+
+ /**
+ * Get the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @return the isSftpEnabled value.
+ */
+ public Boolean isSftpEnabled() {
+ return this.isSftpEnabled;
+ }
+
+ /**
+ * Set the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @param isSftpEnabled the isSftpEnabled value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withIsSftpEnabled(Boolean isSftpEnabled) {
+ this.isSftpEnabled = isSftpEnabled;
+ return this;
+ }
+
+ /**
+ * Get the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @return the isLocalUserEnabled value.
+ */
+ public Boolean isLocalUserEnabled() {
+ return this.isLocalUserEnabled;
+ }
+
+ /**
+ * Set the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @param isLocalUserEnabled the isLocalUserEnabled value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withIsLocalUserEnabled(Boolean isLocalUserEnabled) {
+ this.isLocalUserEnabled = isLocalUserEnabled;
+ return this;
+ }
+
+ /**
+ * Get the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @return the isHnsEnabled value.
+ */
+ public Boolean isHnsEnabled() {
+ return this.isHnsEnabled;
+ }
+
+ /**
+ * Set the isHnsEnabled property: Account HierarchicalNamespace enabled if sets to true.
+ *
+ * @param isHnsEnabled the isHnsEnabled value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withIsHnsEnabled(Boolean isHnsEnabled) {
+ this.isHnsEnabled = isHnsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the geoReplicationStats property: Geo Replication Stats.
+ *
+ * @return the geoReplicationStats value.
+ */
+ public GeoReplicationStats geoReplicationStats() {
+ return this.geoReplicationStats;
+ }
+
+ /**
+ * Get the failoverInProgress property: If the failover is in progress, the value will be true, otherwise, it will
+ * be null.
+ *
+ * @return the failoverInProgress value.
+ */
+ public Boolean failoverInProgress() {
+ return this.failoverInProgress;
+ }
+
+ /**
+ * Get the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @return the largeFileSharesState value.
+ */
+ public LargeFileSharesState largeFileSharesState() {
+ return this.largeFileSharesState;
+ }
+
+ /**
+ * Set the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @param largeFileSharesState the largeFileSharesState value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withLargeFileSharesState(LargeFileSharesState largeFileSharesState) {
+ this.largeFileSharesState = largeFileSharesState;
+ return this;
+ }
+
+ /**
+ * Get the privateEndpointConnections property: List of private endpoint connection associated with the specified
+ * storage account.
+ *
+ * @return the privateEndpointConnections value.
+ */
+ public List privateEndpointConnections() {
+ return this.privateEndpointConnections;
+ }
+
+ /**
+ * Get the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @return the routingPreference value.
+ */
+ public RoutingPreference routingPreference() {
+ return this.routingPreference;
+ }
+
+ /**
+ * Set the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @param routingPreference the routingPreference value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withRoutingPreference(RoutingPreference routingPreference) {
+ this.routingPreference = routingPreference;
+ return this;
+ }
+
+ /**
+ * Get the blobRestoreStatus property: Blob restore status.
+ *
+ * @return the blobRestoreStatus value.
+ */
+ public BlobRestoreStatusInner blobRestoreStatus() {
+ return this.blobRestoreStatus;
+ }
+
+ /**
+ * Get the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @return the allowBlobPublicAccess value.
+ */
+ public Boolean allowBlobPublicAccess() {
+ return this.allowBlobPublicAccess;
+ }
+
+ /**
+ * Set the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @param allowBlobPublicAccess the allowBlobPublicAccess value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withAllowBlobPublicAccess(Boolean allowBlobPublicAccess) {
+ this.allowBlobPublicAccess = allowBlobPublicAccess;
+ return this;
+ }
+
+ /**
+ * Get the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @return the minimumTlsVersion value.
+ */
+ public MinimumTlsVersion minimumTlsVersion() {
+ return this.minimumTlsVersion;
+ }
+
+ /**
+ * Set the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @param minimumTlsVersion the minimumTlsVersion value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withMinimumTlsVersion(MinimumTlsVersion minimumTlsVersion) {
+ this.minimumTlsVersion = minimumTlsVersion;
+ return this;
+ }
+
+ /**
+ * Get the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @return the allowSharedKeyAccess value.
+ */
+ public Boolean allowSharedKeyAccess() {
+ return this.allowSharedKeyAccess;
+ }
+
+ /**
+ * Set the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @param allowSharedKeyAccess the allowSharedKeyAccess value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withAllowSharedKeyAccess(Boolean allowSharedKeyAccess) {
+ this.allowSharedKeyAccess = allowSharedKeyAccess;
+ return this;
+ }
+
+ /**
+ * Get the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @return the enableNfsV3 value.
+ */
+ public Boolean enableNfsV3() {
+ return this.enableNfsV3;
+ }
+
+ /**
+ * Set the enableNfsV3 property: NFS 3.0 protocol support enabled if set to true.
+ *
+ * @param enableNfsV3 the enableNfsV3 value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withEnableNfsV3(Boolean enableNfsV3) {
+ this.enableNfsV3 = enableNfsV3;
+ return this;
+ }
+
+ /**
+ * Get the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @return the allowCrossTenantReplication value.
+ */
+ public Boolean allowCrossTenantReplication() {
+ return this.allowCrossTenantReplication;
+ }
+
+ /**
+ * Set the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @param allowCrossTenantReplication the allowCrossTenantReplication value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withAllowCrossTenantReplication(Boolean allowCrossTenantReplication) {
+ this.allowCrossTenantReplication = allowCrossTenantReplication;
+ return this;
+ }
+
+ /**
+ * Get the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @return the defaultToOAuthAuthentication value.
+ */
+ public Boolean defaultToOAuthAuthentication() {
+ return this.defaultToOAuthAuthentication;
+ }
+
+ /**
+ * Set the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @param defaultToOAuthAuthentication the defaultToOAuthAuthentication value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withDefaultToOAuthAuthentication(Boolean defaultToOAuthAuthentication) {
+ this.defaultToOAuthAuthentication = defaultToOAuthAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageAccount immutableStorageWithVersioning() {
+ return this.immutableStorageWithVersioning;
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withImmutableStorageWithVersioning(
+ ImmutableStorageAccount immutableStorageWithVersioning) {
+ this.immutableStorageWithVersioning = immutableStorageWithVersioning;
+ return this;
+ }
+
+ /**
+ * Get the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @return the allowedCopyScope value.
+ */
+ public AllowedCopyScope allowedCopyScope() {
+ return this.allowedCopyScope;
+ }
+
+ /**
+ * Set the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @param allowedCopyScope the allowedCopyScope value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withAllowedCopyScope(AllowedCopyScope allowedCopyScope) {
+ this.allowedCopyScope = allowedCopyScope;
+ return this;
+ }
+
+ /**
+ * Get the storageAccountSkuConversionStatus property: This property is readOnly and is set by server during
+ * asynchronous storage account sku conversion operations.
+ *
+ * @return the storageAccountSkuConversionStatus value.
+ */
+ public StorageAccountSkuConversionStatus storageAccountSkuConversionStatus() {
+ return this.storageAccountSkuConversionStatus;
+ }
+
+ /**
+ * Set the storageAccountSkuConversionStatus property: This property is readOnly and is set by server during
+ * asynchronous storage account sku conversion operations.
+ *
+ * @param storageAccountSkuConversionStatus the storageAccountSkuConversionStatus value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withStorageAccountSkuConversionStatus(
+ StorageAccountSkuConversionStatus storageAccountSkuConversionStatus) {
+ this.storageAccountSkuConversionStatus = storageAccountSkuConversionStatus;
+ return this;
+ }
+
+ /**
+ * Get the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @return the dnsEndpointType value.
+ */
+ public DnsEndpointType dnsEndpointType() {
+ return this.dnsEndpointType;
+ }
+
+ /**
+ * Set the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @param dnsEndpointType the dnsEndpointType value to set.
+ * @return the StorageAccountPropertiesInner object itself.
+ */
+ public StorageAccountPropertiesInner withDnsEndpointType(DnsEndpointType dnsEndpointType) {
+ this.dnsEndpointType = dnsEndpointType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (primaryEndpoints() != null) {
+ primaryEndpoints().validate();
+ }
+ if (customDomain() != null) {
+ customDomain().validate();
+ }
+ if (sasPolicy() != null) {
+ sasPolicy().validate();
+ }
+ if (keyPolicy() != null) {
+ keyPolicy().validate();
+ }
+ if (keyCreationTime() != null) {
+ keyCreationTime().validate();
+ }
+ if (secondaryEndpoints() != null) {
+ secondaryEndpoints().validate();
+ }
+ if (encryption() != null) {
+ encryption().validate();
+ }
+ if (azureFilesIdentityBasedAuthentication() != null) {
+ azureFilesIdentityBasedAuthentication().validate();
+ }
+ if (networkRuleSet() != null) {
+ networkRuleSet().validate();
+ }
+ if (geoReplicationStats() != null) {
+ geoReplicationStats().validate();
+ }
+ if (privateEndpointConnections() != null) {
+ privateEndpointConnections().forEach(e -> e.validate());
+ }
+ if (routingPreference() != null) {
+ routingPreference().validate();
+ }
+ if (blobRestoreStatus() != null) {
+ blobRestoreStatus().validate();
+ }
+ if (immutableStorageWithVersioning() != null) {
+ immutableStorageWithVersioning().validate();
+ }
+ if (storageAccountSkuConversionStatus() != null) {
+ storageAccountSkuConversionStatus().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesUpdateParameters.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesUpdateParameters.java
new file mode 100644
index 000000000000..71222f337c05
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageAccountPropertiesUpdateParameters.java
@@ -0,0 +1,673 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.AccessTier;
+import com.azure.resourcemanager.storage.generated.models.AllowedCopyScope;
+import com.azure.resourcemanager.storage.generated.models.AzureFilesIdentityBasedAuthentication;
+import com.azure.resourcemanager.storage.generated.models.CustomDomain;
+import com.azure.resourcemanager.storage.generated.models.DnsEndpointType;
+import com.azure.resourcemanager.storage.generated.models.Encryption;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageAccount;
+import com.azure.resourcemanager.storage.generated.models.KeyPolicy;
+import com.azure.resourcemanager.storage.generated.models.LargeFileSharesState;
+import com.azure.resourcemanager.storage.generated.models.MinimumTlsVersion;
+import com.azure.resourcemanager.storage.generated.models.NetworkRuleSet;
+import com.azure.resourcemanager.storage.generated.models.PublicNetworkAccess;
+import com.azure.resourcemanager.storage.generated.models.RoutingPreference;
+import com.azure.resourcemanager.storage.generated.models.SasPolicy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The parameters used when updating a storage account. */
+@Fluent
+public final class StorageAccountPropertiesUpdateParameters {
+ /*
+ * Custom domain assigned to the storage account by the user. Name is the
+ * CNAME source. Only one custom domain is supported per storage account at
+ * this time. To clear the existing custom domain, use an empty string for
+ * the custom domain name property.
+ */
+ @JsonProperty(value = "customDomain")
+ private CustomDomain customDomain;
+
+ /*
+ * Not applicable. Azure Storage encryption at rest is enabled by default
+ * for all storage accounts and cannot be disabled.
+ */
+ @JsonProperty(value = "encryption")
+ private Encryption encryption;
+
+ /*
+ * SasPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "sasPolicy")
+ private SasPolicy sasPolicy;
+
+ /*
+ * KeyPolicy assigned to the storage account.
+ */
+ @JsonProperty(value = "keyPolicy")
+ private KeyPolicy keyPolicy;
+
+ /*
+ * Required for storage accounts where kind = BlobStorage. The access tier
+ * is used for billing. The 'Premium' access tier is the default value for
+ * premium block blobs storage account type and it cannot be changed for
+ * the premium block blobs storage account type.
+ */
+ @JsonProperty(value = "accessTier")
+ private AccessTier accessTier;
+
+ /*
+ * Provides the identity based authentication settings for Azure Files.
+ */
+ @JsonProperty(value = "azureFilesIdentityBasedAuthentication")
+ private AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication;
+
+ /*
+ * Allows https traffic only to storage service if sets to true.
+ */
+ @JsonProperty(value = "supportsHttpsTrafficOnly")
+ private Boolean enableHttpsTrafficOnly;
+
+ /*
+ * Enables Secure File Transfer Protocol, if set to true
+ */
+ @JsonProperty(value = "isSftpEnabled")
+ private Boolean isSftpEnabled;
+
+ /*
+ * Enables local users feature, if set to true
+ */
+ @JsonProperty(value = "isLocalUserEnabled")
+ private Boolean isLocalUserEnabled;
+
+ /*
+ * Network rule set
+ */
+ @JsonProperty(value = "networkAcls")
+ private NetworkRuleSet networkRuleSet;
+
+ /*
+ * Allow large file shares if sets to Enabled. It cannot be disabled once
+ * it is enabled.
+ */
+ @JsonProperty(value = "largeFileSharesState")
+ private LargeFileSharesState largeFileSharesState;
+
+ /*
+ * Maintains information about the network routing choice opted by the user
+ * for data transfer
+ */
+ @JsonProperty(value = "routingPreference")
+ private RoutingPreference routingPreference;
+
+ /*
+ * Allow or disallow public access to all blobs or containers in the
+ * storage account. The default interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowBlobPublicAccess")
+ private Boolean allowBlobPublicAccess;
+
+ /*
+ * Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ */
+ @JsonProperty(value = "minimumTlsVersion")
+ private MinimumTlsVersion minimumTlsVersion;
+
+ /*
+ * Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests,
+ * including shared access signatures, must be authorized with Azure Active
+ * Directory (Azure AD). The default value is null, which is equivalent to
+ * true.
+ */
+ @JsonProperty(value = "allowSharedKeyAccess")
+ private Boolean allowSharedKeyAccess;
+
+ /*
+ * Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ */
+ @JsonProperty(value = "allowCrossTenantReplication")
+ private Boolean allowCrossTenantReplication;
+
+ /*
+ * A boolean flag which indicates whether the default authentication is
+ * OAuth or not. The default interpretation is false for this property.
+ */
+ @JsonProperty(value = "defaultToOAuthAuthentication")
+ private Boolean defaultToOAuthAuthentication;
+
+ /*
+ * Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ */
+ @JsonProperty(value = "publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /*
+ * The property is immutable and can only be set to true at the account
+ * creation time. When set to true, it enables object level immutability
+ * for all the containers in the account by default.
+ */
+ @JsonProperty(value = "immutableStorageWithVersioning")
+ private ImmutableStorageAccount immutableStorageWithVersioning;
+
+ /*
+ * Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ */
+ @JsonProperty(value = "allowedCopyScope")
+ private AllowedCopyScope allowedCopyScope;
+
+ /*
+ * Allows you to specify the type of endpoint. Set this to AzureDNSZone to
+ * create a large number of accounts in a single subscription, which
+ * creates accounts in an Azure DNS Zone and the endpoint URL will have an
+ * alphanumeric DNS Zone identifier.
+ */
+ @JsonProperty(value = "dnsEndpointType")
+ private DnsEndpointType dnsEndpointType;
+
+ /**
+ * Get the customDomain property: Custom domain assigned to the storage account by the user. Name is the CNAME
+ * source. Only one custom domain is supported per storage account at this time. To clear the existing custom
+ * domain, use an empty string for the custom domain name property.
+ *
+ * @return the customDomain value.
+ */
+ public CustomDomain customDomain() {
+ return this.customDomain;
+ }
+
+ /**
+ * Set the customDomain property: Custom domain assigned to the storage account by the user. Name is the CNAME
+ * source. Only one custom domain is supported per storage account at this time. To clear the existing custom
+ * domain, use an empty string for the custom domain name property.
+ *
+ * @param customDomain the customDomain value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withCustomDomain(CustomDomain customDomain) {
+ this.customDomain = customDomain;
+ return this;
+ }
+
+ /**
+ * Get the encryption property: Not applicable. Azure Storage encryption at rest is enabled by default for all
+ * storage accounts and cannot be disabled.
+ *
+ * @return the encryption value.
+ */
+ public Encryption encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set the encryption property: Not applicable. Azure Storage encryption at rest is enabled by default for all
+ * storage accounts and cannot be disabled.
+ *
+ * @param encryption the encryption value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withEncryption(Encryption encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @return the sasPolicy value.
+ */
+ public SasPolicy sasPolicy() {
+ return this.sasPolicy;
+ }
+
+ /**
+ * Set the sasPolicy property: SasPolicy assigned to the storage account.
+ *
+ * @param sasPolicy the sasPolicy value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withSasPolicy(SasPolicy sasPolicy) {
+ this.sasPolicy = sasPolicy;
+ return this;
+ }
+
+ /**
+ * Get the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @return the keyPolicy value.
+ */
+ public KeyPolicy keyPolicy() {
+ return this.keyPolicy;
+ }
+
+ /**
+ * Set the keyPolicy property: KeyPolicy assigned to the storage account.
+ *
+ * @param keyPolicy the keyPolicy value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withKeyPolicy(KeyPolicy keyPolicy) {
+ this.keyPolicy = keyPolicy;
+ return this;
+ }
+
+ /**
+ * Get the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @return the accessTier value.
+ */
+ public AccessTier accessTier() {
+ return this.accessTier;
+ }
+
+ /**
+ * Set the accessTier property: Required for storage accounts where kind = BlobStorage. The access tier is used for
+ * billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it
+ * cannot be changed for the premium block blobs storage account type.
+ *
+ * @param accessTier the accessTier value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAccessTier(AccessTier accessTier) {
+ this.accessTier = accessTier;
+ return this;
+ }
+
+ /**
+ * Get the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @return the azureFilesIdentityBasedAuthentication value.
+ */
+ public AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication() {
+ return this.azureFilesIdentityBasedAuthentication;
+ }
+
+ /**
+ * Set the azureFilesIdentityBasedAuthentication property: Provides the identity based authentication settings for
+ * Azure Files.
+ *
+ * @param azureFilesIdentityBasedAuthentication the azureFilesIdentityBasedAuthentication value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAzureFilesIdentityBasedAuthentication(
+ AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication) {
+ this.azureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @return the enableHttpsTrafficOnly value.
+ */
+ public Boolean enableHttpsTrafficOnly() {
+ return this.enableHttpsTrafficOnly;
+ }
+
+ /**
+ * Set the enableHttpsTrafficOnly property: Allows https traffic only to storage service if sets to true.
+ *
+ * @param enableHttpsTrafficOnly the enableHttpsTrafficOnly value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withEnableHttpsTrafficOnly(Boolean enableHttpsTrafficOnly) {
+ this.enableHttpsTrafficOnly = enableHttpsTrafficOnly;
+ return this;
+ }
+
+ /**
+ * Get the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @return the isSftpEnabled value.
+ */
+ public Boolean isSftpEnabled() {
+ return this.isSftpEnabled;
+ }
+
+ /**
+ * Set the isSftpEnabled property: Enables Secure File Transfer Protocol, if set to true.
+ *
+ * @param isSftpEnabled the isSftpEnabled value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withIsSftpEnabled(Boolean isSftpEnabled) {
+ this.isSftpEnabled = isSftpEnabled;
+ return this;
+ }
+
+ /**
+ * Get the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @return the isLocalUserEnabled value.
+ */
+ public Boolean isLocalUserEnabled() {
+ return this.isLocalUserEnabled;
+ }
+
+ /**
+ * Set the isLocalUserEnabled property: Enables local users feature, if set to true.
+ *
+ * @param isLocalUserEnabled the isLocalUserEnabled value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withIsLocalUserEnabled(Boolean isLocalUserEnabled) {
+ this.isLocalUserEnabled = isLocalUserEnabled;
+ return this;
+ }
+
+ /**
+ * Get the networkRuleSet property: Network rule set.
+ *
+ * @return the networkRuleSet value.
+ */
+ public NetworkRuleSet networkRuleSet() {
+ return this.networkRuleSet;
+ }
+
+ /**
+ * Set the networkRuleSet property: Network rule set.
+ *
+ * @param networkRuleSet the networkRuleSet value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withNetworkRuleSet(NetworkRuleSet networkRuleSet) {
+ this.networkRuleSet = networkRuleSet;
+ return this;
+ }
+
+ /**
+ * Get the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @return the largeFileSharesState value.
+ */
+ public LargeFileSharesState largeFileSharesState() {
+ return this.largeFileSharesState;
+ }
+
+ /**
+ * Set the largeFileSharesState property: Allow large file shares if sets to Enabled. It cannot be disabled once it
+ * is enabled.
+ *
+ * @param largeFileSharesState the largeFileSharesState value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withLargeFileSharesState(
+ LargeFileSharesState largeFileSharesState) {
+ this.largeFileSharesState = largeFileSharesState;
+ return this;
+ }
+
+ /**
+ * Get the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @return the routingPreference value.
+ */
+ public RoutingPreference routingPreference() {
+ return this.routingPreference;
+ }
+
+ /**
+ * Set the routingPreference property: Maintains information about the network routing choice opted by the user for
+ * data transfer.
+ *
+ * @param routingPreference the routingPreference value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withRoutingPreference(RoutingPreference routingPreference) {
+ this.routingPreference = routingPreference;
+ return this;
+ }
+
+ /**
+ * Get the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @return the allowBlobPublicAccess value.
+ */
+ public Boolean allowBlobPublicAccess() {
+ return this.allowBlobPublicAccess;
+ }
+
+ /**
+ * Set the allowBlobPublicAccess property: Allow or disallow public access to all blobs or containers in the storage
+ * account. The default interpretation is true for this property.
+ *
+ * @param allowBlobPublicAccess the allowBlobPublicAccess value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAllowBlobPublicAccess(Boolean allowBlobPublicAccess) {
+ this.allowBlobPublicAccess = allowBlobPublicAccess;
+ return this;
+ }
+
+ /**
+ * Get the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @return the minimumTlsVersion value.
+ */
+ public MinimumTlsVersion minimumTlsVersion() {
+ return this.minimumTlsVersion;
+ }
+
+ /**
+ * Set the minimumTlsVersion property: Set the minimum TLS version to be permitted on requests to storage. The
+ * default interpretation is TLS 1.0 for this property.
+ *
+ * @param minimumTlsVersion the minimumTlsVersion value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withMinimumTlsVersion(MinimumTlsVersion minimumTlsVersion) {
+ this.minimumTlsVersion = minimumTlsVersion;
+ return this;
+ }
+
+ /**
+ * Get the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @return the allowSharedKeyAccess value.
+ */
+ public Boolean allowSharedKeyAccess() {
+ return this.allowSharedKeyAccess;
+ }
+
+ /**
+ * Set the allowSharedKeyAccess property: Indicates whether the storage account permits requests to be authorized
+ * with the account access key via Shared Key. If false, then all requests, including shared access signatures, must
+ * be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.
+ *
+ * @param allowSharedKeyAccess the allowSharedKeyAccess value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAllowSharedKeyAccess(Boolean allowSharedKeyAccess) {
+ this.allowSharedKeyAccess = allowSharedKeyAccess;
+ return this;
+ }
+
+ /**
+ * Get the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @return the allowCrossTenantReplication value.
+ */
+ public Boolean allowCrossTenantReplication() {
+ return this.allowCrossTenantReplication;
+ }
+
+ /**
+ * Set the allowCrossTenantReplication property: Allow or disallow cross AAD tenant object replication. The default
+ * interpretation is true for this property.
+ *
+ * @param allowCrossTenantReplication the allowCrossTenantReplication value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAllowCrossTenantReplication(
+ Boolean allowCrossTenantReplication) {
+ this.allowCrossTenantReplication = allowCrossTenantReplication;
+ return this;
+ }
+
+ /**
+ * Get the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @return the defaultToOAuthAuthentication value.
+ */
+ public Boolean defaultToOAuthAuthentication() {
+ return this.defaultToOAuthAuthentication;
+ }
+
+ /**
+ * Set the defaultToOAuthAuthentication property: A boolean flag which indicates whether the default authentication
+ * is OAuth or not. The default interpretation is false for this property.
+ *
+ * @param defaultToOAuthAuthentication the defaultToOAuthAuthentication value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withDefaultToOAuthAuthentication(
+ Boolean defaultToOAuthAuthentication) {
+ this.defaultToOAuthAuthentication = defaultToOAuthAuthentication;
+ return this;
+ }
+
+ /**
+ * Get the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @return the publicNetworkAccess value.
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set the publicNetworkAccess property: Allow or disallow public network access to Storage Account. Value is
+ * optional but if passed in, must be 'Enabled' or 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @return the immutableStorageWithVersioning value.
+ */
+ public ImmutableStorageAccount immutableStorageWithVersioning() {
+ return this.immutableStorageWithVersioning;
+ }
+
+ /**
+ * Set the immutableStorageWithVersioning property: The property is immutable and can only be set to true at the
+ * account creation time. When set to true, it enables object level immutability for all the containers in the
+ * account by default.
+ *
+ * @param immutableStorageWithVersioning the immutableStorageWithVersioning value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withImmutableStorageWithVersioning(
+ ImmutableStorageAccount immutableStorageWithVersioning) {
+ this.immutableStorageWithVersioning = immutableStorageWithVersioning;
+ return this;
+ }
+
+ /**
+ * Get the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @return the allowedCopyScope value.
+ */
+ public AllowedCopyScope allowedCopyScope() {
+ return this.allowedCopyScope;
+ }
+
+ /**
+ * Set the allowedCopyScope property: Restrict copy to and from Storage Accounts within an AAD tenant or with
+ * Private Links to the same VNet.
+ *
+ * @param allowedCopyScope the allowedCopyScope value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withAllowedCopyScope(AllowedCopyScope allowedCopyScope) {
+ this.allowedCopyScope = allowedCopyScope;
+ return this;
+ }
+
+ /**
+ * Get the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @return the dnsEndpointType value.
+ */
+ public DnsEndpointType dnsEndpointType() {
+ return this.dnsEndpointType;
+ }
+
+ /**
+ * Set the dnsEndpointType property: Allows you to specify the type of endpoint. Set this to AzureDNSZone to create
+ * a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint
+ * URL will have an alphanumeric DNS Zone identifier.
+ *
+ * @param dnsEndpointType the dnsEndpointType value to set.
+ * @return the StorageAccountPropertiesUpdateParameters object itself.
+ */
+ public StorageAccountPropertiesUpdateParameters withDnsEndpointType(DnsEndpointType dnsEndpointType) {
+ this.dnsEndpointType = dnsEndpointType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (customDomain() != null) {
+ customDomain().validate();
+ }
+ if (encryption() != null) {
+ encryption().validate();
+ }
+ if (sasPolicy() != null) {
+ sasPolicy().validate();
+ }
+ if (keyPolicy() != null) {
+ keyPolicy().validate();
+ }
+ if (azureFilesIdentityBasedAuthentication() != null) {
+ azureFilesIdentityBasedAuthentication().validate();
+ }
+ if (networkRuleSet() != null) {
+ networkRuleSet().validate();
+ }
+ if (routingPreference() != null) {
+ routingPreference().validate();
+ }
+ if (immutableStorageWithVersioning() != null) {
+ immutableStorageWithVersioning().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageQueueInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageQueueInner.java
new file mode 100644
index 000000000000..333b45c48d13
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/StorageQueueInner.java
@@ -0,0 +1,73 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The StorageQueue model. */
+@Fluent
+public final class StorageQueueInner extends ProxyResource {
+ /*
+ * Queue resource properties.
+ */
+ @JsonProperty(value = "properties")
+ private QueueProperties innerQueueProperties;
+
+ /**
+ * Get the innerQueueProperties property: Queue resource properties.
+ *
+ * @return the innerQueueProperties value.
+ */
+ private QueueProperties innerQueueProperties() {
+ return this.innerQueueProperties;
+ }
+
+ /**
+ * Get the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @return the metadata value.
+ */
+ public Map metadata() {
+ return this.innerQueueProperties() == null ? null : this.innerQueueProperties().metadata();
+ }
+
+ /**
+ * Set the metadata property: A name-value pair that represents queue metadata.
+ *
+ * @param metadata the metadata value to set.
+ * @return the StorageQueueInner object itself.
+ */
+ public StorageQueueInner withMetadata(Map metadata) {
+ if (this.innerQueueProperties() == null) {
+ this.innerQueueProperties = new QueueProperties();
+ }
+ this.innerQueueProperties().withMetadata(metadata);
+ return this;
+ }
+
+ /**
+ * Get the approximateMessageCount property: Integer indicating an approximate number of messages in the queue. This
+ * number is not lower than the actual number of messages in the queue, but could be higher.
+ *
+ * @return the approximateMessageCount value.
+ */
+ public Integer approximateMessageCount() {
+ return this.innerQueueProperties() == null ? null : this.innerQueueProperties().approximateMessageCount();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerQueueProperties() != null) {
+ innerQueueProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableInner.java
new file mode 100644
index 000000000000..66cd593db5bd
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableInner.java
@@ -0,0 +1,73 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.TableSignedIdentifier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Properties of the table, including Id, resource name, resource type. */
+@Fluent
+public final class TableInner extends ProxyResource {
+ /*
+ * Table resource properties.
+ */
+ @JsonProperty(value = "properties")
+ private TableProperties innerTableProperties;
+
+ /**
+ * Get the innerTableProperties property: Table resource properties.
+ *
+ * @return the innerTableProperties value.
+ */
+ private TableProperties innerTableProperties() {
+ return this.innerTableProperties;
+ }
+
+ /**
+ * Get the tableName property: Table name under the specified account.
+ *
+ * @return the tableName value.
+ */
+ public String tableName() {
+ return this.innerTableProperties() == null ? null : this.innerTableProperties().tableName();
+ }
+
+ /**
+ * Get the signedIdentifiers property: List of stored access policies specified on the table.
+ *
+ * @return the signedIdentifiers value.
+ */
+ public List signedIdentifiers() {
+ return this.innerTableProperties() == null ? null : this.innerTableProperties().signedIdentifiers();
+ }
+
+ /**
+ * Set the signedIdentifiers property: List of stored access policies specified on the table.
+ *
+ * @param signedIdentifiers the signedIdentifiers value to set.
+ * @return the TableInner object itself.
+ */
+ public TableInner withSignedIdentifiers(List signedIdentifiers) {
+ if (this.innerTableProperties() == null) {
+ this.innerTableProperties = new TableProperties();
+ }
+ this.innerTableProperties().withSignedIdentifiers(signedIdentifiers);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerTableProperties() != null) {
+ innerTableProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableProperties.java
new file mode 100644
index 000000000000..3b881b91c9bc
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableProperties.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.TableSignedIdentifier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The TableProperties model. */
+@Fluent
+public final class TableProperties {
+ /*
+ * Table name under the specified account
+ */
+ @JsonProperty(value = "tableName", access = JsonProperty.Access.WRITE_ONLY)
+ private String tableName;
+
+ /*
+ * List of stored access policies specified on the table.
+ */
+ @JsonProperty(value = "signedIdentifiers")
+ private List signedIdentifiers;
+
+ /**
+ * Get the tableName property: Table name under the specified account.
+ *
+ * @return the tableName value.
+ */
+ public String tableName() {
+ return this.tableName;
+ }
+
+ /**
+ * Get the signedIdentifiers property: List of stored access policies specified on the table.
+ *
+ * @return the signedIdentifiers value.
+ */
+ public List signedIdentifiers() {
+ return this.signedIdentifiers;
+ }
+
+ /**
+ * Set the signedIdentifiers property: List of stored access policies specified on the table.
+ *
+ * @param signedIdentifiers the signedIdentifiers value to set.
+ * @return the TableProperties object itself.
+ */
+ public TableProperties withSignedIdentifiers(List signedIdentifiers) {
+ this.signedIdentifiers = signedIdentifiers;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (signedIdentifiers() != null) {
+ signedIdentifiers().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesInner.java
new file mode 100644
index 000000000000..07d73bb753b5
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesInner.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Table service. */
+@Fluent
+public final class TableServicePropertiesInner extends ProxyResource {
+ /*
+ * The properties of a storage account’s Table service.
+ */
+ @JsonProperty(value = "properties")
+ private TableServicePropertiesProperties innerTableServiceProperties;
+
+ /**
+ * Get the innerTableServiceProperties property: The properties of a storage account’s Table service.
+ *
+ * @return the innerTableServiceProperties value.
+ */
+ private TableServicePropertiesProperties innerTableServiceProperties() {
+ return this.innerTableServiceProperties;
+ }
+
+ /**
+ * Get the cors property: Specifies CORS rules for the Table 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 Table service.
+ *
+ * @return the cors value.
+ */
+ public CorsRules cors() {
+ return this.innerTableServiceProperties() == null ? null : this.innerTableServiceProperties().cors();
+ }
+
+ /**
+ * Set the cors property: Specifies CORS rules for the Table 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 Table service.
+ *
+ * @param cors the cors value to set.
+ * @return the TableServicePropertiesInner object itself.
+ */
+ public TableServicePropertiesInner withCors(CorsRules cors) {
+ if (this.innerTableServiceProperties() == null) {
+ this.innerTableServiceProperties = new TableServicePropertiesProperties();
+ }
+ this.innerTableServiceProperties().withCors(cors);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerTableServiceProperties() != null) {
+ innerTableServiceProperties().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesProperties.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesProperties.java
new file mode 100644
index 000000000000..4e80ae7a28c3
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/TableServicePropertiesProperties.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.storage.generated.models.CorsRules;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a storage account’s Table service. */
+@Fluent
+public final class TableServicePropertiesProperties {
+ /*
+ * Specifies CORS rules for the Table 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 Table service.
+ */
+ @JsonProperty(value = "cors")
+ private CorsRules cors;
+
+ /**
+ * Get the cors property: Specifies CORS rules for the Table 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 Table service.
+ *
+ * @return the cors value.
+ */
+ public CorsRules cors() {
+ return this.cors;
+ }
+
+ /**
+ * Set the cors property: Specifies CORS rules for the Table 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 Table service.
+ *
+ * @param cors the cors value to set.
+ * @return the TableServicePropertiesProperties object itself.
+ */
+ public TableServicePropertiesProperties withCors(CorsRules cors) {
+ this.cors = cors;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (cors() != null) {
+ cors().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/UsageInner.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/UsageInner.java
new file mode 100644
index 000000000000..563f4f151c2d
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/UsageInner.java
@@ -0,0 +1,86 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.storage.generated.models.UsageName;
+import com.azure.resourcemanager.storage.generated.models.UsageUnit;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes Storage Resource Usage. */
+@Immutable
+public final class UsageInner {
+ /*
+ * Gets the unit of measurement.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private UsageUnit unit;
+
+ /*
+ * Gets the current count of the allocated resources in the subscription.
+ */
+ @JsonProperty(value = "currentValue", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer currentValue;
+
+ /*
+ * Gets the maximum count of the resources that can be allocated in the
+ * subscription.
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer limit;
+
+ /*
+ * Gets the name of the type of usage.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private UsageName name;
+
+ /**
+ * Get the unit property: Gets the unit of measurement.
+ *
+ * @return the unit value.
+ */
+ public UsageUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the currentValue property: Gets the current count of the allocated resources in the subscription.
+ *
+ * @return the currentValue value.
+ */
+ public Integer currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Get the limit property: Gets the maximum count of the resources that can be allocated in the subscription.
+ *
+ * @return the limit value.
+ */
+ public Integer limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the name property: Gets the name of the type of usage.
+ *
+ * @return the name value.
+ */
+ public UsageName name() {
+ return this.name;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() != null) {
+ name().validate();
+ }
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/package-info.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/package-info.java
new file mode 100644
index 000000000000..dec7a10810ff
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for StorageManagementClient. The Azure Storage Management API. */
+package com.azure.resourcemanager.storage.generated.fluent.models;
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/package-info.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/package-info.java
new file mode 100644
index 000000000000..e75af1291733
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for StorageManagementClient. The Azure Storage Management API. */
+package com.azure.resourcemanager.storage.generated.fluent;
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainerImpl.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainerImpl.java
new file mode 100644
index 000000000000..7670082dadc2
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainerImpl.java
@@ -0,0 +1,300 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobContainerInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LegalHoldInner;
+import com.azure.resourcemanager.storage.generated.models.BlobContainer;
+import com.azure.resourcemanager.storage.generated.models.ImmutabilityPolicyProperties;
+import com.azure.resourcemanager.storage.generated.models.ImmutableStorageWithVersioning;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerRequest;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerResponse;
+import com.azure.resourcemanager.storage.generated.models.LeaseDuration;
+import com.azure.resourcemanager.storage.generated.models.LeaseState;
+import com.azure.resourcemanager.storage.generated.models.LeaseStatus;
+import com.azure.resourcemanager.storage.generated.models.LegalHold;
+import com.azure.resourcemanager.storage.generated.models.LegalHoldProperties;
+import com.azure.resourcemanager.storage.generated.models.PublicAccess;
+import java.time.OffsetDateTime;
+import java.util.Collections;
+import java.util.Map;
+
+public final class BlobContainerImpl implements BlobContainer, BlobContainer.Definition, BlobContainer.Update {
+ private BlobContainerInner innerObject;
+
+ private final com.azure.resourcemanager.storage.generated.StorageManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String etag() {
+ return this.innerModel().etag();
+ }
+
+ public String version() {
+ return this.innerModel().version();
+ }
+
+ public Boolean deleted() {
+ return this.innerModel().deleted();
+ }
+
+ public OffsetDateTime deletedTime() {
+ return this.innerModel().deletedTime();
+ }
+
+ public Integer remainingRetentionDays() {
+ return this.innerModel().remainingRetentionDays();
+ }
+
+ public String defaultEncryptionScope() {
+ return this.innerModel().defaultEncryptionScope();
+ }
+
+ public Boolean denyEncryptionScopeOverride() {
+ return this.innerModel().denyEncryptionScopeOverride();
+ }
+
+ public PublicAccess publicAccess() {
+ return this.innerModel().publicAccess();
+ }
+
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerModel().lastModifiedTime();
+ }
+
+ public LeaseStatus leaseStatus() {
+ return this.innerModel().leaseStatus();
+ }
+
+ public LeaseState leaseState() {
+ return this.innerModel().leaseState();
+ }
+
+ public LeaseDuration leaseDuration() {
+ return this.innerModel().leaseDuration();
+ }
+
+ public Map metadata() {
+ Map inner = this.innerModel().metadata();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public ImmutabilityPolicyProperties immutabilityPolicy() {
+ return this.innerModel().immutabilityPolicy();
+ }
+
+ public LegalHoldProperties legalHold() {
+ return this.innerModel().legalHold();
+ }
+
+ public Boolean hasLegalHold() {
+ return this.innerModel().hasLegalHold();
+ }
+
+ public Boolean hasImmutabilityPolicy() {
+ return this.innerModel().hasImmutabilityPolicy();
+ }
+
+ public ImmutableStorageWithVersioning immutableStorageWithVersioning() {
+ return this.innerModel().immutableStorageWithVersioning();
+ }
+
+ public Boolean enableNfsV3RootSquash() {
+ return this.innerModel().enableNfsV3RootSquash();
+ }
+
+ public Boolean enableNfsV3AllSquash() {
+ return this.innerModel().enableNfsV3AllSquash();
+ }
+
+ public BlobContainerInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.storage.generated.StorageManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String accountName;
+
+ private String containerName;
+
+ public BlobContainerImpl withExistingStorageAccount(String resourceGroupName, String accountName) {
+ this.resourceGroupName = resourceGroupName;
+ this.accountName = accountName;
+ return this;
+ }
+
+ public BlobContainer create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .createWithResponse(resourceGroupName, accountName, containerName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public BlobContainer create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .createWithResponse(resourceGroupName, accountName, containerName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ BlobContainerImpl(String name, com.azure.resourcemanager.storage.generated.StorageManager serviceManager) {
+ this.innerObject = new BlobContainerInner();
+ this.serviceManager = serviceManager;
+ this.containerName = name;
+ }
+
+ public BlobContainerImpl update() {
+ return this;
+ }
+
+ public BlobContainer apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .updateWithResponse(resourceGroupName, accountName, containerName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public BlobContainer apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .updateWithResponse(resourceGroupName, accountName, containerName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ BlobContainerImpl(
+ BlobContainerInner innerObject, com.azure.resourcemanager.storage.generated.StorageManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.accountName = Utils.getValueFromIdByName(innerObject.id(), "storageAccounts");
+ this.containerName = Utils.getValueFromIdByName(innerObject.id(), "containers");
+ }
+
+ public BlobContainer refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .getWithResponse(resourceGroupName, accountName, containerName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public BlobContainer refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getBlobContainers()
+ .getWithResponse(resourceGroupName, accountName, containerName, context)
+ .getValue();
+ return this;
+ }
+
+ public LegalHold setLegalHold(LegalHoldInner legalHold) {
+ return serviceManager.blobContainers().setLegalHold(resourceGroupName, accountName, containerName, legalHold);
+ }
+
+ public Response setLegalHoldWithResponse(LegalHoldInner legalHold, Context context) {
+ return serviceManager
+ .blobContainers()
+ .setLegalHoldWithResponse(resourceGroupName, accountName, containerName, legalHold, context);
+ }
+
+ public LegalHold clearLegalHold(LegalHoldInner legalHold) {
+ return serviceManager.blobContainers().clearLegalHold(resourceGroupName, accountName, containerName, legalHold);
+ }
+
+ public Response clearLegalHoldWithResponse(LegalHoldInner legalHold, Context context) {
+ return serviceManager
+ .blobContainers()
+ .clearLegalHoldWithResponse(resourceGroupName, accountName, containerName, legalHold, context);
+ }
+
+ public LeaseContainerResponse lease() {
+ return serviceManager.blobContainers().lease(resourceGroupName, accountName, containerName);
+ }
+
+ public Response leaseWithResponse(LeaseContainerRequest parameters, Context context) {
+ return serviceManager
+ .blobContainers()
+ .leaseWithResponse(resourceGroupName, accountName, containerName, parameters, context);
+ }
+
+ public void objectLevelWorm() {
+ serviceManager.blobContainers().objectLevelWorm(resourceGroupName, accountName, containerName);
+ }
+
+ public void objectLevelWorm(Context context) {
+ serviceManager.blobContainers().objectLevelWorm(resourceGroupName, accountName, containerName, context);
+ }
+
+ public BlobContainerImpl withDefaultEncryptionScope(String defaultEncryptionScope) {
+ this.innerModel().withDefaultEncryptionScope(defaultEncryptionScope);
+ return this;
+ }
+
+ public BlobContainerImpl withDenyEncryptionScopeOverride(Boolean denyEncryptionScopeOverride) {
+ this.innerModel().withDenyEncryptionScopeOverride(denyEncryptionScopeOverride);
+ return this;
+ }
+
+ public BlobContainerImpl withPublicAccess(PublicAccess publicAccess) {
+ this.innerModel().withPublicAccess(publicAccess);
+ return this;
+ }
+
+ public BlobContainerImpl withMetadata(Map metadata) {
+ this.innerModel().withMetadata(metadata);
+ return this;
+ }
+
+ public BlobContainerImpl withImmutableStorageWithVersioning(
+ ImmutableStorageWithVersioning immutableStorageWithVersioning) {
+ this.innerModel().withImmutableStorageWithVersioning(immutableStorageWithVersioning);
+ return this;
+ }
+
+ public BlobContainerImpl withEnableNfsV3RootSquash(Boolean enableNfsV3RootSquash) {
+ this.innerModel().withEnableNfsV3RootSquash(enableNfsV3RootSquash);
+ return this;
+ }
+
+ public BlobContainerImpl withEnableNfsV3AllSquash(Boolean enableNfsV3AllSquash) {
+ this.innerModel().withEnableNfsV3AllSquash(enableNfsV3AllSquash);
+ return this;
+ }
+}
diff --git a/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainersClientImpl.java b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainersClientImpl.java
new file mode 100644
index 000000000000..275ba056d4ab
--- /dev/null
+++ b/sdk/storage/azure-resourcemanager-storage-generated/src/main/java/com/azure/resourcemanager/storage/generated/implementation/BlobContainersClientImpl.java
@@ -0,0 +1,3681 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.storage.generated.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.storage.generated.fluent.BlobContainersClient;
+import com.azure.resourcemanager.storage.generated.fluent.models.BlobContainerInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ImmutabilityPolicyInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LeaseContainerResponseInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.LegalHoldInner;
+import com.azure.resourcemanager.storage.generated.fluent.models.ListContainerItemInner;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersCreateOrUpdateImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersDeleteImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersExtendImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersGetImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.BlobContainersLockImmutabilityPolicyResponse;
+import com.azure.resourcemanager.storage.generated.models.LeaseContainerRequest;
+import com.azure.resourcemanager.storage.generated.models.ListContainerItems;
+import com.azure.resourcemanager.storage.generated.models.ListContainersInclude;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BlobContainersClient. */
+public final class BlobContainersClientImpl implements BlobContainersClient {
+ /** The proxy service used to perform REST calls. */
+ private final BlobContainersService service;
+
+ /** The service client containing this operation class. */
+ private final StorageManagementClientImpl client;
+
+ /**
+ * Initializes an instance of BlobContainersClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BlobContainersClientImpl(StorageManagementClientImpl client) {
+ this.service =
+ RestProxy.create(BlobContainersService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for StorageManagementClientBlobContainers to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "StorageManagementCli")
+ private interface BlobContainersService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$maxpagesize") String maxpagesize,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$include") ListContainersInclude include,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") BlobContainerInner blobContainer,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") BlobContainerInner blobContainer,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Accept: application/json;q=0.9", "Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> setLegalHold(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") LegalHoldInner legalHold,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> clearLegalHold(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") LegalHoldInner legalHold,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies"
+ + "/{immutabilityPolicyName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono createOrUpdateImmutabilityPolicy(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("immutabilityPolicyName") String immutabilityPolicyName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("If-Match") String ifMatch,
+ @BodyParam("application/json") ImmutabilityPolicyInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies"
+ + "/{immutabilityPolicyName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono getImmutabilityPolicy(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("immutabilityPolicyName") String immutabilityPolicyName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("If-Match") String ifMatch,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies"
+ + "/{immutabilityPolicyName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono deleteImmutabilityPolicy(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @PathParam("immutabilityPolicyName") String immutabilityPolicyName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("If-Match") String ifMatch,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies"
+ + "/default/lock")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono lockImmutabilityPolicy(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("If-Match") String ifMatch,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies"
+ + "/default/extend")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono extendImmutabilityPolicy(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("If-Match") String ifMatch,
+ @BodyParam("application/json") ImmutabilityPolicyInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> lease(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") LeaseContainerRequest parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage"
+ + "/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/migrate")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> objectLevelWorm(
+ @HostParam("$host") String endpoint,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("accountName") String accountName,
+ @PathParam("containerName") String containerName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ maxpagesize,
+ filter,
+ include,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ maxpagesize,
+ filter,
+ include,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, accountName, maxpagesize, filter, include),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String accountName) {
+ final String maxpagesize = null;
+ final String filter = null;
+ final ListContainersInclude include = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, accountName, maxpagesize, filter, include),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include,
+ Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, accountName, maxpagesize, filter, include, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String accountName) {
+ final String maxpagesize = null;
+ final String filter = null;
+ final ListContainersInclude include = null;
+ return new PagedIterable<>(listAsync(resourceGroupName, accountName, maxpagesize, filter, include));
+ }
+
+ /**
+ * 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.
+ * @param maxpagesize Optional. Specified maximum number of containers that can be included in the list.
+ * @param filter Optional. When specified, only container names starting with the filter will be listed.
+ * @param include Optional, used to include the properties for soft deleted blob containers.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response schema as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String accountName,
+ String maxpagesize,
+ String filter,
+ ListContainersInclude include,
+ Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, accountName, maxpagesize, filter, include, context));
+ }
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (blobContainer == null) {
+ return Mono.error(new IllegalArgumentException("Parameter blobContainer is required and cannot be null."));
+ } else {
+ blobContainer.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .create(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ blobContainer,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createWithResponseAsync(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (blobContainer == null) {
+ return Mono.error(new IllegalArgumentException("Parameter blobContainer is required and cannot be null."));
+ } else {
+ blobContainer.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .create(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ blobContainer,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ return createWithResponseAsync(resourceGroupName, accountName, containerName, blobContainer)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BlobContainerInner create(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ return createAsync(resourceGroupName, accountName, containerName, blobContainer).block();
+ }
+
+ /**
+ * Creates a new container under the specified account as described by request body. The container resource includes
+ * metadata and properties for that container. It does not include a list of the blobs contained by the 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 blobContainer Properties of the blob container to create.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context) {
+ return createWithResponseAsync(resourceGroupName, accountName, containerName, blobContainer, context).block();
+ }
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (blobContainer == null) {
+ return Mono.error(new IllegalArgumentException("Parameter blobContainer is required and cannot be null."));
+ } else {
+ blobContainer.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ blobContainer,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (blobContainer == null) {
+ return Mono.error(new IllegalArgumentException("Parameter blobContainer is required and cannot be null."));
+ } else {
+ blobContainer.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ blobContainer,
+ accept,
+ context);
+ }
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ return updateWithResponseAsync(resourceGroupName, accountName, containerName, blobContainer)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BlobContainerInner update(
+ String resourceGroupName, String accountName, String containerName, BlobContainerInner blobContainer) {
+ return updateAsync(resourceGroupName, accountName, containerName, blobContainer).block();
+ }
+
+ /**
+ * Updates container properties as specified in request body. Properties not mentioned in the request will be
+ * unchanged. Update fails if the specified container doesn't already exist.
+ *
+ * @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 blobContainer Properties to update for the blob container.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of the blob container, including Id, resource name, resource type, Etag along with {@link
+ * Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String containerName,
+ BlobContainerInner blobContainer,
+ Context context) {
+ return updateWithResponseAsync(resourceGroupName, accountName, containerName, blobContainer, context).block();
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String resourceGroupName, String accountName, String containerName) {
+ return getWithResponseAsync(resourceGroupName, accountName, containerName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BlobContainerInner get(String resourceGroupName, String accountName, String containerName) {
+ return getAsync(resourceGroupName, accountName, containerName).block();
+ }
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return properties of a specified container along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String accountName, String containerName, Context context) {
+ return getWithResponseAsync(resourceGroupName, accountName, containerName, context).block();
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName, String accountName, String containerName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (accountName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter accountName is required and cannot be null."));
+ }
+ if (containerName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter containerName is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ resourceGroupName,
+ accountName,
+ containerName,
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ context);
+ }
+
+ /**
+ * 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.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono