diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs
index 373666d5b8d6..5d5f9b975de7 100644
--- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs
+++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs
@@ -245,6 +245,13 @@ public void TestAzureStorageAccountKeySASPolicy()
public void TestAzureStorageAccountUserAssignedIdentity()
{
TestRunner.RunTestScript("Test-AzureStorageAccountUserAssignedIdentity");
- }
+ }
+
+ [Fact]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ public void TestStorageBlobInventory()
+ {
+ TestRunner.RunTestScript("Test-StorageBlobInventory");
+ }
}
}
diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1
index dcbb9db30214..4b8d788f2312 100644
--- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1
+++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1
@@ -1719,4 +1719,227 @@ function Test-AzureStorageAccountUserAssignedIdentity
# Cleanup
Clean-ResourceGroup $rgname
}
+}
+
+<#
+.SYNOPSIS
+Test Test-StorageBlobInventory
+.DESCRIPTION
+SmokeTest
+#>
+function Test-StorageBlobInventory
+{
+ # Setup
+ $rgname = Get-StorageManagementTestResourceName;
+
+ try
+ {
+ # Test
+ $stoname = 'sto' + $rgname;
+ $stotype = 'Standard_LRS';
+ $loc = Get-ProviderLocation_Canary ResourceManagement;
+ $kind = 'StorageV2'
+ $containerName = "container"+ $rgname
+
+ New-AzResourceGroup -Name $rgname -Location $loc;
+ Write-Output ("Resource Group created")
+
+ # new account and container, enable versioning
+ New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -SkuName $stotype
+ New-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName
+ Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -IsVersioningEnabled $true
+
+ #create rule objects
+ $rule1 = New-AzStorageBlobInventoryPolicyRule -Name test1 -Disabled -BlobType blockBlob,appendBlob -PrefixMatch abc,edf,eqwewqe,eqwewqreewqe,qwewqewqewqewqewadasd -IncludeSnapshot -IncludeBlobVersion `
+ -Destination $containerName -Format Parquet -Schedule Weekly `
+ -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Metadata
+ $rule2 = New-AzStorageBlobInventoryPolicyRule -Name test2 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2
+ $rule3 = New-AzStorageBlobInventoryPolicyRule -Name test3 -Destination $containerName -BlobType appendBlob -PrefixMatch abc1,edf1 -Format Csv -Schedule Weekly -BlobSchemaField Name
+
+ # Set inventory policy
+ $policy1 = Set-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -Disabled -Rule $rule1,$rule2,$rule3
+ Assert-AreEqual $false $policy1.Enabled
+ Assert-AreEqual 3 $policy1.Rules.Count
+
+ # get inventory policy
+ $policy1 = Get-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
+ Assert-AreEqual $false $policy1.Enabled
+ Assert-AreEqual 3 $policy1.Rules.Count
+ Assert-AreEqual "test1" $policy1.Rules[0].Name
+ Assert-AreEqual $false $policy1.Rules[0].Enabled
+ Assert-AreEqual $containerName $policy1.Rules[0].Destination
+ Assert-AreEqual "Parquet" $policy1.Rules[0].Definition.Format
+ Assert-AreEqual "Weekly" $policy1.Rules[0].Definition.Schedule
+ Assert-AreEqual "Blob" $policy1.Rules[0].Definition.ObjectType
+ Assert-AreEqual 12 $policy1.Rules[0].Definition.SchemaFields.Count
+ Assert-AreEqual $true $policy1.Rules[0].Definition.Filters.IncludeSnapshots
+ Assert-AreEqual $true $policy1.Rules[0].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy1.Rules[0].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 5 $policy1.Rules[0].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "test2" $policy1.Rules[1].Name
+ Assert-AreEqual $false $policy1.Rules[1].Enabled
+ Assert-AreEqual $containerName $policy1.Rules[1].Destination
+ Assert-AreEqual "Csv" $policy1.Rules[1].Definition.Format
+ Assert-AreEqual "Daily" $policy1.Rules[1].Definition.Schedule
+ Assert-AreEqual "Container" $policy1.Rules[1].Definition.ObjectType
+ Assert-AreEqual 9 $policy1.Rules[1].Definition.SchemaFields.Count
+ Assert-Null $policy1.Rules[1].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy1.Rules[1].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy1.Rules[1].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "test3" $policy1.Rules[2].Name
+ Assert-AreEqual $true $policy1.Rules[2].Enabled
+ Assert-AreEqual $containerName $policy1.Rules[2].Destination
+ Assert-AreEqual "Csv" $policy1.Rules[2].Definition.Format
+ Assert-AreEqual "Weekly" $policy1.Rules[2].Definition.Schedule
+ Assert-AreEqual "Blob" $policy1.Rules[2].Definition.ObjectType
+ Assert-AreEqual 1 $policy1.Rules[2].Definition.SchemaFields.Count
+ Assert-Null $policy1.Rules[2].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy1.Rules[2].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 1 $policy1.Rules[2].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 2 $policy1.Rules[2].Definition.Filters.PrefixMatch.Count
+
+ # set policy with json and account name pipeline
+ $policy2 = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname | Set-AzStorageBlobInventoryPolicy -Policy (@{
+ Enabled=$true;
+ Rules=(@{
+ Enabled=$true;
+ Name="Test1";
+ Destination=$containerName;
+ Definition=(@{
+ ObjectType="Blob";
+ Format="Csv";
+ Schedule="Weekly";
+ SchemaFields=@("name","Content-Length","BlobType","Snapshot","VersionId","IsCurrentVersion");
+ Filters=(@{
+ BlobTypes=@("blockBlob","appendBlob");
+ PrefixMatch=@("prefix1","prefix2");
+ IncludeSnapshots=$true;
+ IncludeBlobVersions=$true;
+ })
+ })
+ },
+ @{
+ Enabled=$false;
+ Name="Test2";
+ Destination=$containerName;
+ Definition=(@{
+ ObjectType="Container";
+ Format="Parquet";
+ Schedule="Daily";
+ SchemaFields=@("name","Metadata","PublicAccess");
+ Filters=(@{
+ PrefixMatch=@("conpre1","conpre2");
+ })
+ })
+ })
+ })
+ Assert-AreEqual $true $policy2.Enabled
+ Assert-AreEqual 2 $policy2.Rules.Count
+
+ # get inventory policy
+ $policy2 = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname | Get-AzStorageBlobInventoryPolicy
+ Assert-AreEqual $true $policy2.Enabled
+ Assert-AreEqual 2 $policy2.Rules.Count
+ Assert-AreEqual "Test1" $policy2.Rules[0].Name
+ Assert-AreEqual $true $policy2.Rules[0].Enabled
+ Assert-AreEqual $containerName $policy2.Rules[0].Destination
+ Assert-AreEqual "Csv" $policy2.Rules[0].Definition.Format
+ Assert-AreEqual "Weekly" $policy2.Rules[0].Definition.Schedule
+ Assert-AreEqual "Blob" $policy2.Rules[0].Definition.ObjectType
+ Assert-AreEqual 6 $policy2.Rules[0].Definition.SchemaFields.Count
+ Assert-AreEqual $true $policy2.Rules[0].Definition.Filters.IncludeSnapshots
+ Assert-AreEqual $true $policy2.Rules[0].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy2.Rules[0].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 2 $policy2.Rules[0].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "Test2" $policy2.Rules[1].Name
+ Assert-AreEqual $false $policy2.Rules[1].Enabled
+ Assert-AreEqual $containerName $policy2.Rules[1].Destination
+ Assert-AreEqual "Parquet" $policy2.Rules[1].Definition.Format
+ Assert-AreEqual "Daily" $policy2.Rules[1].Definition.Schedule
+ Assert-AreEqual "Container" $policy2.Rules[1].Definition.ObjectType
+ Assert-AreEqual 3 $policy2.Rules[1].Definition.SchemaFields.Count
+ Assert-Null $policy2.Rules[1].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy2.Rules[1].Definition.Filters.IncludeBlobVersions
+ Assert-Null $policy2.Rules[1].Definition.Filters.BlobTypes
+ Assert-AreEqual 2 $policy2.Rules[1].Definition.Filters.PrefixMatch.Count
+
+ # remove policy
+ Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname | Remove-AzStorageBlobInventoryPolicy
+
+ # set policy by pipeline policy then get inventory policy
+ $policy3 = $policy1 | Set-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
+ $policy3 = Get-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
+ Assert-AreEqual $false $policy3.Enabled
+ Assert-AreEqual 3 $policy3.Rules.Count
+ Assert-AreEqual "test1" $policy3.Rules[0].Name
+ Assert-AreEqual $false $policy3.Rules[0].Enabled
+ Assert-AreEqual $containerName $policy3.Rules[0].Destination
+ Assert-AreEqual "Parquet" $policy3.Rules[0].Definition.Format
+ Assert-AreEqual "Weekly" $policy3.Rules[0].Definition.Schedule
+ Assert-AreEqual "Blob" $policy3.Rules[0].Definition.ObjectType
+ Assert-AreEqual 12 $policy3.Rules[0].Definition.SchemaFields.Count
+ Assert-AreEqual $true $policy3.Rules[0].Definition.Filters.IncludeSnapshots
+ Assert-AreEqual $true $policy3.Rules[0].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy3.Rules[0].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 5 $policy3.Rules[0].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "test2" $policy3.Rules[1].Name
+ Assert-AreEqual $false $policy3.Rules[1].Enabled
+ Assert-AreEqual $containerName $policy3.Rules[1].Destination
+ Assert-AreEqual "Csv" $policy3.Rules[1].Definition.Format
+ Assert-AreEqual "Daily" $policy3.Rules[1].Definition.Schedule
+ Assert-AreEqual "Container" $policy3.Rules[1].Definition.ObjectType
+ Assert-AreEqual 9 $policy3.Rules[1].Definition.SchemaFields.Count
+ Assert-Null $policy3.Rules[1].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy3.Rules[1].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy3.Rules[1].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "test3" $policy3.Rules[2].Name
+ Assert-AreEqual $true $policy3.Rules[2].Enabled
+ Assert-AreEqual $containerName $policy3.Rules[2].Destination
+ Assert-AreEqual "Csv" $policy3.Rules[2].Definition.Format
+ Assert-AreEqual "Weekly" $policy3.Rules[2].Definition.Schedule
+ Assert-AreEqual "Blob" $policy3.Rules[2].Definition.ObjectType
+ Assert-AreEqual 1 $policy3.Rules[2].Definition.SchemaFields.Count
+ Assert-Null $policy3.Rules[2].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy3.Rules[2].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 1 $policy3.Rules[2].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 2 $policy3.Rules[2].Definition.Filters.PrefixMatch.Count
+
+ # set policy by pipeline policy rules then get inventory policy
+ $policy4 = ,($policy2.Rules) | Set-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -Disabled
+ $policy4 = Get-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
+ Assert-AreEqual $false $policy4.Enabled
+ Assert-AreEqual 2 $policy4.Rules.Count
+ Assert-AreEqual "Test1" $policy4.Rules[0].Name
+ Assert-AreEqual $true $policy4.Rules[0].Enabled
+ Assert-AreEqual $containerName $policy4.Rules[0].Destination
+ Assert-AreEqual "Csv" $policy4.Rules[0].Definition.Format
+ Assert-AreEqual "Weekly" $policy4.Rules[0].Definition.Schedule
+ Assert-AreEqual "Blob" $policy4.Rules[0].Definition.ObjectType
+ Assert-AreEqual 6 $policy4.Rules[0].Definition.SchemaFields.Count
+ Assert-AreEqual $true $policy4.Rules[0].Definition.Filters.IncludeSnapshots
+ Assert-AreEqual $true $policy4.Rules[0].Definition.Filters.IncludeBlobVersions
+ Assert-AreEqual 2 $policy4.Rules[0].Definition.Filters.BlobTypes.Count
+ Assert-AreEqual 2 $policy4.Rules[0].Definition.Filters.PrefixMatch.Count
+ Assert-AreEqual "Test2" $policy4.Rules[1].Name
+ Assert-AreEqual $false $policy4.Rules[1].Enabled
+ Assert-AreEqual $containerName $policy4.Rules[1].Destination
+ Assert-AreEqual "Parquet" $policy4.Rules[1].Definition.Format
+ Assert-AreEqual "Daily" $policy4.Rules[1].Definition.Schedule
+ Assert-AreEqual "Container" $policy4.Rules[1].Definition.ObjectType
+ Assert-AreEqual 3 $policy4.Rules[1].Definition.SchemaFields.Count
+ Assert-Null $policy4.Rules[1].Definition.Filters.IncludeSnapshots
+ Assert-Null $policy4.Rules[1].Definition.Filters.IncludeBlobVersions
+ Assert-Null $policy4.Rules[1].Definition.Filters.BlobTypes
+ Assert-AreEqual 2 $policy4.Rules[1].Definition.Filters.PrefixMatch.Count
+
+ # remove policy
+ Remove-AzStorageBlobInventoryPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
+
+ Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
+ }
+ finally
+ {
+ # Cleanup
+ Clean-ResourceGroup $rgname
+ }
}
\ No newline at end of file
diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestStorageBlobInventory.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestStorageBlobInventory.json
new file mode 100644
index 000000000000..b3dc7da01e47
--- /dev/null
+++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestStorageBlobInventory.json
@@ -0,0 +1,1734 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg7815?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "e4b062f6-6a7d-4945-90df-816837fcc532"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "33"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1199"
+ ],
+ "x-ms-request-id": [
+ "72c412a4-17c6-42c7-a7d0-6fcb81eed616"
+ ],
+ "x-ms-correlation-request-id": [
+ "72c412a4-17c6-42c7-a7d0-6fcb81eed616"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103001Z:72c412a4-17c6-42c7-a7d0-6fcb81eed616"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:01 GMT"
+ ],
+ "Content-Length": [
+ "182"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815\",\r\n \"name\": \"pstestrg7815\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}",
+ "StatusCode": 201
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/checkNameAvailability?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAyMS0wNC0wMQ==",
+ "RequestMethod": "POST",
+ "RequestBody": "{\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "10a2e92d-cec5-40a5-a790-2781fe903af3"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "81"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "86f30c66-aa9b-4cfe-809b-6cf39719d59a"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11996"
+ ],
+ "x-ms-correlation-request-id": [
+ "e01e6908-762b-45df-98b4-a9a230f5c830"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103003Z:e01e6908-762b-45df-98b4-a9a230f5c830"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:02 GMT"
+ ],
+ "Content-Length": [
+ "22"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"nameAvailable\": true\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "10a2e92d-cec5-40a5-a790-2781fe903af3"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "103"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "Location": [
+ "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/15ef2226-1c0d-48fb-83b3-9ca8d6b273b9?monitor=true&api-version=2021-04-01"
+ ],
+ "Retry-After": [
+ "17"
+ ],
+ "x-ms-request-id": [
+ "15ef2226-1c0d-48fb-83b3-9ca8d6b273b9"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1198"
+ ],
+ "x-ms-correlation-request-id": [
+ "c8cb8c8d-97ef-4d60-b2e1-17d5d989a71e"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103013Z:c8cb8c8d-97ef-4d60-b2e1-17d5d989a71e"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:12 GMT"
+ ],
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 202
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/15ef2226-1c0d-48fb-83b3-9ca8d6b273b9?monitor=true&api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzE1ZWYyMjI2LTFjMGQtNDhmYi04M2IzLTljYThkNmIyNzNiOT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAyMS0wNC0wMQ==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "10a2e92d-cec5-40a5-a790-2781fe903af3"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "d76eccf2-33c1-44af-9b94-b48ea9581cb6"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11995"
+ ],
+ "x-ms-correlation-request-id": [
+ "473b26e2-0fe5-4f36-90cb-1f67f25cfdcc"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103031Z:473b26e2-0fe5-4f36-90cb-1f67f25cfdcc"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:30 GMT"
+ ],
+ "Content-Length": [
+ "1361"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815\",\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"keyCreationTime\": {\r\n \"key1\": \"2021-05-12T10:30:11.0603638Z\",\r\n \"key2\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"privateEndpointConnections\": [],\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2021-05-12T10:30:10.9653451Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg7815.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg7815.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg7815.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg7815.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg7815.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg7815.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "10a2e92d-cec5-40a5-a790-2781fe903af3"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "adefd8ed-ec4c-4602-9fbb-59d0f27aa463"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11994"
+ ],
+ "x-ms-correlation-request-id": [
+ "59ff3b38-1b0c-4979-a7f3-384f285ba05d"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103031Z:59ff3b38-1b0c-4979-a7f3-384f285ba05d"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:31 GMT"
+ ],
+ "Content-Length": [
+ "1361"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815\",\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"keyCreationTime\": {\r\n \"key1\": \"2021-05-12T10:30:11.0603638Z\",\r\n \"key2\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"privateEndpointConnections\": [],\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2021-05-12T10:30:10.9653451Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg7815.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg7815.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg7815.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg7815.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg7815.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg7815.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "8ea9e718-1946-43c1-972b-5474945a3ab8"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "6a77847a-ee19-404b-abed-5a7f809170af"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11995"
+ ],
+ "x-ms-correlation-request-id": [
+ "4aa2b9ea-45d1-440f-898c-948acf400f4d"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103039Z:4aa2b9ea-45d1-440f-898c-948acf400f4d"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:39 GMT"
+ ],
+ "Content-Length": [
+ "1361"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815\",\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"keyCreationTime\": {\r\n \"key1\": \"2021-05-12T10:30:11.0603638Z\",\r\n \"key2\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"privateEndpointConnections\": [],\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2021-05-12T10:30:10.9653451Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg7815.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg7815.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg7815.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg7815.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg7815.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg7815.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "a80cc08c-3beb-46c9-be7e-e99da168dbcd"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "4ab4934f-9ae6-4e1e-9dae-9992d280d7ef"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11992"
+ ],
+ "x-ms-correlation-request-id": [
+ "2487c01d-3df3-4b42-b843-6fb908470021"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103043Z:2487c01d-3df3-4b42-b843-6fb908470021"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:42 GMT"
+ ],
+ "Content-Length": [
+ "1361"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815\",\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"keyCreationTime\": {\r\n \"key1\": \"2021-05-12T10:30:11.0603638Z\",\r\n \"key2\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"privateEndpointConnections\": [],\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2021-05-12T10:30:10.9653451Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg7815.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg7815.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg7815.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg7815.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg7815.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg7815.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "0eac802f-8bb9-410b-85c8-8af08b30d657"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "4a7f510f-a7c5-4a55-abfd-133a34c00539"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11999"
+ ],
+ "x-ms-correlation-request-id": [
+ "30ae806d-eb13-47f8-81b2-bb2dd9a512d3"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103044Z:30ae806d-eb13-47f8-81b2-bb2dd9a512d3"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:44 GMT"
+ ],
+ "Content-Length": [
+ "1361"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815\",\r\n \"name\": \"stopstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"keyCreationTime\": {\r\n \"key1\": \"2021-05-12T10:30:11.0603638Z\",\r\n \"key2\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"privateEndpointConnections\": [],\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2021-05-12T10:30:11.0603638Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2021-05-12T10:30:10.9653451Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg7815.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg7815.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg7815.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg7815.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg7815.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg7815.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default/containers/containerpstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2NvbnRhaW5lcnBzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "PUT",
+ "RequestBody": "{}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "ad8e7b17-067a-4e3a-a68e-18d6a28b24b6"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "2"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "ETag": [
+ "\"0x8D91530F94506F7\""
+ ],
+ "x-ms-request-id": [
+ "878e556d-fa9e-433a-8564-895593976750"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1198"
+ ],
+ "x-ms-correlation-request-id": [
+ "a21df041-8b33-4ac3-a091-643a429df4db"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103033Z:a21df041-8b33-4ac3-a091-643a429df4db"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:33 GMT"
+ ],
+ "Content-Length": [
+ "300"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default/containers/containerpstestrg7815\",\r\n \"name\": \"containerpstestrg7815\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\"\r\n}",
+ "StatusCode": 201
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"properties\": {\r\n \"isVersioningEnabled\": true\r\n }\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "c3547f75-38ca-4c7b-8fff-f18eb6d5d4c0"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "61"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "98f25d08-ae16-426b-9f7e-a5141b83f430"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1199"
+ ],
+ "x-ms-correlation-request-id": [
+ "9d38f667-6cd1-454f-920c-330cd501ad06"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103035Z:9d38f667-6cd1-454f-920c-330cd501ad06"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:35 GMT"
+ ],
+ "Content-Length": [
+ "284"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"isVersioningEnabled\": true\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "c3547f75-38ca-4c7b-8fff-f18eb6d5d4c0"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "17c5147f-10ae-4a21-b71b-a066e33353d2"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11999"
+ ],
+ "x-ms-correlation-request-id": [
+ "91024cee-f826-4d9e-acc2-1b9bf79a34d2"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103036Z:91024cee-f826-4d9e-acc2-1b9bf79a34d2"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:35 GMT"
+ ],
+ "Content-Length": [
+ "398"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n },\r\n \"isVersioningEnabled\": true\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"properties\": {\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"rules\": [\r\n {\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n },\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ],\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ]\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"type\": \"Inventory\"\r\n }\r\n }\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "bbfed877-d00e-4126-9d4e-d7c1e169389b"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "2538"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "f46c13d8-9666-4b0e-b07f-25061e8b57b7"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1199"
+ ],
+ "x-ms-correlation-request-id": [
+ "85533e62-f4dc-46a2-bf5c-0e5aba0e5934"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103037Z:85533e62-f4dc-46a2-bf5c-0e5aba0e5934"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:37 GMT"
+ ],
+ "Content-Length": [
+ "1467"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:37.4253689Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"properties\": {\r\n \"policy\": {\r\n \"enabled\": true,\r\n \"rules\": [\r\n {\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n },\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"type\": \"Inventory\"\r\n }\r\n }\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "8ea9e718-1946-43c1-972b-5474945a3ab8"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1508"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "cee81b7a-3814-49ce-9519-744a4c050dbe"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1197"
+ ],
+ "x-ms-correlation-request-id": [
+ "198eeba1-7906-4ec9-8c99-61fac8ac36a2"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103041Z:198eeba1-7906-4ec9-8c99-61fac8ac36a2"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:41 GMT"
+ ],
+ "Content-Length": [
+ "1006"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:41.6853831Z\",\r\n \"policy\": {\r\n \"enabled\": true,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"properties\": {\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"rules\": [\r\n {\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n },\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ],\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ]\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"type\": \"Inventory\"\r\n }\r\n }\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "52e6ab0d-ad0b-4342-853a-142be71db144"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "2538"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "2d969a69-ffea-4b4c-98de-fb92ca3ba2d6"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1199"
+ ],
+ "x-ms-correlation-request-id": [
+ "356ec49d-3436-4f99-a6ba-9cf8fe17f7ce"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103047Z:356ec49d-3436-4f99-a6ba-9cf8fe17f7ce"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:46 GMT"
+ ],
+ "Content-Length": [
+ "1467"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:47.2103932Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "PUT",
+ "RequestBody": "{\r\n \"properties\": {\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"rules\": [\r\n {\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n },\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ]\r\n }\r\n },\r\n {\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"destination\": \"containerpstestrg7815\",\r\n \"definition\": {\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n },\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"type\": \"Inventory\"\r\n }\r\n }\r\n}",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "c33c57d6-c899-4ff5-b0e1-8a40a13cb7b6"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1509"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "53746c86-996d-4c74-9e8b-e4d1575774c5"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-writes": [
+ "1199"
+ ],
+ "x-ms-correlation-request-id": [
+ "169533da-6d5a-44d4-b572-05168391873e"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103051Z:169533da-6d5a-44d4-b572-05168391873e"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:51 GMT"
+ ],
+ "Content-Length": [
+ "1007"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:51.0203504Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "1860b012-be27-4bb9-8023-c5e3d3296156"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "9d414a36-13b1-4f13-ba5f-af5054e27d64"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11999"
+ ],
+ "x-ms-correlation-request-id": [
+ "2baaadab-7228-463b-ab82-10f746362767"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103039Z:2baaadab-7228-463b-ab82-10f746362767"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:39 GMT"
+ ],
+ "Content-Length": [
+ "1467"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:37.4253689Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "a80cc08c-3beb-46c9-be7e-e99da168dbcd"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "51bd1db9-a509-4be9-ae14-2816eccd959f"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11991"
+ ],
+ "x-ms-correlation-request-id": [
+ "7d6b0516-20ca-461c-9bae-2cb443f45383"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103043Z:7d6b0516-20ca-461c-9bae-2cb443f45383"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:43 GMT"
+ ],
+ "Content-Length": [
+ "1006"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:41.6853831Z\",\r\n \"policy\": {\r\n \"enabled\": true,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "af2008c1-1cee-4629-b1f1-d61f34fdb19d"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "d8da632a-97b1-4f4c-88b7-0a5e0a248673"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11999"
+ ],
+ "x-ms-correlation-request-id": [
+ "cee87e8d-873f-4120-851f-571a6fdc04e3"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103049Z:cee87e8d-873f-4120-851f-571a6fdc04e3"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:49 GMT"
+ ],
+ "Content-Length": [
+ "1467"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:47.2103932Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test1\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Creation-Time\",\r\n \"Last-Modified\",\r\n \"Content-Length\",\r\n \"Content-MD5\",\r\n \"BlobType\",\r\n \"AccessTier\",\r\n \"AccessTierChangeTime\",\r\n \"Metadata\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc\",\r\n \"edf\",\r\n \"eqwewqe\",\r\n \"eqwewqreewqe\",\r\n \"qwewqewqewqewqewadasd\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"test2\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"Name\",\r\n \"Metadata\",\r\n \"PublicAccess\",\r\n \"Last-Modified\",\r\n \"LeaseStatus\",\r\n \"LeaseState\",\r\n \"LeaseDuration\",\r\n \"HasImmutabilityPolicy\",\r\n \"HasLegalHold\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"con1\",\r\n \"con2\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"test3\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"Name\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"abc1\",\r\n \"edf1\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "dad3eeed-0981-4ee9-ba9c-79de642bb7c1"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "3fa39414-2fb3-409b-bce4-31c748cca7b0"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11999"
+ ],
+ "x-ms-correlation-request-id": [
+ "b819df92-32d7-44ec-b7a5-6dd28dfdb607"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103052Z:b819df92-32d7-44ec-b7a5-6dd28dfdb607"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:51 GMT"
+ ],
+ "Content-Length": [
+ "1007"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Expires": [
+ "-1"
+ ]
+ },
+ "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default\",\r\n \"name\": \"DefaultInventoryPolicy\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/inventoryPolicies\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2021-05-12T10:30:51.0203504Z\",\r\n \"policy\": {\r\n \"enabled\": false,\r\n \"type\": \"Inventory\",\r\n \"rules\": [\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": true,\r\n \"name\": \"Test1\",\r\n \"definition\": {\r\n \"format\": \"Csv\",\r\n \"schedule\": \"Weekly\",\r\n \"objectType\": \"Blob\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Content-Length\",\r\n \"BlobType\",\r\n \"Snapshot\",\r\n \"VersionId\",\r\n \"IsCurrentVersion\"\r\n ],\r\n \"filters\": {\r\n \"blobTypes\": [\r\n \"blockBlob\",\r\n \"appendBlob\"\r\n ],\r\n \"prefixMatch\": [\r\n \"prefix1\",\r\n \"prefix2\"\r\n ],\r\n \"includeBlobVersions\": true,\r\n \"includeSnapshots\": true\r\n }\r\n }\r\n },\r\n {\r\n \"destination\": \"containerpstestrg7815\",\r\n \"enabled\": false,\r\n \"name\": \"Test2\",\r\n \"definition\": {\r\n \"format\": \"Parquet\",\r\n \"schedule\": \"Daily\",\r\n \"objectType\": \"Container\",\r\n \"schemaFields\": [\r\n \"name\",\r\n \"Metadata\",\r\n \"PublicAccess\"\r\n ],\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"conpre1\",\r\n \"conpre2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n}",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "DELETE",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "0eac802f-8bb9-410b-85c8-8af08b30d657"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "f67456b4-5b49-425b-af41-bb873c2298fa"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-deletes": [
+ "14999"
+ ],
+ "x-ms-correlation-request-id": [
+ "55dec3fa-34a7-40bb-817d-e7c8324e1255"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103046Z:55dec3fa-34a7-40bb-817d-e7c8324e1255"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:45 GMT"
+ ],
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815/inventoryPolicies/default?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNS9pbnZlbnRvcnlQb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMjEtMDQtMDE=",
+ "RequestMethod": "DELETE",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "85598498-0b1c-4952-a9f1-83fc63376528"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "a7df47a8-7cf5-4b70-9d26-8d9e57f60be2"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-deletes": [
+ "14998"
+ ],
+ "x-ms-correlation-request-id": [
+ "b76239c8-92ac-45c9-ad45-732ce546a581"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103053Z:b76239c8-92ac-45c9-ad45-732ce546a581"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:30:53 GMT"
+ ],
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg7815/providers/Microsoft.Storage/storageAccounts/stopstestrg7815?api-version=2021-04-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzgxNS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDIxLTA0LTAx",
+ "RequestMethod": "DELETE",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "5365a372-8900-4c50-825f-f2c91a79aa7f"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Storage.StorageManagementClient/22.0.0.0"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-request-id": [
+ "c2a58a82-2880-4844-bfbd-394b2844d3d8"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "Server": [
+ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-deletes": [
+ "14997"
+ ],
+ "x-ms-correlation-request-id": [
+ "3305ca47-68ac-4b99-89e4-5343337d6243"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103105Z:3305ca47-68ac-4b99-89e4-5343337d6243"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:04 GMT"
+ ],
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg7815?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNzgxNT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx",
+ "RequestMethod": "DELETE",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "90295914-0dd6-4dc1-bfd4-9e95b7ae09af"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "Location": [
+ "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01"
+ ],
+ "Retry-After": [
+ "15"
+ ],
+ "x-ms-ratelimit-remaining-subscription-deletes": [
+ "14999"
+ ],
+ "x-ms-request-id": [
+ "68d0b926-94ea-46d4-afba-dba0bb34c705"
+ ],
+ "x-ms-correlation-request-id": [
+ "68d0b926-94ea-46d4-afba-dba0bb34c705"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103110Z:68d0b926-94ea-46d4-afba-dba0bb34c705"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:09 GMT"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 202
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemM0TVRVdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "Location": [
+ "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01"
+ ],
+ "Retry-After": [
+ "15"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11994"
+ ],
+ "x-ms-request-id": [
+ "c2e18b80-45a3-4c92-9abd-5d5810a09c01"
+ ],
+ "x-ms-correlation-request-id": [
+ "c2e18b80-45a3-4c92-9abd-5d5810a09c01"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103125Z:c2e18b80-45a3-4c92-9abd-5d5810a09c01"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:25 GMT"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 202
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemM0TVRVdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "Location": [
+ "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01"
+ ],
+ "Retry-After": [
+ "15"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11993"
+ ],
+ "x-ms-request-id": [
+ "3b4b0a5e-3715-4299-894c-13e70daedb85"
+ ],
+ "x-ms-correlation-request-id": [
+ "3b4b0a5e-3715-4299-894c-13e70daedb85"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103141Z:3b4b0a5e-3715-4299-894c-13e70daedb85"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:40 GMT"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 202
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemM0TVRVdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11992"
+ ],
+ "x-ms-request-id": [
+ "69b25f04-8312-496e-8a6c-d5e5692f14ec"
+ ],
+ "x-ms-correlation-request-id": [
+ "69b25f04-8312-496e-8a6c-d5e5692f14ec"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103156Z:69b25f04-8312-496e-8a6c-d5e5692f14ec"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:56 GMT"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzc4MTUtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemM0TVRVdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "FxVersion/4.6.30015.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.19043.",
+ "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.32"
+ ]
+ },
+ "ResponseHeaders": {
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "11991"
+ ],
+ "x-ms-request-id": [
+ "16e55a10-247c-4e5c-8cc0-f2eaad4cbfbf"
+ ],
+ "x-ms-correlation-request-id": [
+ "16e55a10-247c-4e5c-8cc0-f2eaad4cbfbf"
+ ],
+ "x-ms-routing-request-id": [
+ "SOUTHEASTASIA:20210512T103157Z:16e55a10-247c-4e5c-8cc0-f2eaad4cbfbf"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 12 May 2021 10:31:56 GMT"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Content-Length": [
+ "0"
+ ]
+ },
+ "ResponseBody": "",
+ "StatusCode": 200
+ }
+ ],
+ "Names": {
+ "Test-StorageBlobInventory": [
+ "pstestrg7815"
+ ]
+ },
+ "Variables": {
+ "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e"
+ }
+}
\ No newline at end of file
diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1
index 332ef0cc59c5..46dfe709801c 100644
--- a/src/Storage/Storage.Management/Az.Storage.psd1
+++ b/src/Storage/Storage.Management/Az.Storage.psd1
@@ -180,7 +180,9 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey',
'Update-AzDataLakeGen2AclRecursive',
'Remove-AzDataLakeGen2AclRecursive', 'New-AzStorageEncryptionScope',
'Update-AzStorageEncryptionScope', 'Get-AzStorageEncryptionScope',
- 'Copy-AzStorageBlob'
+ 'Copy-AzStorageBlob',
+ 'Set-AzStorageBlobInventoryPolicy', 'New-AzStorageBlobInventoryPolicyRule',
+ 'Get-AzStorageBlobInventoryPolicy', 'Remove-AzStorageBlobInventoryPolicy'
# Variables to export from this module
# VariablesToExport = @()
diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md
index 6c219288597e..3c20ce757863 100644
--- a/src/Storage/Storage.Management/ChangeLog.md
+++ b/src/Storage/Storage.Management/ChangeLog.md
@@ -19,11 +19,16 @@
-->
## Upcoming Release
* Supported file share snapshot
- - `New-AzRmStorageShare`
- - `Get-AzRmStorageShare`
- - `Remove-AzRmStorageShare`
+ - `New-AzRmStorageShare`
+ - `Get-AzRmStorageShare`
+ - `Remove-AzRmStorageShare`
* Supported remove file share with it's snapshot (leased and not leased), by default remove file share will fail when share has snapshot
- - `Remove-AzRmStorageShare`
+ - `Remove-AzRmStorageShare`
+* Supported Set/Get/Remove blob inventory policy
+ - `New-AzStorageBlobInventoryPolicyRule`
+ - `Set-AzStorageBlobInventoryPolicy`
+ - `Get-AzStorageBlobInventoryPolicy`
+ - `Remove-AzStorageBlobInventoryPolicy`
## Version 3.6.0
* Supported create/update storage account with KeyExpirationPeriod and SasExpirationPeriod
diff --git a/src/Storage/Storage.Management/Models/PSBlobInventoryPolicy.cs b/src/Storage/Storage.Management/Models/PSBlobInventoryPolicy.cs
new file mode 100644
index 000000000000..592579d1e5e5
--- /dev/null
+++ b/src/Storage/Storage.Management/Models/PSBlobInventoryPolicy.cs
@@ -0,0 +1,269 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using Microsoft.Azure.Management.Storage.Models;
+using Microsoft.WindowsAzure.Commands.Common.Attributes;
+using System;
+using System.Collections.Generic;
+
+namespace Microsoft.Azure.Commands.Management.Storage.Models
+{
+ ///
+ /// Wrapper of SDK type BlobInventoryPolicy
+ ///
+ public class PSBlobInventoryPolicy
+ {
+ public PSBlobInventoryPolicy()
+ { }
+
+ public PSBlobInventoryPolicy(BlobInventoryPolicy policy, string ResourceGroupName, string StorageAccountName)
+ {
+ this.ResourceGroupName = ResourceGroupName;
+ this.StorageAccountName = StorageAccountName;
+ this.Id = policy.Id;
+ this.Name = policy.Name;
+ this.Type = policy.Type;
+ this.LastModifiedTime = policy.LastModifiedTime;
+ this.SystemData = policy.SystemData is null ? null : new PSSystemData(policy.SystemData);
+
+ this.Enabled = policy.Policy.Enabled;
+ //this.Destination = policy.Policy.Destination;
+
+ if (policy.Policy.Rules != null)
+ {
+ List psRules = new List();
+ foreach (BlobInventoryPolicyRule rule in policy.Policy.Rules)
+ {
+ psRules.Add(new PSBlobInventoryPolicyRule(rule));
+ }
+ this.Rules = psRules.ToArray();
+ }
+ else
+ {
+ this.Rules = null;
+ }
+ }
+
+ public BlobInventoryPolicy ParseBlobInventoryPolicy()
+ {
+ List invRules = ParseBlobInventoryPolicyRules(this.Rules);
+
+ BlobInventoryPolicySchema policySchema = new BlobInventoryPolicySchema()
+ {
+ Enabled = this.Enabled,
+ //Destination = this.Destination,
+ Rules = invRules
+ };
+ return new BlobInventoryPolicy(
+ policySchema,
+ this.Id,
+ this.Name,
+ this.Type,
+ this.LastModifiedTime,
+ this.SystemData is null ? null : this.SystemData.ParseSystemData()
+ );
+ }
+
+ public static List ParseBlobInventoryPolicyRules(PSBlobInventoryPolicyRule[] rules)
+ {
+ List invRules = null;
+ if (rules != null)
+ {
+ invRules = new List();
+ foreach (PSBlobInventoryPolicyRule rule in rules)
+ {
+ invRules.Add(rule.ParseBlobInventoryPolicyRule());
+ }
+ }
+ return invRules;
+ }
+
+ [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.List, Position = 1)]
+ public string ResourceGroupName { get; set; }
+ [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.List, Position = 0)]
+ public string StorageAccountName { get; set; }
+ [Ps1Xml(Label = "Id", Target = ViewControl.List, Position = 3)]
+ public string Id { get; set; }
+ public string Name { get; set; }
+ [Ps1Xml(Label = "Type", Target = ViewControl.List, Position = 2)]
+ public string Type { get; set; }
+ [Ps1Xml(Label = "LastModifiedTime", Target = ViewControl.List, Position = 4)]
+ public DateTime? LastModifiedTime { get; set; }
+
+ //public PSBlobInventoryPolicySchema Policy { get; set; }
+
+ [Ps1Xml(Label = "Enabled", Target = ViewControl.List, Position = 6)]
+ public bool Enabled { get; set; }
+ [Ps1Xml(Label = "Rules", Target = ViewControl.List, Position = 7)]
+ public PSBlobInventoryPolicyRule[] Rules { get; set; }
+ public PSSystemData SystemData { get; set; }
+ }
+
+ ///
+ /// Wrapper of SDK type BlobInventoryPolicyRule
+ ///
+ public class PSBlobInventoryPolicyRule
+ {
+ public PSBlobInventoryPolicyRule() { }
+ public PSBlobInventoryPolicyRule(BlobInventoryPolicyRule rule)
+ {
+ this.Enabled = rule.Enabled;
+ this.Name = rule.Name;
+ this.Destination = rule.Destination;
+ this.Definition = rule.Definition is null ? null : new PSBlobInventoryPolicyDefinition(rule.Definition);
+ }
+
+ public BlobInventoryPolicyRule ParseBlobInventoryPolicyRule()
+ {
+ return new BlobInventoryPolicyRule()
+ {
+ Enabled = this.Enabled,
+ Name = this.Name,
+ Destination = this.Destination,
+ Definition = this.Definition is null ? null : this.Definition.parseBlobInventoryPolicyDefinition()
+ };
+ }
+
+ public bool Enabled { get; set; }
+
+ public string Name { get; set; }
+
+ public string Destination { get; set; }
+
+ public PSBlobInventoryPolicyDefinition Definition { get; set; }
+ }
+
+ ///
+ /// Wrapper of SDK type BlobInventoryPolicyDefinition
+ ///
+ public class PSBlobInventoryPolicyDefinition
+ {
+ public PSBlobInventoryPolicyDefinition() { }
+
+ public PSBlobInventoryPolicyDefinition(BlobInventoryPolicyDefinition Definition)
+ {
+ this.Filters = Definition.Filters is null ? null : new PSBlobInventoryPolicyFilter(Definition.Filters);
+ this.Format = Definition.Format;
+ this.Schedule = Definition.Schedule;
+ this.ObjectType = Definition.ObjectType;
+ this.SchemaFields = Definition.SchemaFields is null ? null : ((List)Definition.SchemaFields).ToArray();
+ }
+
+ public BlobInventoryPolicyDefinition parseBlobInventoryPolicyDefinition()
+ {
+ return new BlobInventoryPolicyDefinition(this.Format, this.Schedule, this.ObjectType,
+ this.SchemaFields is null? null: new List(this.SchemaFields),
+ this.Filters is null? null : this.Filters.ParseBlobInventoryPolicyFilter());
+ }
+
+ public PSBlobInventoryPolicyFilter Filters { get; set; }
+
+ //Possible values include: 'Csv', 'Parquet'
+ public string Format { get; set; }
+
+ // Possible values include: 'Daily', 'Weekly'
+ public string Schedule { get; set; }
+
+ // Possible values include: 'Blob', 'Container'
+ public string ObjectType { get; set; }
+
+ // Valid values for this field for the blob object type include: Name, Creation-Time, Last-Modified, Content-Length,
+ // Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder,
+ // Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime.
+ // Valid values for container object type include Name, Last-Modified,
+ // Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold.
+ public string[] SchemaFields { get; set; }
+
+ //private string[] BlobSchemaField = new string[] {"Name", "Creation-Time", "Last-Modified", "Content-Length", "Content-MD5", "BlobType", "AccessTier", "AccessTierChangeTime",
+ // "Expiry-Time", "hdi_isfolder", "Owner", "Group", "Permissions", "Acl", "Snapshot", "VersionId", "IsCurrentVersion", "Metadata", "LastAccessTime"};
+ //private string[] ContainerSchemaField = new string[] { "Name", "Last-Modified", "Metadata", "LeaseStatus", "LeaseState", "LeaseDuration", "PublicAccess", "HasImmutabilityPolicy", "HasLegalHold" };
+
+ //public const string[] BlobInventoryPolicyRuleFormat = {"Csv", "Parquet"};
+
+ //public static string NormalizeString(string input, string[] validValue)
+ //{
+ // foreach (string s in validValue)
+ // {
+ // if (input.ToLower() == s.ToLower())
+ // {
+ // return s;
+ // }
+ // }
+ // return input;
+ //}
+
+ }
+
+ ///
+ /// Wrapper of SDK type BlobInventoryPolicyFilter
+ ///
+ public class PSBlobInventoryPolicyFilter
+ {
+ public PSBlobInventoryPolicyFilter() { }
+
+ public PSBlobInventoryPolicyFilter(BlobInventoryPolicyFilter filters)
+ {
+ this.PrefixMatch = PSManagementPolicyRuleFilter.StringListToArray(filters.PrefixMatch);
+ this.BlobTypes = PSManagementPolicyRuleFilter.StringListToArray(filters.BlobTypes);
+ this.IncludeBlobVersions = filters.IncludeBlobVersions;
+ this.IncludeSnapshots = filters.IncludeSnapshots;
+ }
+
+ public BlobInventoryPolicyFilter ParseBlobInventoryPolicyFilter()
+ {
+ return new BlobInventoryPolicyFilter()
+ {
+ PrefixMatch = PSManagementPolicyRuleFilter.StringArrayToList(this.PrefixMatch),
+ BlobTypes = PSManagementPolicyRuleFilter.StringArrayToList(this.BlobTypes),
+ IncludeSnapshots = this.IncludeSnapshots,
+ IncludeBlobVersions = this.IncludeBlobVersions
+ };
+ }
+
+ public string[] PrefixMatch { get; set; }
+ public string[] BlobTypes { get; set; }
+ public bool? IncludeBlobVersions { get; set; }
+ public bool? IncludeSnapshots { get; set; }
+ }
+
+ ///
+ /// Wrapper of SDK type SystemData
+ ///
+ public class PSSystemData
+ {
+ public PSSystemData() { }
+
+ public PSSystemData(SystemData SystemData)
+ {
+ this.CreatedBy = SystemData.CreatedBy;
+ this.CreatedByType = SystemData.CreatedByType;
+ this.CreatedAt = SystemData.CreatedAt;
+ this.LastModifiedBy = SystemData.LastModifiedBy;
+ this.LastModifiedByType = SystemData.LastModifiedByType;
+ this.LastModifiedAt = SystemData.LastModifiedAt;
+ }
+
+ public SystemData ParseSystemData()
+ {
+ return new SystemData(this.CreatedBy, this.CreatedByType, this.CreatedAt, this.LastModifiedBy, this.LastModifiedByType, this.LastModifiedAt);
+ }
+
+ public string CreatedBy { get; set; }
+ public string CreatedByType { get; set; }
+ public DateTime? CreatedAt { get; set; }
+ public string LastModifiedBy { get; set; }
+ public string LastModifiedByType { get; set; }
+ public DateTime? LastModifiedAt { get; set; }
+ }
+}
diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml
index 1844ce520bb9..8d2141b22847 100644
--- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml
+++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml
@@ -799,5 +799,155 @@
+
+ Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule
+
+ Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule
+
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+ Left
+
+
+
+
+
+
+
+ Left
+ Name
+
+
+ Left
+ Enabled
+
+
+ Left
+ Destination
+
+
+ Left
+ $_.Definition.ObjectType
+
+
+ Left
+ $_.Definition.Format
+
+
+ Left
+ $_.Definition.Schedule
+
+
+ Left
+ $_.Definition.Filters.IncludeSnapshots
+
+
+ Left
+ $_.Definition.Filters.IncludeBlobVersions
+
+
+ Left
+ $_.Definition.Filters.BlobTypes
+
+
+ Left
+ $_.Definition.Filters.PrefixMatch
+
+
+ Left
+ $_.Definition.SchemaFields
+
+
+
+
+
+
+
+ Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy
+
+ Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy
+
+
+
+
+
+
+ StorageAccountName
+
+
+
+ ResourceGroupName
+
+
+
+ Name
+
+
+
+
+ Id
+
+
+
+ Type
+
+
+
+ LastModifiedTime
+
+
+
+ $_.Enabled
+
+
+
+ $_.Rules
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs
index f253649af99e..ec5dace19b60 100644
--- a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs
+++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs
@@ -125,6 +125,7 @@ public override void ExecuteCmdlet()
this.ResourceGroupName,
this.Name,
expandproperties);
+
WriteStorageAccount(storageAccount);
}
diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageBlobInventoryPolicy.cs b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageBlobInventoryPolicy.cs
new file mode 100644
index 000000000000..1d3c234f8f33
--- /dev/null
+++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageBlobInventoryPolicy.cs
@@ -0,0 +1,105 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using Microsoft.Azure.Commands.Management.Storage.Models;
+using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
+using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
+using Microsoft.Azure.Management.Storage;
+using Microsoft.Azure.Management.Storage.Models;
+using Microsoft.WindowsAzure.Commands.Common.CustomAttributes;
+using System.Management.Automation;
+
+namespace Microsoft.Azure.Commands.Management.Storage
+{
+ [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobInventoryPolicy", DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSBlobInventoryPolicy))]
+ public class GetAzureStorageBlobInventoryPolicyCommand : StorageAccountBaseCmdlet
+ {
+ ///
+ /// AccountName Parameter Set
+ ///
+ private const string AccountNameParameterSet = "AccountName";
+
+ ///
+ /// Account object parameter set
+ ///
+ private const string AccountObjectParameterSet = "AccountObject";
+
+ ///
+ /// Account ResourceId parameter set
+ ///
+ private const string AccountResourceIdParameterSet = "AccountResourceId";
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ HelpMessage = "Resource Group Name.",
+ ParameterSetName = AccountNameParameterSet)]
+ [ResourceGroupCompleter]
+ [ValidateNotNullOrEmpty]
+ public string ResourceGroupName { get; set; }
+
+ [Parameter(
+ Position = 1,
+ Mandatory = true,
+ HelpMessage = "Storage Account Name.",
+ ParameterSetName = AccountNameParameterSet)]
+ [ResourceNameCompleter("Microsoft.Storage/storageAccounts", nameof(ResourceGroupName))]
+ [Alias(AccountNameAlias)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountName { get; set; }
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ ValueFromPipelineByPropertyName = true,
+ HelpMessage = "Storage Account Resource Id.",
+ ParameterSetName = AccountResourceIdParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountResourceId { get; set; }
+
+ [Parameter(Mandatory = true,
+ HelpMessage = "Storage account object",
+ ValueFromPipeline = true,
+ ParameterSetName = AccountObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSStorageAccount StorageAccount { get; set; }
+
+ public override void ExecuteCmdlet()
+ {
+ base.ExecuteCmdlet();
+
+ switch (ParameterSetName)
+ {
+ case AccountObjectParameterSet:
+ this.ResourceGroupName = StorageAccount.ResourceGroupName;
+ this.StorageAccountName = StorageAccount.StorageAccountName;
+ break;
+ case AccountResourceIdParameterSet:
+ ResourceIdentifier accountResource = new ResourceIdentifier(StorageAccountResourceId);
+ this.ResourceGroupName = accountResource.ResourceGroupName;
+ this.StorageAccountName = accountResource.ResourceName;
+ break;
+ default:
+ // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly
+ break;
+ }
+
+ BlobInventoryPolicy policy = this.StorageClient.BlobInventoryPolicies.Get(
+ this.ResourceGroupName,
+ this.StorageAccountName);
+
+ WriteObject(new PSBlobInventoryPolicy(policy, this.ResourceGroupName, this.StorageAccountName), true);
+ }
+ }
+}
diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageBlobInventoryPolicyRule.cs b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageBlobInventoryPolicyRule.cs
new file mode 100644
index 000000000000..8480a189bedc
--- /dev/null
+++ b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageBlobInventoryPolicyRule.cs
@@ -0,0 +1,268 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using Microsoft.Azure.Commands.Management.Storage.Models;
+using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
+using Microsoft.Azure.Management.Storage;
+using Microsoft.Azure.Management.Storage.Models;
+using Microsoft.WindowsAzure.Commands.Common.CustomAttributes;
+using System.Collections.Generic;
+using System.Management.Automation;
+using System.Reflection;
+using StorageModels = Microsoft.Azure.Management.Storage.Models;
+
+namespace Microsoft.Azure.Commands.Management.Storage
+{
+ [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobInventoryPolicyRule", DefaultParameterSetName = BlobRuleParameterSet), OutputType(typeof(PSBlobInventoryPolicyRule))]
+ public class NewAzureStorageBlobInventoryPolicyRuleCommand : StorageAccountBaseCmdlet
+ {
+ protected const string BlobRuleParameterSet = "BlobRuleParameterSet";
+ protected const string ContainerRuleParameterSet = "ContainerRuleParameterSet";
+
+ [Parameter(Mandatory = true,
+ Position = 0,
+ HelpMessage = "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.")]
+ [ValidateNotNullOrEmpty]
+ public string Name { get; set; }
+
+ [Parameter(Mandatory = false,
+ HelpMessage = "The rule is disabled if set it.")]
+ public SwitchParameter Disabled { get; set; }
+
+ [Parameter(
+ Mandatory = true,
+ HelpMessage = "The container name where blob inventory files are stored. Must be pre-created.")]
+ [ValidateNotNullOrEmpty]
+ public string Destination { get; set; }
+
+ [Parameter(Mandatory = true,
+ HelpMessage = "Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet'")]
+ [ValidateSet(BlobInventoryPolicyRuleFormat.Csv,
+ BlobInventoryPolicyRuleFormat.Parquet,
+ IgnoreCase = true)]
+ [ValidateNotNullOrEmpty]
+ public string Format { get; set; }
+
+ [Parameter(Mandatory = true,
+ HelpMessage = "This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly'")]
+ [ValidateSet(BlobInventoryPolicyRuleSchedule.Daily,
+ BlobInventoryPolicyRuleSchedule.Weekly,
+ IgnoreCase = true)]
+ [ValidateNotNullOrEmpty]
+ public string Schedule { get; set; }
+
+ //[Parameter(Mandatory = false,
+ // ParameterSetName = BlobRuleParameterSet,
+ // HelpMessage = "The rule is for blob inventory.")]
+ //[Parameter(Mandatory = false,
+ // ParameterSetName = BlobRuleWithFilterParameterSet,
+ // HelpMessage = "The rule is for blob inventory.")]
+ //public SwitchParameter IsBlobRule { get; set; }
+
+ //[Parameter(Mandatory = false,
+ // ParameterSetName = ContainerRuleParameterSet,
+ // HelpMessage = "The rule is for container inventory.")]
+ //public SwitchParameter IsContainerRule { get; set; }
+
+ [Parameter(Mandatory = true,
+ ParameterSetName = BlobRuleParameterSet,
+ HelpMessage = "Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: " +
+ "Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, " +
+ "Group, Permissions, Acl, Metadata, LastAccessTime. 'Name' is a required schemafield." +
+ "If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory.")]
+ [ValidateSet(BlobInventoryPolicyBlobSchemaField.Name,
+ BlobInventoryPolicyBlobSchemaField.CreationTime,
+ BlobInventoryPolicyBlobSchemaField.LastModified,
+ BlobInventoryPolicyBlobSchemaField.ContentLength,
+ BlobInventoryPolicyBlobSchemaField.ContentMD5,
+ BlobInventoryPolicyBlobSchemaField.BlobType,
+ BlobInventoryPolicyBlobSchemaField.AccessTier,
+ BlobInventoryPolicyBlobSchemaField.AccessTierChangeTime,
+ BlobInventoryPolicyBlobSchemaField.ExpiryTime,
+ BlobInventoryPolicyBlobSchemaField.hdiisfolder,
+ BlobInventoryPolicyBlobSchemaField.Owner,
+ BlobInventoryPolicyBlobSchemaField.Group,
+ BlobInventoryPolicyBlobSchemaField.Permissions,
+ BlobInventoryPolicyBlobSchemaField.Acl,
+ BlobInventoryPolicyBlobSchemaField.Metadata,
+ BlobInventoryPolicyBlobSchemaField.LastAccessTime,
+ IgnoreCase = true)]
+ [ValidateNotNullOrEmpty]
+ public string[] BlobSchemaField { get; set; }
+
+ [Parameter(Mandatory = true,
+ ParameterSetName = ContainerRuleParameterSet,
+ HelpMessage = "Specifies the fields and properties of the container object to be included in the inventory. Valid values include: " +
+ "Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. " +
+ "'Name' is a required schemafield.")]
+ [ValidateSet(BlobInventoryPolicyContainerSchemaField.Name,
+ BlobInventoryPolicyContainerSchemaField.LastModified,
+ BlobInventoryPolicyContainerSchemaField.Metadata,
+ BlobInventoryPolicyContainerSchemaField.LeaseStatus,
+ BlobInventoryPolicyContainerSchemaField.LeaseState,
+ BlobInventoryPolicyContainerSchemaField.LeaseDuration,
+ BlobInventoryPolicyContainerSchemaField.PublicAccess,
+ BlobInventoryPolicyContainerSchemaField.HasImmutabilityPolicy,
+ BlobInventoryPolicyContainerSchemaField.HasLegalHold,
+ IgnoreCase = true)]
+ [ValidateNotNullOrEmpty]
+ public string[] ContainerSchemaField { get; set; }
+
+ [Parameter(Mandatory = true,
+ ParameterSetName = BlobRuleParameterSet,
+ HelpMessage = "Sets the blob types for the blob inventory policy rule. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs.")]
+ [ValidateSet(AzureBlobType.BlockBlob,
+ AzureBlobType.PageBlob,
+ AzureBlobType.AppendBlob,
+ IgnoreCase = true)]
+ [ValidateNotNullOrEmpty]
+ public string[] BlobType { get; set; }
+
+ [Parameter(Mandatory = false,
+ HelpMessage = "Sets an array of strings for blob prefixes to be matched..")]
+ [ValidateNotNullOrEmpty]
+ public string[] PrefixMatch { get; set; }
+
+ [Parameter(Mandatory = false,
+ ParameterSetName = BlobRuleParameterSet,
+ HelpMessage = "The rule is disabled if set it.")]
+ public SwitchParameter IncludeSnapshot { get; set; }
+
+ [Parameter(Mandatory = false,
+ ParameterSetName = BlobRuleParameterSet,
+ HelpMessage = "The rule is disabled if set it.")]
+ public SwitchParameter IncludeBlobVersion { get; set; }
+
+ public override void ExecuteCmdlet()
+ {
+ base.ExecuteCmdlet();
+
+ PSBlobInventoryPolicyDefinition definition = new PSBlobInventoryPolicyDefinition();
+ if (this.BlobType != null || this.PrefixMatch != null || this.IncludeSnapshot.IsPresent || this.IncludeBlobVersion.IsPresent)
+ {
+ definition.Filters = new PSBlobInventoryPolicyFilter()
+ {
+ BlobTypes = NormalizeStringArray(this.BlobType),
+ PrefixMatch = this.PrefixMatch
+ };
+ if (this.IncludeBlobVersion.IsPresent)
+ {
+ definition.Filters.IncludeBlobVersions = true;
+ }
+ if (this.IncludeSnapshot.IsPresent)
+ {
+ definition.Filters.IncludeSnapshots = true;
+ }
+ }
+ definition.Format = NormalizeString(this.Format);
+ definition.Schedule = NormalizeString(this.Schedule);
+
+ // Set schemaFields
+ List schemaFieldList = null;
+ if (ParameterSetName == ContainerRuleParameterSet) // Container inventory
+ {
+ definition.ObjectType = BlobInventoryPolicyRuleObjectType.Container;
+
+ // ContainerSchemaField can't be null, so schemaFieldList won't be null
+ schemaFieldList = new List(NormalizeStringArray(this.ContainerSchemaField));
+ }
+ else // Blob inventory
+ {
+ definition.ObjectType = BlobInventoryPolicyRuleObjectType.Blob;
+
+ // BlobInventoryPolicyBlobSchemaField can't be null, so schemaFieldList won't be null
+ schemaFieldList = new List(NormalizeStringArray(this.BlobSchemaField));
+ if (this.IncludeSnapshot.IsPresent)
+ {
+ schemaFieldList.Add(BlobInventoryPolicyBlobSchemaField.Snapshot);
+ }
+ if (this.IncludeBlobVersion.IsPresent)
+ {
+ schemaFieldList.Add(BlobInventoryPolicyBlobSchemaField.VersionId);
+ schemaFieldList.Add(BlobInventoryPolicyBlobSchemaField.IsCurrentVersion);
+ }
+ }
+ if (!schemaFieldList.Contains(BlobInventoryPolicyBlobSchemaField.Name))
+ {
+ WriteWarning("The SchemaFields miss require field 'Name', so add 'Name' to the SchemaFields.");
+ schemaFieldList.Add(BlobInventoryPolicyBlobSchemaField.Name);
+ }
+ definition.SchemaFields = schemaFieldList.ToArray();
+
+ PSBlobInventoryPolicyRule rule = new PSBlobInventoryPolicyRule()
+ {
+ Name = this.Name,
+ Enabled = Disabled.IsPresent ? false : true,
+ Definition = definition,
+ Destination = this.Destination
+ };
+
+ WriteObject(rule);
+ }
+
+ protected struct BlobInventoryPolicyRuleFormat
+ {
+ public const string Csv = "Csv";
+ public const string Parquet = "Parquet";
+ }
+
+ protected struct BlobInventoryPolicyContainerSchemaField
+ {
+ public const string Name = "Name";
+ public const string LastModified = "Last-Modified";
+ public const string Metadata = "Metadata";
+ public const string LeaseStatus = "LeaseStatus";
+ public const string LeaseState = "LeaseState";
+ public const string LeaseDuration = "LeaseDuration";
+ public const string PublicAccess = "PublicAccess";
+ public const string HasImmutabilityPolicy = "HasImmutabilityPolicy";
+ public const string HasLegalHold = "HasLegalHold";
+ }
+
+ protected struct BlobInventoryPolicyBlobSchemaField
+ {
+ public const string Name = "Name";
+ public const string CreationTime = "Creation-Time";
+ public const string LastModified = "Last-Modified";
+ public const string ContentLength = "Content-Length";
+ public const string ContentMD5 = "Content-MD5";
+ public const string BlobType = "BlobType";
+ public const string AccessTier = "AccessTier";
+ public const string AccessTierChangeTime = "AccessTierChangeTime";
+ public const string ExpiryTime = "Expiry-Time";
+ public const string hdiisfolder = "hdi_isfolder";
+ public const string Owner = "Owner";
+ public const string Group = "Group";
+ public const string Permissions = "Permissions";
+ public const string Acl = "Acl";
+ public const string Snapshot = "Snapshot";
+ public const string VersionId = "VersionId";
+ public const string IsCurrentVersion = "IsCurrentVersion";
+ public const string Metadata = "Metadata";
+ public const string LastAccessTime = "LastAccessTime";
+ }
+
+ protected struct BlobInventoryPolicyRuleSchedule
+ {
+ public const string Daily = "Daily";
+ public const string Weekly = "Weekly";
+ }
+
+ protected struct BlobInventoryPolicyRuleObjectType
+ {
+ public const string Blob = "Blob";
+ public const string Container = "Container";
+ }
+ }
+}
diff --git a/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageBlobInventoryPolicy.cs b/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageBlobInventoryPolicy.cs
new file mode 100644
index 000000000000..74610ef35315
--- /dev/null
+++ b/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageBlobInventoryPolicy.cs
@@ -0,0 +1,130 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using Microsoft.Azure.Commands.Management.Storage.Models;
+using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
+using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
+using Microsoft.Azure.Management.Storage;
+using Microsoft.Azure.Management.Storage.Models;
+using System.Management.Automation;
+
+namespace Microsoft.Azure.Commands.Management.Storage
+{
+ [Cmdlet("Remove", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobInventoryPolicy", SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(bool))]
+ public class RemoveAzureStorageBlobInventoryPolicyCommand : StorageAccountBaseCmdlet
+ {
+ ///
+ /// AccountName Parameter Set
+ ///
+ private const string AccountNameParameterSet = "AccountName";
+
+ ///
+ /// Account object parameter set
+ ///
+ private const string AccountObjectParameterSet = "AccountObject";
+
+ ///
+ /// ManagementPolicy object parameter set
+ ///
+ private const string PolicyObjectParameterSet = "PolicyObject";
+
+ ///
+ /// Account ResourceId parameter set
+ ///
+ private const string AccountResourceIdParameterSet = "AccountResourceId";
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ HelpMessage = "Resource Group Name.",
+ ParameterSetName = AccountNameParameterSet)]
+ [ResourceGroupCompleter]
+ [ValidateNotNullOrEmpty]
+ public string ResourceGroupName { get; set; }
+
+ [Parameter(
+ Position = 1,
+ Mandatory = true,
+ HelpMessage = "Storage Account Name.",
+ ParameterSetName = AccountNameParameterSet)]
+ [ResourceNameCompleter("Microsoft.Storage/storageAccounts", nameof(ResourceGroupName))]
+ [Alias(AccountNameAlias)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountName { get; set; }
+
+ [Parameter(Mandatory = true,
+ HelpMessage = "Storage account object",
+ ValueFromPipeline = true,
+ ParameterSetName = AccountObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSStorageAccount StorageAccount { get; set; }
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ ValueFromPipelineByPropertyName = true,
+ HelpMessage = "Storage Account Resource Id.",
+ ParameterSetName = AccountResourceIdParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountResourceId { get; set; }
+
+ [Alias("BlobInventoryPolicy")]
+ [Parameter(Position = 0,
+ Mandatory = true,
+ HelpMessage = "BlobInventoryPolicy Object to Remove",
+ ValueFromPipeline = true,
+ ParameterSetName = PolicyObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSBlobInventoryPolicy InputObject { get; set; }
+
+ [Parameter(Mandatory = false)]
+ public SwitchParameter PassThru { get; set; }
+
+ public override void ExecuteCmdlet()
+ {
+ base.ExecuteCmdlet();
+ if (ShouldProcess(this.StorageAccountName, "Remove Storage Account Blob Inventory Policy"))
+ {
+ switch (ParameterSetName)
+ {
+ case AccountObjectParameterSet:
+ this.ResourceGroupName = StorageAccount.ResourceGroupName;
+ this.StorageAccountName = StorageAccount.StorageAccountName;
+ break;
+ case AccountResourceIdParameterSet:
+ ResourceIdentifier accountResource = new ResourceIdentifier(StorageAccountResourceId);
+ this.ResourceGroupName = accountResource.ResourceGroupName;
+ this.StorageAccountName = accountResource.ResourceName;
+ break;
+ case PolicyObjectParameterSet:
+ this.ResourceGroupName = InputObject.ResourceGroupName;
+ this.StorageAccountName = InputObject.StorageAccountName;
+ break;
+ default:
+ // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly
+ break;
+ }
+
+ this.StorageClient.BlobInventoryPolicies.Delete(
+ this.ResourceGroupName,
+ this.StorageAccountName);
+
+ if (PassThru.IsPresent)
+ {
+ WriteObject(true);
+ }
+ }
+ }
+ }
+}
diff --git a/src/Storage/Storage.Management/StorageAccount/SetAzureStorageBlobInventoryPolicy.cs b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageBlobInventoryPolicy.cs
new file mode 100644
index 000000000000..a26f7492a334
--- /dev/null
+++ b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageBlobInventoryPolicy.cs
@@ -0,0 +1,217 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using Microsoft.Azure.Commands.Management.Storage.Models;
+using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
+using Microsoft.Azure.Management.Storage;
+using Microsoft.Azure.Management.Storage.Models;
+using System.Management.Automation;
+using Newtonsoft.Json.Linq;
+using System.Globalization;
+using System.Collections.Generic;
+using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
+using Microsoft.WindowsAzure.Commands.Common.CustomAttributes;
+
+namespace Microsoft.Azure.Commands.Management.Storage
+{
+ [Cmdlet("Set", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobInventoryPolicy", SupportsShouldProcess = true, DefaultParameterSetName = AccountNamePolicyRuleParameterSet), OutputType(typeof(PSManagementPolicy))]
+ public class SetAzureStorageBlobInventoryPolicyCommand : StorageAccountBaseCmdlet
+ {
+ ///
+ /// AccountName Parameter Set
+ ///
+ private const string AccountNamePolicyRuleParameterSet = "AccountNamePolicyRule";
+
+ ///
+ /// AccountName Parameter Set
+ ///
+ private const string AccountNamePolicyObjectParameterSet = "AccountNamePolicyObject";
+
+ ///
+ /// Account object PolicyRules parameter set
+ ///
+ private const string AccountObjectPolicyRuleParameterSet = "AccountObjectPolicyRule";
+
+ ///
+ /// Account object Policy Object parameter set
+ ///
+ private const string AccountObjectPolicyObjectParameterSet = "AccountObjectPolicyObject";
+
+ ///
+ /// Account ResourceId PolicyRules parameter set
+ ///
+ private const string AccountResourceIdPolicyRuleParameterSet = "AccountResourceIdPolicyRule";
+
+ ///
+ /// Account ResourceId Policy Object parameter set
+ ///
+ private const string AccountResourceIdPolicyObjectParameterSet = "AccountResourceIdPolicyObject";
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ HelpMessage = "Resource Group Name.",
+ ParameterSetName = AccountNamePolicyRuleParameterSet)]
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ HelpMessage = "Resource Group Name.",
+ ParameterSetName = AccountNamePolicyObjectParameterSet)]
+ [ResourceGroupCompleter]
+ [ValidateNotNullOrEmpty]
+ public string ResourceGroupName { get; set; }
+
+ [Parameter(
+ Position = 1,
+ Mandatory = true,
+ HelpMessage = "Storage Account Name.",
+ ParameterSetName = AccountNamePolicyRuleParameterSet)]
+ [Parameter(
+ Position = 1,
+ Mandatory = true,
+ HelpMessage = "Storage Account Name.",
+ ParameterSetName = AccountNamePolicyObjectParameterSet)]
+ [ResourceNameCompleter("Microsoft.Storage/storageAccounts", nameof(ResourceGroupName))]
+ [Alias(AccountNameAlias)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountName { get; set; }
+
+ [Parameter(Mandatory = true,
+ HelpMessage = "Storage account object",
+ ValueFromPipeline = true,
+ ParameterSetName = AccountObjectPolicyRuleParameterSet)]
+ [Parameter(Mandatory = true,
+ HelpMessage = "Storage account object",
+ ValueFromPipeline = true,
+ ParameterSetName = AccountObjectPolicyObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSStorageAccount StorageAccount { get; set; }
+
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ ValueFromPipelineByPropertyName = true,
+ HelpMessage = "Storage Account Resource Id.",
+ ParameterSetName = AccountResourceIdPolicyRuleParameterSet)]
+ [Parameter(
+ Position = 0,
+ Mandatory = true,
+ ValueFromPipelineByPropertyName = true,
+ HelpMessage = "Storage Account Resource Id.",
+ ParameterSetName = AccountResourceIdPolicyObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public string StorageAccountResourceId { get; set; }
+
+ [Parameter(
+ Mandatory = true,
+ ValueFromPipeline = true,
+ HelpMessage = "The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet.",
+ ParameterSetName = AccountNamePolicyRuleParameterSet)]
+ [Parameter(
+ Mandatory = true,
+ ValueFromPipeline = true,
+ HelpMessage = "The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet.",
+ ParameterSetName = AccountObjectPolicyRuleParameterSet)]
+ [Parameter(
+ Mandatory = true,
+ ValueFromPipeline = true,
+ HelpMessage = "The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet.",
+ ParameterSetName = AccountResourceIdPolicyRuleParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSBlobInventoryPolicyRule[] Rule { get; set; }
+
+ [Parameter(
+ Mandatory = false,
+ HelpMessage = "The Blob Inventory Policy is enabled by default, specify this parameter to disable it.",
+ ParameterSetName = AccountNamePolicyRuleParameterSet)]
+ [Parameter(
+ Mandatory = false,
+ HelpMessage = "The Blob Inventory Policy is enabled by default, specify this parameter to disable it.",
+ ParameterSetName = AccountObjectPolicyRuleParameterSet)]
+ [Parameter(
+ Mandatory = false,
+ HelpMessage = "The Blob Inventory Policy is enabled by default, specify this parameter to disable it.",
+ ParameterSetName = AccountResourceIdPolicyRuleParameterSet)]
+ public SwitchParameter Disabled { get; set; }
+
+ [Parameter(
+ Mandatory = true,
+ HelpMessage = "Blob Inventory Policy Object to Set",
+ ValueFromPipeline = true,
+ ValueFromPipelineByPropertyName = true,
+ ParameterSetName = AccountNamePolicyObjectParameterSet)]
+ [Parameter(
+ Mandatory = true,
+ HelpMessage = "Blob Inventory Policy Object to Set",
+ ValueFromPipeline = true,
+ ValueFromPipelineByPropertyName = true,
+ ParameterSetName = AccountObjectPolicyObjectParameterSet)]
+ [Parameter(
+ Mandatory = true,
+ HelpMessage = "Blob Inventory Policy Object to Set",
+ ValueFromPipeline = true,
+ ValueFromPipelineByPropertyName = true,
+ ParameterSetName = AccountResourceIdPolicyObjectParameterSet)]
+ [ValidateNotNullOrEmpty]
+ public PSBlobInventoryPolicy Policy { get; set; }
+
+ public override void ExecuteCmdlet()
+ {
+ base.ExecuteCmdlet();
+ if (ShouldProcess(this.StorageAccountName, "Set Storage Account Blob Inventory Policy"))
+ {
+ if ((this.ParameterSetName == AccountObjectPolicyRuleParameterSet)
+ || (this.ParameterSetName == AccountObjectPolicyObjectParameterSet))
+ {
+ this.ResourceGroupName = StorageAccount.ResourceGroupName;
+ this.StorageAccountName = StorageAccount.StorageAccountName;
+ }
+ else if ((this.ParameterSetName == AccountResourceIdPolicyRuleParameterSet)
+ || (this.ParameterSetName == AccountResourceIdPolicyObjectParameterSet))
+ {
+ ResourceIdentifier accountResource = new ResourceIdentifier(StorageAccountResourceId);
+ this.ResourceGroupName = accountResource.ResourceGroupName;
+ this.StorageAccountName = accountResource.ResourceName;
+ }
+ BlobInventoryPolicy blobInventoryPolicy;
+
+ switch (this.ParameterSetName)
+ {
+ case AccountObjectPolicyRuleParameterSet:
+ case AccountNamePolicyRuleParameterSet:
+ case AccountResourceIdPolicyRuleParameterSet:
+ blobInventoryPolicy = this.StorageClient.BlobInventoryPolicies.CreateOrUpdate(
+ this.ResourceGroupName,
+ this.StorageAccountName,
+ new BlobInventoryPolicySchema(
+ enabled: !(this.Disabled.IsPresent),
+ rules: PSBlobInventoryPolicy.ParseBlobInventoryPolicyRules(this.Rule)));
+ break;
+ case AccountObjectPolicyObjectParameterSet:
+ case AccountNamePolicyObjectParameterSet:
+ case AccountResourceIdPolicyObjectParameterSet:
+ blobInventoryPolicy = this.StorageClient.BlobInventoryPolicies.CreateOrUpdate(
+ this.ResourceGroupName,
+ this.StorageAccountName,
+ this.Policy.ParseBlobInventoryPolicy().Policy);
+ break;
+ default:
+ throw new PSArgumentException(string.Format(CultureInfo.InvariantCulture, "Invalid ParameterSet: {0}", this.ParameterSetName));
+ }
+
+ WriteObject(new PSBlobInventoryPolicy(blobInventoryPolicy, this.ResourceGroupName, this.StorageAccountName), true);
+ }
+ }
+ }
+}
diff --git a/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs b/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs
index f3dfd6c3e3c7..76eef2ce8aba 100644
--- a/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs
+++ b/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs
@@ -59,9 +59,9 @@ protected struct AccountAccessTier
}
protected struct AzureBlobType
{
- internal const string BlockBlob = "blockBlob";
- internal const string PageBlob = "pageBlob";
- internal const string AppendBlob = "appendBlob";
+ public const string BlockBlob = "blockBlob";
+ public const string PageBlob = "pageBlob";
+ public const string AppendBlob = "appendBlob";
}
protected struct ManagementPolicyAction
{
@@ -175,5 +175,33 @@ public static string GetIdentityTypeString(string inputIdentityType)
}
throw new ArgumentException("The value for AssignIdentityType is not valid, the valid value are: \"None\", \"SystemAssigned\", \"UserAssigned\", or \"SystemAssignedUserAssigned\"", "AssignIdentityType");
}
+
+ // Make the input string value case is aligned with the test API defination.
+ public static string NormalizeString(string input)
+ {
+ foreach (var field in typeof(T).GetFields())
+ {
+ if (input.ToLower() == field.GetRawConstantValue().ToString().ToLower())
+ {
+ return (string)field.GetRawConstantValue().ToString();
+ }
+ }
+ return input;
+ }
+
+ // Make the input string[] value case is aligned with the test API defination.
+ public static string[] NormalizeStringArray(string[] input)
+ {
+ if (input != null)
+ {
+ List stringList = new List();
+ foreach (string s in input)
+ {
+ stringList.Add(NormalizeString(s));
+ }
+ return stringList.ToArray();
+ }
+ return input;
+ }
}
}
diff --git a/src/Storage/Storage.Management/help/Az.Storage.md b/src/Storage/Storage.Management/help/Az.Storage.md
index d62f6b18cc44..cce3683a29ff 100644
--- a/src/Storage/Storage.Management/help/Az.Storage.md
+++ b/src/Storage/Storage.Management/help/Az.Storage.md
@@ -92,6 +92,9 @@ Downloads a storage blob.
### [Get-AzStorageBlobCopyState](Get-AzStorageBlobCopyState.md)
Gets the copy status of an Azure Storage blob.
+### [Get-AzStorageBlobInventoryPolicy](Get-AzStorageBlobInventoryPolicy.md)
+Gets blob inventory policy from a Storage account.
+
### [Get-AzStorageBlobQueryResult](Get-AzStorageBlobQueryResult.md)
Applies a simple Structured Query Language (SQL) statement on a blob's contents and save only the queried subset of the data to a local file.
@@ -191,6 +194,9 @@ Creates a ManagementPolicy rule object, which can be used in Set-AzStorageAccoun
### [New-AzStorageAccountSASToken](New-AzStorageAccountSASToken.md)
Creates an account-level SAS token.
+### [New-AzStorageBlobInventoryPolicyRule](New-AzStorageBlobInventoryPolicyRule.md)
+Creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy.
+
### [New-AzStorageBlobQueryConfig](New-AzStorageBlobQueryConfig.md)
Creates a blob query configuration object, which can be used in Get-AzStorageBlobQueryResult.
@@ -281,6 +287,9 @@ Remove IpRules or VirtualNetworkRules from the NetWorkRule property of a Storage
### [Remove-AzStorageBlob](Remove-AzStorageBlob.md)
Removes the specified storage blob.
+### [Remove-AzStorageBlobInventoryPolicy](Remove-AzStorageBlobInventoryPolicy.md)
+Removes blob inventory policy from a Storage account.
+
### [Remove-AzStorageContainer](Remove-AzStorageContainer.md)
Removes the specified storage container.
@@ -347,6 +356,9 @@ Creates or modifies the management policy of an Azure Storage account.
### [Set-AzStorageBlobContent](Set-AzStorageBlobContent.md)
Uploads a local file to an Azure Storage blob.
+### [Set-AzStorageBlobInventoryPolicy](Set-AzStorageBlobInventoryPolicy.md)
+Creates or updates blob inventory policy in a Storage account.
+
### [Set-AzStorageContainerAcl](Set-AzStorageContainerAcl.md)
Sets the public access permission to a storage container.
diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobInventoryPolicy.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobInventoryPolicy.md
new file mode 100644
index 000000000000..51fc9d19aeab
--- /dev/null
+++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobInventoryPolicy.md
@@ -0,0 +1,155 @@
+---
+external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml
+Module Name: Az.Storage
+online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobinventorypolicy
+schema: 2.0.0
+---
+
+# Get-AzStorageBlobInventoryPolicy
+
+## SYNOPSIS
+Gets blob inventory policy from a Storage account.
+
+## SYNTAX
+
+### AccountName (Default)
+```
+Get-AzStorageBlobInventoryPolicy [-ResourceGroupName] [-StorageAccountName]
+ [-DefaultProfile ] []
+```
+
+### AccountResourceId
+```
+Get-AzStorageBlobInventoryPolicy [-StorageAccountResourceId]
+ [-DefaultProfile ] []
+```
+
+### AccountObject
+```
+Get-AzStorageBlobInventoryPolicy -StorageAccount [-DefaultProfile ]
+ []
+```
+
+## DESCRIPTION
+The **Get-AzStorageBlobInventoryPolicy** cmdlet gets blob inventory policy from a Storage account.
+
+## EXAMPLES
+
+### Example 1: Get blob inventory policy from a Storage account
+```
+PS C:\> $policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount"
+
+PS C:\> $policy
+
+StorageAccountName : mystorageaccount
+ResourceGroupName : myresourcegroup
+Name : DefaultInventoryPolicy
+Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default
+Type : Microsoft.Storage/storageAccounts/inventoryPolicies
+LastModifiedTime : 11/4/2020 9:18:30 AM
+Enabled : True
+Rules : {Test1, Test2}
+
+PS C:\> $policy.Rules
+
+Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields
+---- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------
+Test1 False containername Container Csv Daily {aaa, bbb} {Name, Metadata, PublicAccess, Last-Modified...}
+Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {ccc, ddd} {Name, Creation-Time, Last-Modified, Content-Length...}
+```
+
+This command gets blob inventory policy from a Storage account, and show its proeprties.
+
+## PARAMETERS
+
+### -DefaultProfile
+The credentials, account, tenant, and subscription used for communication with Azure.
+
+```yaml
+Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer
+Parameter Sets: (All)
+Aliases: AzContext, AzureRmContext, AzureCredential
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ResourceGroupName
+Resource Group Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountName
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -StorageAccount
+Storage account object
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+Parameter Sets: AccountObject
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: True (ByValue)
+Accept wildcard characters: False
+```
+
+### -StorageAccountName
+Storage Account Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountName
+Aliases: AccountName
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -StorageAccountResourceId
+Storage Account Resource Id.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountResourceId
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: True (ByPropertyName)
+Accept wildcard characters: False
+```
+
+### CommonParameters
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+### System.String
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+
+## OUTPUTS
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy
+
+## NOTES
+
+## RELATED LINKS
diff --git a/src/Storage/Storage.Management/help/New-AzStorageBlobInventoryPolicyRule.md b/src/Storage/Storage.Management/help/New-AzStorageBlobInventoryPolicyRule.md
new file mode 100644
index 000000000000..61d52ada11eb
--- /dev/null
+++ b/src/Storage/Storage.Management/help/New-AzStorageBlobInventoryPolicyRule.md
@@ -0,0 +1,269 @@
+---
+external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml
+Module Name: Az.Storage
+online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageblobinventorypolicyrule
+schema: 2.0.0
+---
+
+# New-AzStorageBlobInventoryPolicyRule
+
+## SYNOPSIS
+Creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy.
+
+## SYNTAX
+
+### BlobRuleParameterSet (Default)
+```
+New-AzStorageBlobInventoryPolicyRule [-Name] [-Disabled] -Destination -Format
+ -Schedule -BlobSchemaField -BlobType [-PrefixMatch ]
+ [-IncludeSnapshot] [-IncludeBlobVersion] [-DefaultProfile ] []
+```
+
+### ContainerRuleParameterSet
+```
+New-AzStorageBlobInventoryPolicyRule [-Name] [-Disabled] -Destination -Format
+ -Schedule -ContainerSchemaField [-PrefixMatch ]
+ [-DefaultProfile ] []
+```
+
+## DESCRIPTION
+The **New-AzStorageBlobInventoryPolicyRule** cmdlet creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy.
+
+## EXAMPLES
+
+### Example 1: Create blob inventory policy rule objects, then sets blob inventory policy with the rule objects.
+```
+PS C:\> $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2
+
+PS C:\> $rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
+ -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata
+
+PS C:\> $policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2
+
+PS C:\> $policy
+
+StorageAccountName : mystorageaccount
+ResourceGroupName : myresourcegroup
+Name : DefaultInventoryPolicy
+Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default
+Type : Microsoft.Storage/storageAccounts/inventoryPolicies
+LastModifiedTime : 5/12/2021 8:53:38 AM
+Enabled : False
+Rules : {Test1, Test2}
+
+PS C:\> $policy.Rules
+
+Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields
+---- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------
+Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...}
+Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...}
+```
+
+This first 2 commands create 2 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" for blob inventory.
+The following command sets blob inventory policy to a Storage account with the 2 rule objects, then show the updated policy and rules properties.
+
+## PARAMETERS
+
+### -BlobSchemaField
+Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime. 'Name' is a required schemafield.If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory.
+
+```yaml
+Type: System.String[]
+Parameter Sets: BlobRuleParameterSet
+Aliases:
+Accepted values: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -BlobType
+Sets the blob types for the blob inventory policy rule.
+Valid values include blockBlob, appendBlob, pageBlob.
+Hns accounts does not support pageBlobs.
+
+```yaml
+Type: System.String[]
+Parameter Sets: BlobRuleParameterSet
+Aliases:
+Accepted values: blockBlob, pageBlob, appendBlob
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ContainerSchemaField
+Specifies the fields and properties of the container object to be included in the inventory. Valid values include: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. 'Name' is a required schemafield.
+
+```yaml
+Type: System.String[]
+Parameter Sets: ContainerRuleParameterSet
+Aliases:
+Accepted values: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -DefaultProfile
+The credentials, account, tenant, and subscription used for communication with Azure.
+
+```yaml
+Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer
+Parameter Sets: (All)
+Aliases: AzContext, AzureRmContext, AzureCredential
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Destination
+The container name where blob inventory files are stored. Must be pre-created.
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Disabled
+The rule is disabled if set it.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Format
+Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet'
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+Accepted values: Csv, Parquet
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -IncludeBlobVersion
+The rule is disabled if set it.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: BlobRuleParameterSet
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -IncludeSnapshot
+The rule is disabled if set it.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: BlobRuleParameterSet
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Name
+A rule name can contain any combination of alpha numeric characters.
+Rule name is case-sensitive.
+It must be unique within a policy.
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -PrefixMatch
+Sets an array of strings for blob prefixes to be matched..
+
+```yaml
+Type: System.String[]
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Schedule
+This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly'
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+Accepted values: Daily, Weekly
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+### None
+
+## OUTPUTS
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule
+
+## NOTES
+
+## RELATED LINKS
diff --git a/src/Storage/Storage.Management/help/Remove-AzStorageBlobInventoryPolicy.md b/src/Storage/Storage.Management/help/Remove-AzStorageBlobInventoryPolicy.md
new file mode 100644
index 000000000000..07323e578dfb
--- /dev/null
+++ b/src/Storage/Storage.Management/help/Remove-AzStorageBlobInventoryPolicy.md
@@ -0,0 +1,206 @@
+---
+external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml
+Module Name: Az.Storage
+online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageblobinventorypolicy
+schema: 2.0.0
+---
+
+# Remove-AzStorageBlobInventoryPolicy
+
+## SYNOPSIS
+Removes blob inventory policy from a Storage account.
+
+## SYNTAX
+
+### AccountName (Default)
+```
+Remove-AzStorageBlobInventoryPolicy [-ResourceGroupName] [-StorageAccountName] [-PassThru]
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### AccountObject
+```
+Remove-AzStorageBlobInventoryPolicy -StorageAccount [-PassThru]
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### AccountResourceId
+```
+Remove-AzStorageBlobInventoryPolicy [-StorageAccountResourceId] [-PassThru]
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### PolicyObject
+```
+Remove-AzStorageBlobInventoryPolicy [-InputObject] [-PassThru]
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+## DESCRIPTION
+The **Remove-AzStorageBlobInventoryPolicy** cmdlet removes blob inventory policy from a Storage account.
+
+## EXAMPLES
+
+### Example 1: Remove blob inventory policy from a Storage account
+```
+PS C:\>Remove-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount"
+```
+
+This command removes blob inventory policy from a Storage account.
+
+## PARAMETERS
+
+### -DefaultProfile
+The credentials, account, tenant, and subscription used for communication with Azure.
+
+```yaml
+Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer
+Parameter Sets: (All)
+Aliases: AzContext, AzureRmContext, AzureCredential
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -InputObject
+Management Object to Remove
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy
+Parameter Sets: PolicyObject
+Aliases: BlobInventoryPolicy
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: True (ByValue)
+Accept wildcard characters: False
+```
+
+### -PassThru
+{{Fill PassThru Description}}
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -ResourceGroupName
+Resource Group Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountName
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -StorageAccount
+Storage account object
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+Parameter Sets: AccountObject
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: True (ByValue)
+Accept wildcard characters: False
+```
+
+### -StorageAccountName
+Storage Account Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountName
+Aliases: AccountName
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -StorageAccountResourceId
+Storage Account Resource Id.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountResourceId
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: True (ByPropertyName)
+Accept wildcard characters: False
+```
+
+### -Confirm
+Prompts you for confirmation before running the cmdlet.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases: cf
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -WhatIf
+Shows what would happen if the cmdlet runs.
+The cmdlet is not run.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases: wi
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+
+### System.String
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy
+
+## OUTPUTS
+
+### System.Boolean
+
+## NOTES
+
+## RELATED LINKS
diff --git a/src/Storage/Storage.Management/help/Set-AzStorageBlobInventoryPolicy.md b/src/Storage/Storage.Management/help/Set-AzStorageBlobInventoryPolicy.md
new file mode 100644
index 000000000000..3aa8debd56f3
--- /dev/null
+++ b/src/Storage/Storage.Management/help/Set-AzStorageBlobInventoryPolicy.md
@@ -0,0 +1,336 @@
+---
+external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml
+Module Name: Az.Storage
+online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobinventorypolicy
+schema: 2.0.0
+---
+
+# Set-AzStorageBlobInventoryPolicy
+
+## SYNOPSIS
+Creates or updates blob inventory policy in a Storage account.
+
+## SYNTAX
+
+### AccountNamePolicyRule (Default)
+```
+Set-AzStorageBlobInventoryPolicy [-ResourceGroupName] [-StorageAccountName]
+ -Rule [-Disabled] [-DefaultProfile ] [-WhatIf]
+ [-Confirm] []
+```
+
+### AccountNamePolicyObject
+```
+Set-AzStorageBlobInventoryPolicy [-ResourceGroupName] [-StorageAccountName]
+ -Policy [-DefaultProfile ] [-WhatIf] [-Confirm]
+ []
+```
+
+### AccountObjectPolicyRule
+```
+Set-AzStorageBlobInventoryPolicy -StorageAccount -Rule
+ [-Disabled] [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### AccountObjectPolicyObject
+```
+Set-AzStorageBlobInventoryPolicy -StorageAccount -Policy
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### AccountResourceIdPolicyRule
+```
+Set-AzStorageBlobInventoryPolicy [-StorageAccountResourceId] -Rule
+ [-Disabled] [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+### AccountResourceIdPolicyObject
+```
+Set-AzStorageBlobInventoryPolicy [-StorageAccountResourceId] -Policy
+ [-DefaultProfile ] [-WhatIf] [-Confirm] []
+```
+
+## DESCRIPTION
+The **Set-AzStorageBlobInventoryPolicy** cmdlet creates or updates blob inventory policy in a Storage account.
+
+## EXAMPLES
+
+### Example 1: Create or update the blob inventory policy with BlobInventoryPolicy rule objects.
+```
+PS C:\> $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2
+
+PS C:\> $rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
+ -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata
+
+PS C:\> $policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2
+
+PS C:\> $policy
+
+StorageAccountName : mystorageaccount
+ResourceGroupName : myresourcegroup
+Name : DefaultInventoryPolicy
+Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default
+Type : Microsoft.Storage/storageAccounts/inventoryPolicies
+LastModifiedTime : 5/12/2021 8:53:38 AM
+Enabled : False
+Rules : {Test1, Test2}
+
+PS C:\> $policy.Rules
+
+Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields
+---- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------
+Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...}
+Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...}
+```
+
+This first 2 commands create 2 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" for blob inventory.
+The following command sets blob inventory policy to a Storage account with the 2 rule objects, then show the updated policy and rules properties.
+
+### Example 2: Create or update the blob inventory policy of a Storage account with a Json format policy.
+```
+PS C:\> $policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName $resourceGroupName -StorageAccountName $accountName -Policy (@{
+ Enabled=$true;
+ Rules=(@{
+ Enabled=$true;
+ Name="Test1";
+ Destination=$containerName;
+ Definition=(@{
+ ObjectType="Blob";
+ Format="Csv";
+ Schedule="Weekly";
+ SchemaFields=@("name","Content-Length","BlobType","Snapshot","VersionId","IsCurrentVersion");
+ Filters=(@{
+ BlobTypes=@("blockBlob","appendBlob");
+ PrefixMatch=@("prefix1","prefix2");
+ IncludeSnapshots=$true;
+ IncludeBlobVersions=$true;
+ })
+ })
+ },
+ @{
+ Enabled=$false;
+ Name="Test2";
+ Destination=$containerName;
+ Definition=(@{
+ ObjectType="Container";
+ Format="Parquet";
+ Schedule="Daily";
+ SchemaFields=@("name","Metadata","PublicAccess");
+ Filters=(@{
+ PrefixMatch=@("conpre1","conpre2");
+ })
+ })
+ })
+ })
+
+
+PS C:\> $policy
+
+StorageAccountName : weiadlscanary1
+ResourceGroupName : weitry
+Name : DefaultInventoryPolicy
+Id : /subscriptions/{subscription-Id}/resourceGroups/weitry/providers/Microsoft.Storage/storageAccounts/weiadlscanary1/inventoryPolicies/default
+Type : Microsoft.Storage/storageAccounts/inventoryPolicies
+LastModifiedTime : 5/12/2021 9:02:21 AM
+Enabled : True
+Rules : {Test1, Test2}
+
+PS C:\> $policy.Rules
+
+Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields
+---- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------
+Test1 True containername Blob Csv Weekly True True {blockBlob, appendBlob} {prefix1, prefix2} {name, Content-Length, BlobType, Snapshot...}
+Test2 False containername Container Parquet Daily {conpre1, conpre2} {name, Metadata, PublicAccess} {name, Metadata, PublicAccess}
+```
+
+This command creates or updates the blob inventory policy of a Storage account with a json format policy.
+
+### Example 3: Get the blob inventory policy from a Storage account, then set it to another Storage account.
+```
+PS C:\>$policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2"
+```
+
+This command first gets the blob inventory policy from a Storage account, then set it to another Storage account.
+The proeprties: Destination, Enabled, and Rules of the policy will be set to the destination account.
+
+### Example 4: Get the blob inventory policy rules from a Storage account, then set it to another Storage account.
+```
+PS C:\>$policy = ,((Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount").Rules) | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" -Disabled
+```
+
+This command first gets the blob inventory policy from a Storage account, then set it's rules to another Storage account.
+
+## PARAMETERS
+
+### -DefaultProfile
+The credentials, account, tenant, and subscription used for communication with Azure.
+
+```yaml
+Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer
+Parameter Sets: (All)
+Aliases: AzContext, AzureRmContext, AzureCredential
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Disabled
+The Blob Inventory Policy is enabled by default, specify this parameter to disable it.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Policy
+Blob Inventory Policy Object to Set
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy
+Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: True (ByPropertyName, ByValue)
+Accept wildcard characters: False
+```
+
+### -ResourceGroupName
+Resource Group Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -Rule
+The Blob Inventory Policy rules.
+Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet.
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[]
+Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: True (ByValue)
+Accept wildcard characters: False
+```
+
+### -StorageAccount
+Storage account object
+
+```yaml
+Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject
+Aliases:
+
+Required: True
+Position: Named
+Default value: None
+Accept pipeline input: True (ByValue)
+Accept wildcard characters: False
+```
+
+### -StorageAccountName
+Storage Account Name.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject
+Aliases: AccountName
+
+Required: True
+Position: 1
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -StorageAccountResourceId
+Storage Account Resource Id.
+
+```yaml
+Type: System.String
+Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject
+Aliases:
+
+Required: True
+Position: 0
+Default value: None
+Accept pipeline input: True (ByPropertyName)
+Accept wildcard characters: False
+```
+
+### -Confirm
+Prompts you for confirmation before running the cmdlet.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases: cf
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### -WhatIf
+Shows what would happen if the cmdlet runs.
+The cmdlet is not run.
+
+```yaml
+Type: System.Management.Automation.SwitchParameter
+Parameter Sets: (All)
+Aliases: wi
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+```
+
+### CommonParameters
+This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
+
+## INPUTS
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
+
+### System.String
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[]
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicySchema
+
+## OUTPUTS
+
+### Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy
+
+## NOTES
+
+## RELATED LINKS
diff --git a/tools/LocalFeed/Microsoft.Azure.Management.Storage.22.0.0.nupkg b/tools/LocalFeed/Microsoft.Azure.Management.Storage.22.0.0.nupkg
index b67af0d32194..e54f4a5adb92 100644
Binary files a/tools/LocalFeed/Microsoft.Azure.Management.Storage.22.0.0.nupkg and b/tools/LocalFeed/Microsoft.Azure.Management.Storage.22.0.0.nupkg differ
diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv
index 056304695e21..473cc8bdc1e9 100644
--- a/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv
+++ b/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv
@@ -69,3 +69,4 @@
"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.EnableAzStorageBlobRestorePolicyCommand","Enable-AzStorageBlobRestorePolicy","1","8410","Parameter RestoreDays of cmdlet Enable-AzStorageBlobRestorePolicy does not follow the enforced naming convention of using a singular noun for a parameter name.","Consider using a singular noun for the parameter name."
"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.NewAzureStorageBlobRangeToRestoreCommand","New-AzStorageBlobRangeToRestore","1","8100","New-AzStorageBlobRangeToRestore Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue"
"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.UpdateAzStorageFileServicePropertyCommand","Update-AzStorageFileServiceProperty","1","8410","Parameter ShareRetentionDays of cmdlet Update-AzStorageFileServiceProperty does not follow the enforced naming convention of using a singular noun for a parameter name.","Consider using a singular noun for the parameter name."
+"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.NewAzureStorageBlobInventoryPolicyRuleCommand","New-AzStorageBlobInventoryPolicyRule","1","8100","New-AzStorageBlobInventoryPolicyRule Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue"