From 76570c0cd9aef5f03d2aa40d2bdad8207be0765c Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Fri, 3 Apr 2020 13:43:24 +0800 Subject: [PATCH 01/21] [Storage] Add preview code change (#11474) ## Upcoming Release * Support create/update/get/list EncryptionScope of a Storage account - New-AzStorageEncryptionScope - Update-AzStorageEncryptionScope - Get-AzStorageEncryptionScope * Support create Storage Container with EncryptionScope settings - New-AzRmStorageContainer * Support update Storage account with encryted by Keyvault without Keyversion - Set-AzStorageAccount ## Version 1.13.3 * Upgrade DataLake Gen2 cmdlets to use new SDK "Azure.Storage.Files.DataLake", and remove 2 parameter -ServerTimeoutPerRequest, -ClientTimeoutPerRequest - New-AzDataLakeGen2Item - Get-AzDataLakeGen2Item - Get-AzDataLakeGen2ChildItem - Move-AzDataLakeGen2Item - Set-AzDataLakeGen2ItemAclObject - Update-AzDataLakeGen2Item - Get-AzDataLakeGen2ItemContent - Remove-AzDataLakeGen2Item * Change cmdlet name from New-AzDataLakeGen2ItemAclObject to Set-AzDataLakeGen2ItemAclObject, and when InputObject already has an ACL entry with same AccessControlType/EntityId/DefaultScope, will update permission of ACL entry instead of adding new ACL entry. - Set-AzDataLakeGen2ItemAclObject * Change -Path parameter to optional, don't set -Path will get/update FileSystem root Directory - Get-AzDataLakeGen2Item - Update-AzDataLakeGen2Item * In list DataLakeGen2 items, support -OutputUserPrincipalName, and change -FetchPermission to -Fetchproperties - Get-AzDataLakeGen2ChildItem * In move DataLakeGen2 item, remove 2 parameters -Umask, -PathRenameMode, and add -Force to skip overwrite confirmation prompt. - Move-AzDataLakeGen2Item ## Version 1.13.1 * Support Point In Time Restore - Enable-AzStorageBlobRestorePolicy - Disable-AzStorageBlobRestorePolicy - New-AzStorageBlobRangeToRestore - Restore-AzStorageBlobRange * Support get blob restore status of Storage account by run get-AzureRMStorageAccount with parameter -IncludeBlobRestoreStatus - Get-AzureRMStorageAccount --- build.proj | 2 +- .../EventGrid.Test/EventGrid.Test.csproj | 2 +- .../ScenarioTests/StorageAccountTests.cs | 21 + .../ScenarioTests/StorageAccountTests.ps1 | 142 + .../ScenarioTests/StorageBlobTests.cs | 16 +- .../ScenarioTests/StorageBlobTests.ps1 | 145 +- .../ScenarioTests/StorageDataPlaneTests.cs | 7 + .../ScenarioTests/StorageDataPlaneTests.ps1 | 167 + .../TestFailoverAzureStorageAccount.json | 3557 +++++++++++++++++ .../TestNewSetAzStorageAccountFileAADDS.json | 63 + .../TestNewSetAzureStorageAccountGZRS.json | 942 +++++ .../TestNewSetAzureStorageAccountRAGZRS.json | 942 +++++ ...stStorageBlobContainerEncryptionScope.json | 1764 ++++++++ .../TestStorageBlobRestore.json | 2199 ++++++++++ .../TestStorageBlobServiceProperties.json | 390 ++ .../Storage.Management.Test.csproj | 4 +- .../Storage.Management/Az.Storage.psd1 | 57 +- .../DisableAzureStorageBlobRestorePolicy.cs | 122 + .../EnableAzureStorageBlobRestorePolicy.cs | 126 + .../Blob/NewAzureStorageContainer.cs | 63 +- .../Blob/StorageBlobBaseCmdlet.cs | 1 + ...UpdateAzureStorageBlobServiceProperties.cs | 22 + .../Blob/UpdateAzureStorageContainer.cs | 5 +- src/Storage/Storage.Management/ChangeLog.md | 107 +- ...PSAzureFilesIdentityBasedAuthentication.cs | 31 +- .../Models/PSBlobRestore.cs | 141 + .../Models/PSBlobServiceProperties.cs | 36 + .../Storage.Management/Models/PSContainer.cs | 8 + .../Models/PSEncryptionScope.cs | 110 + .../Models/PSStorageAccount.cs | 6 + .../Properties/AssemblyInfo.cs | 4 +- .../Storage.Management.csproj | 11 +- .../Storage.Management.format.ps1xml | 133 +- .../StorageAccount/GetAzureStorageAccount.cs | 26 +- .../GetAzureStorageAccountKey.cs | 13 +- .../GetAzureStorageEncryptionScope.cs | 123 + .../InvokeAzureStorageAccountFailover.cs | 115 + .../NewAzStorageBlobRangeToRestore.cs | 45 + .../StorageAccount/NewAzureStorageAccount.cs | 105 +- .../NewAzureStorageAccountKey.cs | 6 +- .../NewAzureStorageEncryptionScope.cs | 161 + .../RestoreAzStorageBlobRange.cs | 121 + .../StorageAccount/SetAzureStorageAccount.cs | 167 +- .../StorageAccountBaseCmdlet.cs | 9 +- .../UpdateAzureStorageEncryptionScope.cs | 224 ++ .../Storage.Management/help/Az.Storage.md | 48 + .../Disable-AzStorageBlobRestorePolicy.md | 183 + .../help/Enable-AzStorageBlobRestorePolicy.md | 216 + .../help/Get-AzDataLakeGen2ChildItem.md | 249 ++ .../help/Get-AzDataLakeGen2Item.md | 186 + .../help/Get-AzDataLakeGen2ItemContent.md | 263 ++ .../help/Get-AzStorageAccount.md | 38 +- .../help/Get-AzStorageAccountKey.md | 29 +- .../help/Get-AzStorageBlobServiceProperty.md | 6 +- .../help/Get-AzStorageEncryptionScope.md | 183 + .../help/Invoke-AzStorageAccountFailover.md | 188 + .../help/Move-AzDataLakeGen2Item.md | 232 ++ .../help/New-AzDataLakeGen2Item.md | 315 ++ .../help/New-AzRmStorageContainer.md | 76 +- .../help/New-AzStorageAccount.md | 163 +- .../help/New-AzStorageAccountKey.md | 4 +- .../help/New-AzStorageBlobRangeToRestore.md | 117 + .../help/New-AzStorageEncryptionScope.md | 240 ++ .../help/Remove-AzDataLakeGen2Item.md | 227 ++ .../help/Restore-AzStorageBlobRange.md | 245 ++ .../help/Set-AzDataLakeGen2ItemACLObject.md | 165 + .../help/Set-AzStorageAccount.md | 161 +- .../help/Update-AzDataLakeGen2Item.md | 374 ++ .../help/Update-AzRmStorageContainer.md | 4 +- .../Update-AzStorageBlobServiceProperty.md | 48 +- .../help/Update-AzStorageEncryptionScope.md | 310 ++ src/Storage/Storage.Test/Storage.Test.csproj | 6 +- .../Blob/Cmdlet/GetAzureStorageBlob.cs | 24 - .../Blob/Cmdlet/GetAzureStorageContainer.cs | 2 +- .../Blob/Cmdlet/NewAzureStorageContainer.cs | 1 + .../Cmdlet/RemoveAzureStorageContainer.cs | 1 + .../Blob/Cmdlet/SetAzureStorageBlobContent.cs | 88 +- .../Blob/StorageCloudBlobCmdletBase.cs | 373 +- .../Storage/Common/AzureDataLakeGen2Item.cs | 188 + .../Storage/Common/AzureSessionCredential.cs | 94 + .../Storage/Common/AzureStorageBlob.cs | 88 +- .../Storage/Common/AzureStorageContainer.cs | 74 + .../Storage/Common/AzureStorageContext.cs | 12 +- .../Common/Cmdlet/NewAzureStorageContext.cs | 3 +- .../Storage/Common/StorageCloudCmdletBase.cs | 4 +- .../Cmdlet/GetAzDataLakeGen2ChildItem.cs | 134 + .../Cmdlet/GetAzDataLakeGen2FileContent.cs | 274 ++ .../Cmdlet/GetAzDataLakeGen2Item.cs | 86 + .../Cmdlet/MoveAzDataLakeGen2Item.cs | 173 + .../Cmdlet/NewAzDataLakeGen2ACLObject.cs | 89 + .../Cmdlet/NewAzDataLakeGen2Item.cs | 338 ++ .../Cmdlet/RemoveAzDataLakeGen2Item.cs | 151 + .../Cmdlet/UpdateAzDataLakeGen2Item.cs | 218 + .../Storage/DatalakeGen2/GEN1_GEN2_MAPPING.md | 136 + .../ResourceModel/PSPathAccessControl.cs | 97 + src/Storage/Storage/Storage.csproj | 22 +- src/Storage/Storage/Storage.format.ps1xml | 106 + .../Storage/Storage.generated.format.ps1xml | 127 + .../System.Numerics.Vectors.dll | Bin 0 -> 163464 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18808 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 99192 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 14712 bytes ...m.Diagnostics.DiagnosticSource.4.0.4.0.dll | Bin 0 -> 49528 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 43952 bytes .../PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163712 bytes ...untime.CompilerServices.Unsafe.4.0.5.0.dll | Bin 0 -> 16760 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 23600 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 57720 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes tools/Az/Az.psd1 | 2 +- .../DependencyAnalyzer/DependencyAnalyzer.cs | 2 +- .../Az.Storage/BreakingChangeIssues.csv | 4 +- .../Az.Storage/MissingAssemblies.csv | 12 +- .../Exceptions/Az.Storage/SignatureIssues.csv | 1 + 118 files changed, 19443 insertions(+), 218 deletions(-) create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestFailoverAzureStorageAccount.json create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountGZRS.json create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountRAGZRS.json create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobContainerEncryptionScope.json create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobRestore.json create mode 100644 src/Storage/Storage.Management/Blob/DisableAzureStorageBlobRestorePolicy.cs create mode 100644 src/Storage/Storage.Management/Blob/EnableAzureStorageBlobRestorePolicy.cs create mode 100644 src/Storage/Storage.Management/Models/PSBlobRestore.cs create mode 100644 src/Storage/Storage.Management/Models/PSEncryptionScope.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/GetAzureStorageEncryptionScope.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/InvokeAzureStorageAccountFailover.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/NewAzStorageBlobRangeToRestore.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/NewAzureStorageEncryptionScope.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/RestoreAzStorageBlobRange.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageEncryptionScope.cs create mode 100644 src/Storage/Storage.Management/help/Disable-AzStorageBlobRestorePolicy.md create mode 100644 src/Storage/Storage.Management/help/Enable-AzStorageBlobRestorePolicy.md create mode 100644 src/Storage/Storage.Management/help/Get-AzDataLakeGen2ChildItem.md create mode 100644 src/Storage/Storage.Management/help/Get-AzDataLakeGen2Item.md create mode 100644 src/Storage/Storage.Management/help/Get-AzDataLakeGen2ItemContent.md create mode 100644 src/Storage/Storage.Management/help/Get-AzStorageEncryptionScope.md create mode 100644 src/Storage/Storage.Management/help/Invoke-AzStorageAccountFailover.md create mode 100644 src/Storage/Storage.Management/help/Move-AzDataLakeGen2Item.md create mode 100644 src/Storage/Storage.Management/help/New-AzDataLakeGen2Item.md create mode 100644 src/Storage/Storage.Management/help/New-AzStorageBlobRangeToRestore.md create mode 100644 src/Storage/Storage.Management/help/New-AzStorageEncryptionScope.md create mode 100644 src/Storage/Storage.Management/help/Remove-AzDataLakeGen2Item.md create mode 100644 src/Storage/Storage.Management/help/Restore-AzStorageBlobRange.md create mode 100644 src/Storage/Storage.Management/help/Set-AzDataLakeGen2ItemACLObject.md create mode 100644 src/Storage/Storage.Management/help/Update-AzDataLakeGen2Item.md create mode 100644 src/Storage/Storage.Management/help/Update-AzStorageEncryptionScope.md create mode 100644 src/Storage/Storage/Common/AzureDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/Common/AzureSessionCredential.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2ACLObject.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs create mode 100644 src/Storage/Storage/DatalakeGen2/GEN1_GEN2_MAPPING.md create mode 100644 src/Storage/Storage/Model/ResourceModel/PSPathAccessControl.cs create mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll create mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Text.Encodings.Web.dll create mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Diagnostics.DiagnosticSource.4.0.4.0.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Memory.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.4.0.5.0.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 src/lib/Azure.Core/PreloadAssemblies/System.Xml.ReaderWriter.dll diff --git a/build.proj b/build.proj index 154efbec1622..498e0da6fb0c 100644 --- a/build.proj +++ b/build.proj @@ -173,7 +173,7 @@ Microsoft.Powershell.*.dll,System*.dll,Microsoft.VisualBasic.dll,Microsoft.CSharp.dll,Microsoft.CodeAnalysis.dll,Microsoft.CodeAnalysis.CSharp.dll - System.Security.Cryptography.ProtectedData.dll,System.Configuration.ConfigurationManager.dll,System.Runtime.CompilerServices.Unsafe.dll,System.IO.FileSystem.AccessControl.dll,System.Buffers.dll,System.Text.Encodings.Web.dll,System.CodeDom.dll,System.Management.dll + System.Security.Cryptography.ProtectedData.dll,System.Configuration.ConfigurationManager.dll,System.Runtime.CompilerServices.Unsafe.dll,System.IO.FileSystem.AccessControl.dll,System.Buffers.dll,System.Text.Encodings.Web.dll,System.CodeDom.dll,System.Management.dll,System.Text.Json.dll,System.Threading.Tasks.Extensions.dll diff --git a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj index b40e89590d2c..56af6cec846b 100644 --- a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj +++ b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs index d1b39900826c..33ab3f2e08e0 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs @@ -142,6 +142,13 @@ public void TestNewAzureStorageAccountBlockBlobStorage() TestRunner.RunTestScript("Test-NewAzureStorageAccountBlockBlobStorage"); } + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestFailoverAzureStorageAccount() + { + TestRunner.RunTestScript("Test-FailoverAzureStorageAccount"); + } + [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetAzureStorageAccountGeoReplicationStats() @@ -170,6 +177,20 @@ public void TestStorageAccountManagementPolicy() TestRunner.RunTestScript("Test-StorageAccountManagementPolicy"); } + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestNewSetAzureStorageAccountGZRS() + { + TestRunner.RunTestScript("Test-NewSetAzureStorageAccount_GZRS"); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestNewSetAzureStorageAccountRAGZRS() + { + TestRunner.RunTestScript("Test-NewSetAzureStorageAccount_RAGZRS"); + } + [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestNewSetAzureStorageAccount_LargeFileShare() diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 index 4f4e74af1ae4..564f672721ad 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 @@ -836,6 +836,52 @@ function Test-GetAzureStorageLocationUsage Assert-AreNotEqual 0 $usage.CurrentValue; } +<# +.SYNOPSIS +Test Invoke-AzStorageAccountFailover +.DESCRIPTION +Smoke[Broken]Test +#> +function Test-FailoverAzureStorageAccount +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_RAGRS'; + $kind = 'StorageV2' + + $loc = Get-ProviderLocation_Canary ResourceManagement; + New-AzResourceGroup -Name $rgname -Location $loc; + + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind; + $sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + $seconcaryLocation = $sto.SecondaryLocation + + #Invoke Failover + $job = Invoke-AzStorageAccountFailover -ResourceGroupName $rgname -Name $stoname -Force -AsJob + $job | Wait-Job + + $sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; + Assert-AreEqual $seconcaryLocation $sto.PrimaryLocation; + Assert-AreEqual 'Standard_LRS' $sto.Sku.Name; + + Retry-IfException { Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; } + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} + <# .SYNOPSIS Test Get-AzStorageAccount with -IncludeGeoReplicationStats @@ -1098,6 +1144,102 @@ function Test-StorageAccountManagementPolicy } } + <# +.SYNOPSIS +Test Test-NewSetAzureStorageAccount_GZRS +.DESCRIPTION +SmokeTest +#> +function Test-NewSetAzureStorageAccount_GZRS +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_GZRS'; + $loc = Get-ProviderLocation_Canary ResourceManagement; + $kind = 'StorageV2' + + New-AzResourceGroup -Name $rgname -Location $loc; + Write-Output ("Resource Group created") + + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -SkuName $stotype ; + + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + + $stotype = 'Standard_RAGZRS'; + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -SkuName $stotype ; + + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} + + <# +.SYNOPSIS +Test Test-NewAzureStorageAccount_RAGZRS +.DESCRIPTION +SmokeTest +#> +function Test-NewSetAzureStorageAccount_RAGZRS +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_RAGZRS'; + $loc = Get-ProviderLocation_Canary ResourceManagement; + $kind = 'StorageV2' + + New-AzResourceGroup -Name $rgname -Location $loc; + Write-Output ("Resource Group created") + + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -SkuName $stotype ; + + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + + $stotype = 'Standard_GZRS'; + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -SkuName $stotype ; + + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} + <# .SYNOPSIS Test Test-NewSetAzureStorageAccount_LargeFileShare diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs index 9bda7ac39dd8..64d697f6bfe3 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs @@ -38,6 +38,13 @@ public void TestStorageBlobContainer() TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobContainer"); } + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestStorageBlobContainerEncryptionScope() + { + TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobContainerEncryptionScope"); + } + [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestStorageBlobContainerLegalHold() @@ -57,6 +64,13 @@ public void TestStorageBlobContainerImmutabilityPolicy() public void TestStorageBlobServiceProperties() { TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobServiceProperties"); - } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestStorageBlobRestore() + { + TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobRestore"); + } } } diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 index d07a3a46ff20..cae233a5eaa1 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 @@ -98,6 +98,78 @@ function Test-StorageBlobContainer } } +<# +.SYNOPSIS +Test StorageAccount container with Encryption Scope +.DESCRIPTION +SmokeTest +#> +function Test-StorageBlobContainerEncryptionScope +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_LRS'; + $loc = Get-ProviderLocation ResourceManagement; + $kind = 'StorageV2' + $containerName = "container"+ $rgname + $containerName2 = "container2"+ $rgname + $scopeName = "testscope" + $scopeName2 = "testscope2" + + Write-Verbose "RGName: $rgname | Loc: $loc" + New-AzResourceGroup -Name $rgname -Location $loc; + + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind + $stos = Get-AzStorageAccount -ResourceGroupName $rgname; + + # create Scope + New-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname -EncryptionScopeName $scopeName -StorageEncryption + $scope = Get-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname -EncryptionScopeName $scopeName + Assert-AreEqual $rgname $scope.ResourceGroupName + Assert-AreEqual $stoname $scope.StorageAccountName + Assert-AreEqual $scopeName $scope.Name + Assert-AreEqual "Microsoft.Storage" $scope.Source + Assert-AreEqual "Enabled" $scope.State + + # update Scope + $scope = Update-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname -EncryptionScopeName $scopeName -State Disabled + Assert-AreEqual "Disabled" $scope.State + $scope = Update-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname -EncryptionScopeName $scopeName -State Enabled + Assert-AreEqual "Enabled" $scope.State + + #List Scope + New-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname -EncryptionScopeName $scopeName2 -StorageEncryption + $scopes = Get-AzStorageEncryptionScope -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual 2 $scopes.Count + + #create container + New-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -DefaultEncryptionScope $scopename -PreventEncryptionScopeOverride $true + $container = Get-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName + Assert-AreEqual $rgname $container.ResourceGroupName + Assert-AreEqual $stoname $container.StorageAccountName + Assert-AreEqual $containerName $container.Name + Assert-AreEqual $scopename $container.DefaultEncryptionScope + Assert-AreEqual $true $container.DenyEncryptionScopeOverride + New-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName2 -DefaultEncryptionScope $scopename2 -PreventEncryptionScopeOverride $false + $container2 = Get-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName2 + Assert-AreEqual $rgname $container2.ResourceGroupName + Assert-AreEqual $stoname $container2.StorageAccountName + Assert-AreEqual $containerName2 $container2.Name + Assert-AreEqual $scopename2 $container2.DefaultEncryptionScope + Assert-AreEqual false $container2.DenyEncryptionScopeOverride + + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} function Test-StorageBlobContainerLegalHold { @@ -362,7 +434,17 @@ function Test-StorageBlobServiceProperties Assert-AreEqual '2018-03-28' $property.DefaultServiceVersion $property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname Assert-AreEqual '2018-03-28' $property.DefaultServiceVersion - + + # Update and Get Blob Service Properties: ChangeFeed + $property = Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableChangeFeed $true + Assert-AreEqual $true $property.ChangeFeed.Enabled + $property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual $true $property.ChangeFeed.Enabled + $property = Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableChangeFeed $false + Assert-AreEqual $false $property.ChangeFeed.Enabled + $property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual $false $property.ChangeFeed.Enabled + # Enable and Disable Blob Delete Retention Policy $policy = Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -PassThru -RetentionDays 3 Assert-AreEqual $true $policy.Enabled @@ -389,4 +471,65 @@ function Test-StorageBlobServiceProperties } } +<# +.SYNOPSIS +Test StorageAccount Blob Restore +.DESCRIPTION +SmokeTest +#> +function Test-StorageBlobRestore +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_LRS'; + $loc = Get-ProviderLocation ResourceManagement; + $kind = 'StorageV2' + + Write-Verbose "RGName: $rgname | Loc: $loc" + New-AzResourceGroup -Name $rgname -Location $loc; + + $loc = Get-ProviderLocation_Stage ResourceManagement; + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind + $stos = Get-AzStorageAccount -ResourceGroupName $rgname; + + # Enable Blob Delete Retension Policy, Enable Changefeed, then enabled blob restore policy, then get blob service proeprties and check the setting + Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -RetentionDays 5 + Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableChangeFeed $true + # If record, need sleep before enable the blob restore policy, or will get server error + #sleep 100 + Enable-AzStorageBlobRestorePolicy -ResourceGroupName $rgname -StorageAccountName $stoname -RestoreDays 4 + $property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual $true $property.ChangeFeed.Enabled + Assert-AreEqual $true $property.DeleteRetentionPolicy.Enabled + Assert-AreEqual 5 $property.DeleteRetentionPolicy.Days + Assert-AreEqual $true $property.RestorePolicy.Enabled + Assert-AreEqual 4 $property.RestorePolicy.Days + + # restore blobs by -asjob + $range1 = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 + $range2 = New-AzStorageBlobRangeToRestore -StartRange container3/blob3 -EndRange "" + $job = Restore-AzStorageBlobRange -ResourceGroupName $rgname -StorageAccountName $stoname -TimeToRestore (Get-Date).AddSeconds(-1) -BlobRestoreRange $range1,$range2 -asjob + + # Get Storage Account with Blob Restore Status + $stos = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname -IncludeBlobRestoreStatus + + # wait for restore job finish, and check Blob Restore Status in Storage Account + $job | Wait-Job + $stos = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname -IncludeBlobRestoreStatus + Assert-AreEqual "Complete" $stos.BlobRestoreStatus.Status + + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} + diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.cs index 1348d797251c..25d6621cdee2 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.cs @@ -83,5 +83,12 @@ public void TestCommon() { TestController.NewInstance.RunPsTest(_logger, $"Test-Common -ResourceGroupName \"{resourceGroupName}\" -StorageAccountName \"{storageAccountName}\""); } + + [Fact] + [Trait(Category.RunType, Category.LiveOnly)] + public void TestDatalakeGen2() + { + TestController.NewInstance.RunPsTest(_logger, $"Test-DatalakeGen2 -ResourceGroupName \"{resourceGroupName}\" -StorageAccountName \"{storageAccountName}\""); + } } } diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 index a970ac2b0ff0..2ab1e927e6e3 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 @@ -207,6 +207,26 @@ function Test-Blob Assert-AreEqual $blob.Count 2 Get-AzStorageBlob -Container $containerName -Blob $objectName2 -Context $storageContext | Remove-AzStorageBlob -Force + #check XSCL Track2 Items works for container + $container = Get-AzStorageContainer $containerName -Context $storageContext + $containerProperties = $container.BlobContainerClient.GetProperties().Value + Assert-AreEqual $container.BlobContainerProperties.ETag $containerProperties.ETag + Set-AzStorageContainerAcl $containerName -Context $storageContext -Permission Blob + $containerProperties = $container.BlobContainerClient.GetProperties().Value + Assert-AreNotEqual $container.BlobContainerProperties.ETag $containerProperties.ETag + $container.FetchAttributes() + Assert-AreEqual $container.BlobContainerProperties.ETag $containerProperties.ETag + + #check XSCL Track2 Items works for Blob + $blob = Get-AzStorageBlob -Container $containerName -Blob $objectName1 -Context $storageContext + $blobProperties = $blob.BlobClient.GetProperties().Value + Assert-AreEqual $blob.BlobProperties.ETag $blobProperties.ETag + Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName1 -Force -Context $storageContext + $blobProperties = $blob.BlobClient.GetProperties().Value + Assert-AreNotEqual $blob.BlobProperties.ETag $blobProperties.ETag + $blob.FetchAttributes() + Assert-AreEqual $blob.BlobProperties.ETag $blobProperties.ETag + # Copy blob to the same container, but with a different name. Start-AzStorageBlobCopy -srcContainer $containerName -SrcBlob $objectName1 -DestContainer $containerName -DestBlob $objectName2 -StandardBlobTier $StandardBlobTier -RehydratePriority High -Context $storageContext -DestContext $storageContext Get-AzStorageBlobCopyState -Container $containerName -Blob $objectName2 -Context $storageContext @@ -684,6 +704,153 @@ function Test-Common } } +<# + .SYNOPSIS + Tests DatalakeGen-only related commands. +#> +function Test-DatalakeGen2 +{ + Param( + [Parameter(Mandatory = $True)] + [string] + $StorageAccountName, + [Parameter(Mandatory = $True)] + [string] + $ResourceGroupName + ) + + New-TestResourceGroupAndStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -EnableHNFS $true + + try{ + + $storageAccountKeyValue = $(Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value + $storageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $storageAccountKeyValue + + $localSrcFile = "localsrcDatalakeGen2testfile.psd1" #The file need exist before test, and should be 512 bytes aligned + New-Item $localSrcFile -ItemType File -Force + $localDestFile = "localdestDatalakeGen2testfile.txt" + + $filesystemName = "adlsgen2testfilesystem" + $directoryPath1 = "dir1" + $directoryPath2 = "dir2" + $directoryPath3 = "dir3" + $filePath1 = "dir1/Item1.txt" + $filePath2 = "dir2/Item2.txt" + $filePath3 = "dir2/Item3.txt" + $ContentType = "image/jpeg" + $ContentMD5 = "i727sP7HigloQDsqadNLHw==" + + # Create FileSystem (actually a container) + New-AzDatalakeGen2FileSystem $filesystemName -Context $storageContext + + # Create folders + $dir1 = New-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -Directory -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" } + Assert-AreEqual $dir1.Path $directoryPath1 + Assert-AreEqual $dir1.Permissions.ToSymbolicPermissions() "rwx---rwx" + $dir2 = New-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath2 -Directory + + # Create (upload) File + $t = New-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath1 -Source $localSrcFile -Force -AsJob + $t | wait-job + Assert-AreEqual $t.State "Completed" + Assert-AreEqual $t.Error $null + $file2 = New-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath2 -Source $localSrcFile -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Metadata @{"tag1" = "value1"; "tag2" = "value2" } + Assert-AreEqual $file2.Path $filePath2 + Assert-AreEqual $file2.Properties.ContentType $ContentType + Assert-AreEqual $file2.Properties.Metadata.Count 2 + Assert-AreEqual $file2.Permissions.ToSymbolicPermissions() "rwx---rwx" + + # update Blob and Directory + $ContentType = "application/octet-stream" + $ContentMD5 = "NW/H9Zxr2md6L1/yhNKdew==" + $ContentEncoding = "UDF8" + ## create ACL with 3 ACEs + $acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rw- + $acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl + $acl = New-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "-wx" -InputObject $acl + ##Update File with pipeline + $file1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath1 | Update-AzDataLakeGen2Item ` + -Acl $acl ` + -Property @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} ` + -Metadata @{"tag1" = "value1"; "tag2" = "value2" } ` + -Permission rw-rw--wx ` + -Owner '$superuser' ` + -Group '$superuser' + $file1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath1 + Assert-AreEqual $file1.Path $filePath1 + Assert-AreEqual $file1.Permissions.ToSymbolicPermissions() "rw-rw--wx" + Assert-AreEqual $file1.Properties.ContentType $ContentType + Assert-AreEqual $file1.Properties.Metadata.Count 2 + Assert-AreEqual $file1.Owner '$superuser' + Assert-AreEqual $file1.Group '$superuser' + ## Update Directory + $dir1 = Update-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 ` + -Acl $acl ` + -Property @{"ContentEncoding" = $ContentEncoding} ` + -Metadata @{"tag1" = "value1"; "tag2" = "value2" } ` + -Permission rw-rw--wx ` + -Owner '$superuser' ` + -Group '$superuser' + $dir1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 + Assert-AreEqual $dir1.Path $directoryPath1 + Assert-AreEqual $dir1.Permissions.ToSymbolicPermissions() "rw-rw--wx" + Assert-AreEqual $dir1.Properties.ContentEncoding $ContentEncoding + Assert-AreEqual $dir1.Properties.Metadata.Count 3 # inlucde "hdi_isfolder" which is handle by server + Assert-AreEqual $dir1.Owner '$superuser' + Assert-AreEqual $dir1.Group '$superuser' + + #list Items + ## List direct Items from FileSystem + $items = Get-AzDataLakeGen2ChildItem -Context $storageContext -FileSystem $filesystemName -FetchPermission + Assert-AreEqual $items.Count 2 + Assert-NotNull $items[0].Permissions + $items = Get-AzDataLakeGen2ChildItem -Context $storageContext -FileSystem $filesystemName -Recurse + Assert-AreEqual $items.Count 4 + Assert-Null $items[0].Permissions + + #download File + $t = Get-AzDataLakeGen2ItemContent -Context $storageContext -FileSystem $filesystemName -Path $filePath1 -Destination $localDestFile -AsJob -Force + $t | Wait-Job + Assert-AreEqual $t.State "Completed" + Assert-AreEqual $t.Error $null + Assert-AreEqual (Get-FileHash -Path $localDestFile -Algorithm MD5).Hash (Get-FileHash -Path $localSrcFile -Algorithm MD5).Hash + + # Move Items + ## Move File + $file3 = Move-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath2 -DestFileSystem $filesystemName -DestPath $filePath3 -Force + $file3 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath3 + Assert-AreEqual $file3.Path $filePath3 + Assert-AreEqual $file3.Permissions $file2.Permissions + $file2 = $file3 | Move-AzDataLakeGen2Item -DestFileSystem $filesystemName -DestPath $filePath2 + $file2 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath2 + Assert-AreEqual $file2.Path $filePath2 + Assert-AreEqual $file2.Permissions $file3.Permissions + ## Move Folder + $dir3 = Move-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -DestFileSystem $filesystemName -DestPath $directoryPath3 + $dir3 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath3 + Assert-AreEqual $dir3.Path $directoryPath3 + Assert-AreEqual $dir3.Permissions $dir1.Permissions + $dir1 = $dir3 | Move-AzDataLakeGen2Item -DestFileSystem $filesystemName -DestPath $directoryPath1 + $dir1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 + Assert-AreEqual $dir1.Path $directoryPath1 + + # Remove Items + Remove-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath1 -Force + Remove-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -Force + + # Clean Storage Account + Get-AzDataLakeGen2ChildItem -Context $storageContext -FileSystem $filesystemName | Remove-AzDataLakeGen2Item -Force + + # remove File system (actually a container) + Remove-AzDatalakeGen2FileSystem $filesystemName -Context $storageContext + + } + finally + { + Clean-ResourceGroup $ResourceGroupName + } +} + function New-TestResourceGroupAndStorageAccount { Param( diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestFailoverAzureStorageAccount.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestFailoverAzureStorageAccount.json new file mode 100644 index 000000000000..5f4ee9a3a520 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestFailoverAzureStorageAccount.json @@ -0,0 +1,3557 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg4012?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "33" + ], + "x-ms-client-request-id": [ + "2321acbb-1769-440b-8522-44073f1c960b" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012\",\r\n \"name\": \"pstestrg4012\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "182" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-request-id": [ + "7fc7de0a-9f39-4346-b59b-6f25f677f9db" + ], + "x-ms-correlation-request-id": [ + "7fc7de0a-9f39-4346-b59b-6f25f677f9db" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094416Z:7fc7de0a-9f39-4346-b59b-6f25f677f9db" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:15 GMT" + ] + }, + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg4012\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "81" + ], + "x-ms-client-request-id": [ + "f3af1bfd-0b24-4340-9266-9f59b9ba3040" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "{\r\n \"nameAvailable\": true\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "e99e51b6-65ec-41bc-b89a-98be0280eb66" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "f6d15682-fc76-4f17-a516-2b59a755e436" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094417Z:f6d15682-fc76-4f17-a516-2b59a755e436" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:17 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "105" + ], + "x-ms-client-request-id": [ + "b5a75575-8d05-4b8e-9e4b-9d1d8dfc96e0" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "ef4e8a95-d324-4c72-9021-8e641c6f3b4a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "d932e2e2-9eef-478d-af53-dcede956c631" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094422Z:d932e2e2-9eef-478d-af53-dcede956c631" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:21 GMT" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/ef4e8a95-d324-4c72-9021-8e641c6f3b4a?monitor=true&api-version=2019-04-01" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/ef4e8a95-d324-4c72-9021-8e641c6f3b4a?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zL2VmNGU4YTk1LWQzMjQtNGM3Mi05MDIxLThlNjQxYzZmM2I0YT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012\",\r\n \"name\": \"stopstestrg4012\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": false,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2018-10-09T09:44:21.6320025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4012.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "1620" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "675ada64-b176-4a14-a3b4-0e6198288e6e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "0adaed56-d033-40e3-959a-b93eda1b916b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094439Z:0adaed56-d033-40e3-959a-b93eda1b916b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:39 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f9989c8f-a29d-4bed-97f0-f3fd1c2b567b" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012\",\r\n \"name\": \"stopstestrg4012\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": false,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2018-10-09T09:44:21.6320025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4012.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "1620" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7e76d625-03fa-4ef8-aa0a-287533de1420" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "ca22924c-7666-477b-a81b-3e741ba90c8a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094439Z:ca22924c-7666-477b-a81b-3e741ba90c8a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:39 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "98091036-33e6-427a-993f-6ff7e42e45b2" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012\",\r\n \"name\": \"stopstestrg4012\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": false,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2018-10-09T09:44:21.6320025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4012.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "1620" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "d3648957-6e92-488e-a341-886d3afabc23" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "2cc2e60a-7ae9-4fd0-8289-b05f37b0dd75" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094440Z:2cc2e60a-7ae9-4fd0-8289-b05f37b0dd75" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:44:40 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d4dc9136-dae1-450f-8aee-0e547609a07b" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "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/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012\",\r\n \"name\": \"stopstestrg4012\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": false,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2018-10-09T09:44:21.6789014Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2018-10-09T09:44:21.6320025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4012.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"centraluseuap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4012-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4012-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4012-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4012-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4012-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "1620" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "07508cd0-b203-461d-bc30-5d785d027d97" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "7a81e424-05bc-4b5b-b155-ee1a04244eb6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094542Z:7a81e424-05bc-4b5b-b155-ee1a04244eb6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:45:41 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012/failover?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMi9mYWlsb3Zlcj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7ff144a2-2cd7-4034-aafa-3e076e76afbe" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:34:23 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "7c7b797d-7e03-4afb-a4bf-c98ca54d1c32" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "23fc927e-1512-4999-be78-d6aa2bb3da0d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083423Z:23fc927e-1512-4999-be78-d6aa2bb3da0d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:34:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "72ae6f25-afba-40ba-b772-f480531f266e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "b34f5381-7a7b-43a0-95cd-9ee0cd07e9a2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083441Z:b34f5381-7a7b-43a0-95cd-9ee0cd07e9a2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:34:58 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "68f43656-0e0c-495d-b74d-bdf2eb36976e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "4360d06d-2d7f-4fa7-8998-84335e57eb47" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083459Z:4360d06d-2d7f-4fa7-8998-84335e57eb47" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:35:15 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "22b9a273-f9ff-445b-a95a-36fa7f706437" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "0b7bd069-8003-4ed4-969a-a511ac12c2dc" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083516Z:0b7bd069-8003-4ed4-969a-a511ac12c2dc" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:35:33 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "f26fe0bf-6e5b-4a9e-a2c4-aae66f239cb5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "f9fc7704-9026-4e9a-b1a8-d06df82768d0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083533Z:f9fc7704-9026-4e9a-b1a8-d06df82768d0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:35:50 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "dc6a3661-b71b-45b5-8c53-1796430cb5ba" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-correlation-request-id": [ + "9cb3cad2-c67d-45f7-b39c-701e4d506659" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083550Z:9cb3cad2-c67d-45f7-b39c-701e4d506659" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:36:08 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "db57019f-5294-4c5a-8386-cc60b6209ac4" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-correlation-request-id": [ + "d0914ab7-6fa4-4caf-b056-0beed8c8d89d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083608Z:d0914ab7-6fa4-4caf-b056-0beed8c8d89d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:36:25 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "2f717e0b-3f05-4c1a-8e7a-5ffa435b4c82" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "66501a3e-f429-4a36-b649-1de93bb45661" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083626Z:66501a3e-f429-4a36-b649-1de93bb45661" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:36:42 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "dcf4c618-b281-495f-a623-81c5abd8b9d0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "1622e730-6e83-4d09-a9f2-d4a6d4888225" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083643Z:1622e730-6e83-4d09-a9f2-d4a6d4888225" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:37:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "e0157327-10de-4fff-9c74-43b30889731d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "4a12faf6-3d5c-426a-9a32-2d35c2ed6178" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083700Z:4a12faf6-3d5c-426a-9a32-2d35c2ed6178" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:37:18 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "60ebb87b-4a4d-45b4-ba93-46912b43b930" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "4665cb51-5841-4db1-8864-d2a110eb84d0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083718Z:4665cb51-5841-4db1-8864-d2a110eb84d0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:37:35 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "0f9bc6c5-f562-4872-b88b-42a1a75ef19f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11986" + ], + "x-ms-correlation-request-id": [ + "4a67a9f4-0267-43bc-90da-cae7893702c8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083735Z:4a67a9f4-0267-43bc-90da-cae7893702c8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:37:52 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "ba75ca8b-dc22-46f8-a4e7-a1ef24280a79" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11985" + ], + "x-ms-correlation-request-id": [ + "eeb13006-b69b-485c-a962-b7be9069628f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083753Z:eeb13006-b69b-485c-a962-b7be9069628f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:38:10 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "1d1def51-5cd1-413f-8176-44807e84d538" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11984" + ], + "x-ms-correlation-request-id": [ + "a717c733-0fd0-4836-80fe-f12718131dd7" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083810Z:a717c733-0fd0-4836-80fe-f12718131dd7" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:38:27 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "b7e92836-338a-4d66-aadf-acfdc254863b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11983" + ], + "x-ms-correlation-request-id": [ + "a0d56868-8e51-4f2b-9273-abd5cc965f26" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083827Z:a0d56868-8e51-4f2b-9273-abd5cc965f26" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:38:45 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "676842cd-3902-461a-839d-32c3515bca6b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11982" + ], + "x-ms-correlation-request-id": [ + "b1de844d-d415-4e15-946f-4ed6c77b4c0b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083845Z:b1de844d-d415-4e15-946f-4ed6c77b4c0b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:39:02 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "d8818a10-f2bb-4b75-a8bd-25278427260d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11981" + ], + "x-ms-correlation-request-id": [ + "dea75214-5d9e-4db5-9377-60711f176eec" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083902Z:dea75214-5d9e-4db5-9377-60711f176eec" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:39:20 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "6cb54946-271c-4b18-986a-77a8d6f28a6e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11980" + ], + "x-ms-correlation-request-id": [ + "21083f56-b66c-4ca9-9c13-12fccd4f91b9" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083920Z:21083f56-b66c-4ca9-9c13-12fccd4f91b9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:39:36 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "1e785659-19ac-495f-8bbc-7495c319fccd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11979" + ], + "x-ms-correlation-request-id": [ + "7a84e4f0-9fe5-4d73-a709-f22411593c8e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083937Z:7a84e4f0-9fe5-4d73-a709-f22411593c8e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:39:54 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "de2d0031-b0b6-4cf5-8eab-56b1a9e3488a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11978" + ], + "x-ms-correlation-request-id": [ + "06ae9ce9-29d9-4d3c-a893-f9798994680d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T083954Z:06ae9ce9-29d9-4d3c-a893-f9798994680d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:40:11 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "33fa8282-0072-49f3-a8ce-a69764f188c8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11977" + ], + "x-ms-correlation-request-id": [ + "04f78fa5-8134-4076-bd98-bb41a805be25" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084012Z:04f78fa5-8134-4076-bd98-bb41a805be25" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:40:29 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "acb8e287-aa1a-4eab-8400-973174887f90" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11976" + ], + "x-ms-correlation-request-id": [ + "a713c762-90d6-4766-a7c4-2215fafc0706" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084029Z:a713c762-90d6-4766-a7c4-2215fafc0706" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:40:46 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "2ceff75d-58a9-40f4-8211-a5e9dfe2cbde" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11975" + ], + "x-ms-correlation-request-id": [ + "a70a50ae-f221-43a7-b889-b87405144345" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084047Z:a70a50ae-f221-43a7-b889-b87405144345" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:41:04 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "ca757fce-f691-49f4-96b8-26a26f290acd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11974" + ], + "x-ms-correlation-request-id": [ + "71b4cc88-4c74-4f4d-b9d5-c0ecc88c3d98" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084104Z:71b4cc88-4c74-4f4d-b9d5-c0ecc88c3d98" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:41:21 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "8b9bf1c4-eddd-40ba-acbe-e81257496cc4" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11973" + ], + "x-ms-correlation-request-id": [ + "4f18fd9c-3254-4d43-9efb-08eedb0aa6e6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084121Z:4f18fd9c-3254-4d43-9efb-08eedb0aa6e6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:41:38 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "df472c5f-ae72-4702-9ff6-8281375d01cf" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11972" + ], + "x-ms-correlation-request-id": [ + "ed853ad9-e81d-4df9-9cad-0937418b7181" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084139Z:ed853ad9-e81d-4df9-9cad-0937418b7181" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:41:56 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "f84e00c2-3dec-4989-a331-fbb5d4631612" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11971" + ], + "x-ms-correlation-request-id": [ + "7fdad30f-2e3d-4ced-b75d-59fb8c86a072" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084157Z:7fdad30f-2e3d-4ced-b75d-59fb8c86a072" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:42:14 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "308515d6-1cd7-499c-8048-bb69e28f9c23" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11970" + ], + "x-ms-correlation-request-id": [ + "71d82ae5-1064-41b0-8fb0-90176cbad3c5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084214Z:71d82ae5-1064-41b0-8fb0-90176cbad3c5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:42:31 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "d7957cc5-1cd5-4e35-a8e5-1b320f173cda" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11969" + ], + "x-ms-correlation-request-id": [ + "82c5ba8b-ea9f-4a10-a08e-3e5d86f3177a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084231Z:82c5ba8b-ea9f-4a10-a08e-3e5d86f3177a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:42:48 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "a7b53625-4aad-4bd4-83cd-216422ed6b61" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11968" + ], + "x-ms-correlation-request-id": [ + "9ac30fdf-0eb8-4657-8a27-12a082492f18" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084249Z:9ac30fdf-0eb8-4657-8a27-12a082492f18" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:43:06 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "3af2c611-146e-4d9e-b4cf-06f4a65e43fb" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11967" + ], + "x-ms-correlation-request-id": [ + "82275e10-7f37-40f6-8fda-e1d661d69847" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084306Z:82275e10-7f37-40f6-8fda-e1d661d69847" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:43:24 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "e683a1d9-9837-42f9-a3e6-fcb7c1222810" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11966" + ], + "x-ms-correlation-request-id": [ + "79e92859-a396-4c2b-b6fb-7aa81f8fa7f2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084324Z:79e92859-a396-4c2b-b6fb-7aa81f8fa7f2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:43:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "5e0490a1-4112-4cdf-8d8f-b6da5964da35" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11965" + ], + "x-ms-correlation-request-id": [ + "b9c357f4-1e85-47ac-804e-fc3ead2f6055" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084341Z:b9c357f4-1e85-47ac-804e-fc3ead2f6055" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:43:58 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "81f077f7-9f54-4879-9c41-4e2e4308eed1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11964" + ], + "x-ms-correlation-request-id": [ + "c23083de-b2fe-43d5-b9fa-41d839f23a1f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084359Z:c23083de-b2fe-43d5-b9fa-41d839f23a1f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:44:15 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "9b2ca399-a7f0-4094-b8ad-2b8db965b156" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11963" + ], + "x-ms-correlation-request-id": [ + "c97f60d5-f3c7-4851-a283-f7e5cf5771da" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084416Z:c97f60d5-f3c7-4851-a283-f7e5cf5771da" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:44:33 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "487de2a7-29f7-4277-a922-bd3de4f2e903" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11962" + ], + "x-ms-correlation-request-id": [ + "58bedcf1-11ed-45e4-b5f1-6651ca11a11a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084433Z:58bedcf1-11ed-45e4-b5f1-6651ca11a11a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:44:51 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "3b190196-b122-4850-a148-656cfc0d25f5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11961" + ], + "x-ms-correlation-request-id": [ + "783bd2d0-6161-42c9-8d08-ea715a78670f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084451Z:783bd2d0-6161-42c9-8d08-ea715a78670f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:45:08 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "b8627a2c-06b6-47eb-b243-b05d28b53a55" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11960" + ], + "x-ms-correlation-request-id": [ + "42ca7d08-b528-4689-8463-883c0eef6699" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084509Z:42ca7d08-b528-4689-8463-883c0eef6699" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:45:26 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "c87b3e65-1b62-4ae1-b760-ce29c1733bdb" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11959" + ], + "x-ms-correlation-request-id": [ + "461915b2-0483-4ad8-bd08-79ed297d68c6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084526Z:461915b2-0483-4ad8-bd08-79ed297d68c6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:45:43 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "efc166ec-c26a-43d6-b74b-2de5d76d02bc" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11958" + ], + "x-ms-correlation-request-id": [ + "08056fda-7d2b-472f-ba75-4e00bce0ba46" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084543Z:08056fda-7d2b-472f-ba75-4e00bce0ba46" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:46:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "181a1b2d-6f0b-4064-a045-b421bd6f6f44" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11957" + ], + "x-ms-correlation-request-id": [ + "1a3146b3-5aef-46a1-8c6e-3dbc76ec2e8a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084601Z:1a3146b3-5aef-46a1-8c6e-3dbc76ec2e8a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:46:18 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "edefc419-ae95-4aa0-b472-cefd68032537" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11956" + ], + "x-ms-correlation-request-id": [ + "a013d345-25fd-46e0-8fb4-ca65cc51c8a2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084618Z:a013d345-25fd-46e0-8fb4-ca65cc51c8a2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:46:35 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "2d6570ab-b9ca-4d29-ae52-ee1b87ae5a41" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11955" + ], + "x-ms-correlation-request-id": [ + "8a9016fe-260c-4e38-82fd-15a737433410" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084636Z:8a9016fe-260c-4e38-82fd-15a737433410" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:46:53 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "b439e442-7d17-4dbb-bf08-37e01eef29d3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11954" + ], + "x-ms-correlation-request-id": [ + "1bbfbcdc-e1a0-4a91-807c-6c01ef1214b5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084653Z:1bbfbcdc-e1a0-4a91-807c-6c01ef1214b5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7c7b797d-7e03-4afb-a4bf-c98ca54d1c32?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdjN2I3OTdkLTdlMDMtNGFmYi1hNGJmLWM5OGNhNTRkMWMzMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNC0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.26328.01", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Mon, 08 Oct 2018 08:47:10 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": [ + "6344e981-0046-4349-bc14-4f4cef64f5e3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11953" + ], + "x-ms-correlation-request-id": [ + "e98e35d3-b4df-485a-9a49-b42ec5ae0f78" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181008T084710Z:e98e35d3-b4df-485a-9a49-b42ec5ae0f78" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg4012/providers/Microsoft.Storage/storageAccounts/stopstestrg4012?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDAxMi9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1b7e4b1c-5b12-4a96-b458-e359afefb6e2" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Storage.StorageManagementClient/9.1.0.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "fba13831-5529-47f0-882e-a0bc4ed5b99a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-correlation-request-id": [ + "a4aec6f7-6e7f-4c0f-80d0-d881ce65179d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094546Z:a4aec6f7-6e7f-4c0f-80d0-d881ce65179d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:45:45 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg4012?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDAxMj9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7d3e3e3c-1e28-4d77-8d16-5557be8ff98d" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14998" + ], + "x-ms-request-id": [ + "45894ba1-abe7-4a0e-8b7a-30fefe234509" + ], + "x-ms-correlation-request-id": [ + "45894ba1-abe7-4a0e-8b7a-30fefe234509" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094550Z:45894ba1-abe7-4a0e-8b7a-30fefe234509" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:45:50 GMT" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ] + }, + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelF3TVRJdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-request-id": [ + "ace9d932-6e9d-45b5-9a69-1afda73d54e0" + ], + "x-ms-correlation-request-id": [ + "ace9d932-6e9d-45b5-9a69-1afda73d54e0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094605Z:ace9d932-6e9d-45b5-9a69-1afda73d54e0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:46:05 GMT" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ] + }, + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelF3TVRJdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-request-id": [ + "2f8ef016-a172-4932-bcf7-5eb2ae245ce2" + ], + "x-ms-correlation-request-id": [ + "2f8ef016-a172-4932-bcf7-5eb2ae245ce2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094621Z:2f8ef016-a172-4932-bcf7-5eb2ae245ce2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:46:20 GMT" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ] + }, + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelF3TVRJdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-request-id": [ + "3f855d66-e4d7-4595-a67c-71c538d610f0" + ], + "x-ms-correlation-request-id": [ + "3f855d66-e4d7-4595-a67c-71c538d610f0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094636Z:3f855d66-e4d7-4595-a67c-71c538d610f0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:46:36 GMT" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQwMTItRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelF3TVRJdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.7.3190.0", + "OSName/Windows10Enterprise", + "OSVersion/6.3.17763", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/4.1.0" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Content-Length": [ + "0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-request-id": [ + "00a6dfd4-ac06-4e92-83f7-061daee6f5b9" + ], + "x-ms-correlation-request-id": [ + "00a6dfd4-ac06-4e92-83f7-061daee6f5b9" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20181009T094637Z:00a6dfd4-ac06-4e92-83f7-061daee6f5b9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 09 Oct 2018 09:46:37 GMT" + ] + }, + "StatusCode": 200 + } + ], + "Names": { + "Test-FailoverAzureStorageAccount": [ + "pstestrg4012" + ] + }, + "Variables": { + "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzStorageAccountFileAADDS.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzStorageAccountFileAADDS.json index 7ea48115e91b..f1d3cac96da9 100644 --- a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzStorageAccountFileAADDS.json +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzStorageAccountFileAADDS.json @@ -651,6 +651,69 @@ { "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg3324/providers/Microsoft.Storage/storageAccounts/stopstestrg3324?api-version=2019-06-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzMyNC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzMyND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e7f36366-cffa-42e8-b156-42e78af50d18" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/12.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "ab1a3340-9e15-4460-8913-1a5851838cfa" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "ccd73285-8805-48e2-893b-a28328c24d0e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20190619T040651Z:ccd73285-8805-48e2-893b-a28328c24d0e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 19 Jun 2019 04:06:51 GMT" + ], + "Content-Length": [ + "1200" + ], + "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/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg3324/providers/Microsoft.Storage/storageAccounts/stopstestrg3324\",\r\n \"name\": \"stopstestrg3324\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"azureFilesIdentityBasedAuthentication\": {\r\n \"directoryServiceOptions\": \"None\"\r\n },\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": false,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-06-19T04:06:29.0194302Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-06-19T04:06:29.0194302Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-06-19T04:06:28.9256734Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3324.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3324.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3324.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3324.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3324.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3324.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg3324/providers/Microsoft.Storage/storageAccounts/stopstestrg3324?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzMyNC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzMyND9hcGktdmVyc2lvbj0yMDE5LTA0LTAx", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountGZRS.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountGZRS.json new file mode 100644 index 000000000000..18941f4f4af1 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountGZRS.json @@ -0,0 +1,942 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg2410?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8f61e388-f064-4690-b57b-5db47fcfbf6a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ], + "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": [ + "f4dd84b2-c974-4f03-975a-852402908ee6" + ], + "x-ms-correlation-request-id": [ + "f4dd84b2-c974-4f03-975a-852402908ee6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054058Z:f4dd84b2-c974-4f03-975a-852402908ee6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:57 GMT" + ], + "Content-Length": [ + "182" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410\",\r\n \"name\": \"pstestrg2410\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e953c315-6ae7-41af-b715-5be3ecf94d8a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "81" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "00004bfb-4a04-4a86-85d3-11f414ae3018" + ], + "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": [ + "a35f6973-2b11-46a4-b6c3-31fd8e05767e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054059Z:a35f6973-2b11-46a4-b6c3-31fd8e05767e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:59 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"nameAvailable\": true\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ca570e27-42d6-4bf3-a1c6-b9d1b3159cf6" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "104" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/1005c2d4-b4b3-454f-927c-dc5a4281e73d?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "1005c2d4-b4b3-454f-927c-dc5a4281e73d" + ], + "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": [ + "35176939-8204-493c-b92a-416b7ca18cec" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054107Z:35176939-8204-493c-b92a-416b7ca18cec" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:07 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/1005c2d4-b4b3-454f-927c-dc5a4281e73d?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzEwMDVjMmQ0LWI0YjMtNDU0Zi05MjdjLWRjNWE0MjgxZTczZD9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "5a56719a-acfc-4eef-ae24-7d39f21ee471" + ], + "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": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "535b075d-91c2-4db9-bb67-c592ced5d02a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054124Z:535b075d-91c2-4db9-bb67-c592ced5d02a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:24 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fbb513fd-bf5b-4547-ba23-d769cda8bdd1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7e41824d-67a7-4ce4-a4aa-6b31733256fe" + ], + "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": [ + "34ea6502-5e9e-44a7-aece-3d13c5078eb8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054125Z:34ea6502-5e9e-44a7-aece-3d13c5078eb8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:24 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1e401dbf-f850-406d-9bc5-3cc7251e8546" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c213e772-7bac-4a8e-856c-5f39b00aef36" + ], + "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": [ + "4f1e69fd-498a-470e-9cb6-ed45e2fe9397" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054126Z:4f1e69fd-498a-470e-9cb6-ed45e2fe9397" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:26 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b32bbfac-8b5e-4d14-b2a9-640ce3a3b42b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "83e223a6-2a8f-4a9d-9864-89f61b9c18ee" + ], + "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": [ + "13df9c9f-c655-42e2-a6c4-529b13d5f26d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054136Z:13df9c9f-c655-42e2-a6c4-529b13d5f26d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:35 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "490c9bc6-02ae-4e61-9041-fb6abbe50060" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "33abfd5d-6f31-4849-9e05-921d7bdc8b8e" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "51961a4f-af1a-4e81-a29e-438eb4626bd5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054137Z:51961a4f-af1a-4e81-a29e-438eb4626bd5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:37 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5494c96a-303d-4eea-9c29-2a9c2c88a272" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "52" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "08b5a7b3-09e7-4797-94c8-33a590b9bc0e" + ], + "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": [ + "d41bd4bb-acac-47ef-a828-c718e4f92a82" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054136Z:d41bd4bb-acac-47ef-a828-c718e4f92a82" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:35 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410\",\r\n \"name\": \"stopstestrg2410\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:41:07.11779Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:41:07.0552888Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg2410.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg2410-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg2410-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg2410-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg2410-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg2410-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg2410/providers/Microsoft.Storage/storageAccounts/stopstestrg2410?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMjQxMC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2365e5f4-bf6a-4f3c-b0b0-e2acbe27c573" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "a6f60635-c84a-4a51-9a6f-3867266eb62d" + ], + "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": [ + "f899f675-679c-4a8c-9e34-4c15ba7eb469" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054146Z:f899f675-679c-4a8c-9e34-4c15ba7eb469" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:46 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg2410?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMjQxMD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "67dfa859-42f6-4a44-a4fe-c8eba329dd8d" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14998" + ], + "x-ms-request-id": [ + "be468030-0d55-450a-be81-07ff02d27a0a" + ], + "x-ms-correlation-request-id": [ + "be468030-0d55-450a-be81-07ff02d27a0a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054154Z:be468030-0d55-450a-be81-07ff02d27a0a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:41:53 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekkwTVRBdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "429b1c68-4b69-4330-8f7a-8acd2b6e9f4b" + ], + "x-ms-correlation-request-id": [ + "429b1c68-4b69-4330-8f7a-8acd2b6e9f4b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054210Z:429b1c68-4b69-4330-8f7a-8acd2b6e9f4b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:42:09 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekkwTVRBdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "c30f913e-7abe-4790-80a8-48dcedca001a" + ], + "x-ms-correlation-request-id": [ + "c30f913e-7abe-4790-80a8-48dcedca001a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054225Z:c30f913e-7abe-4790-80a8-48dcedca001a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:42:25 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekkwTVRBdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "70f44744-f7fd-4ba4-b32d-52cfd06c5883" + ], + "x-ms-correlation-request-id": [ + "70f44744-f7fd-4ba4-b32d-52cfd06c5883" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054241Z:70f44744-f7fd-4ba4-b32d-52cfd06c5883" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:42:40 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzI0MTAtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekkwTVRBdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "51615a06-54d2-4843-82a2-86a4c17ae8a6" + ], + "x-ms-correlation-request-id": [ + "51615a06-54d2-4843-82a2-86a4c17ae8a6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054241Z:51615a06-54d2-4843-82a2-86a4c17ae8a6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:42:41 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-NewSetAzureStorageAccount_GZRS": [ + "pstestrg2410" + ] + }, + "Variables": { + "SubscriptionId": "ce4a7590-4722-4bcf-a2c6-e473e9f11778" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountRAGZRS.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountRAGZRS.json new file mode 100644 index 000000000000..764f604bc2e6 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAzureStorageAccountRAGZRS.json @@ -0,0 +1,942 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg4519?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fd3fb3ba-4994-4cb0-aae5-1f2876f868f4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ], + "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": [ + "c6685504-e983-4b33-a105-6a83be171d8b" + ], + "x-ms-correlation-request-id": [ + "c6685504-e983-4b33-a105-6a83be171d8b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053908Z:c6685504-e983-4b33-a105-6a83be171d8b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:07 GMT" + ], + "Content-Length": [ + "182" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519\",\r\n \"name\": \"pstestrg4519\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bfd3e179-57d6-4d2f-af5d-e1df2d32f7c0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "81" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3755eef8-7cb7-40c1-8742-959333bfdf48" + ], + "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": [ + "a1c68733-48cf-4f70-b424-6dfe54998409" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053908Z:a1c68733-48cf-4f70-b424-6dfe54998409" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:07 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"nameAvailable\": true\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4ecf7938-626b-4dd3-99c8-971f138d9ce4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "106" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7f3fe1f5-50ad-4c77-9cbf-9f35ad6d9bbc?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "7f3fe1f5-50ad-4c77-9cbf-9f35ad6d9bbc" + ], + "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": [ + "dde98918-1618-4bd4-aacf-a2855da29ed0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053918Z:dde98918-1618-4bd4-aacf-a2855da29ed0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:18 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/7f3fe1f5-50ad-4c77-9cbf-9f35ad6d9bbc?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzdmM2ZlMWY1LTUwYWQtNGM3Ny05Y2JmLTlmMzVhZDZkOWJiYz9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "ad089d7c-a4ff-4d1d-bae0-89cc90c3b5ca" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "2dd1783e-76d9-4b78-ad12-cd3af53a2b54" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053935Z:2dd1783e-76d9-4b78-ad12-cd3af53a2b54" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:35 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d997e87d-5067-47a1-b8ef-91a65c5ccf46" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "dbc74451-d4c5-4f39-b97d-a9fe6f99852d" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "eccc7669-59b9-46a3-9c0e-f4f0cf38a26e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053935Z:eccc7669-59b9-46a3-9c0e-f4f0cf38a26e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:35 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0ac8b956-eebf-48bf-ad2a-2c1cf8b9627f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "b80504ca-8000-46a4-ab5e-87b7151b19da" + ], + "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": [ + "9ca0084d-c5f6-48ba-9fd9-1c4411ae3f23" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053937Z:9ca0084d-c5f6-48ba-9fd9-1c4411ae3f23" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:36 GMT" + ], + "Content-Length": [ + "1652" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_RAGZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\",\r\n \"secondaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519-secondary.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519-secondary.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519-secondary.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519-secondary.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519-secondary.table.core.windows.net/\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "dc1f353a-4d9a-4990-999c-ad42a46c2714" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7e1d15bc-68ac-47b4-914e-360b4a8ce761" + ], + "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": [ + "23c247a4-7cfb-4101-9787-1017605b88da" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053945Z:23c247a4-7cfb-4101-9787-1017605b88da" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:45 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0315c953-d6ac-4f77-b08e-ff141e437240" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "eda89468-5bbe-456c-9329-6f5360e6eec5" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "5cc6f248-6e38-41a6-9f66-404320b0dc67" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053946Z:5cc6f248-6e38-41a6-9f66-404320b0dc67" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:45 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1f677423-551e-4051-b07b-b0af766e9d83" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "50" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "dc71c704-3515-4387-b11e-692983f2b79e" + ], + "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": [ + "21fc4231-b097-4fef-8a25-7a2afaec1ef3" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053945Z:21fc4231-b097-4fef-8a25-7a2afaec1ef3" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:44 GMT" + ], + "Content-Length": [ + "1294" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GZRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519\",\r\n \"name\": \"stopstestrg4519\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-29T05:39:17.6415437Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-29T05:39:17.579025Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4519.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4519.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4519.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4519.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4519.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4519.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4519/providers/Microsoft.Storage/storageAccounts/stopstestrg4519?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDUxOS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "65afd35d-7579-453e-bfc2-0e9cfbc90d33" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "f69ff8b5-ac66-4148-917c-94ca79d2b54f" + ], + "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": [ + "90395b29-363b-4204-a58e-85acdad67dac" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053954Z:90395b29-363b-4204-a58e-85acdad67dac" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:39:53 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg4519?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDUxOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8d624e95-e8ab-49d3-9f6d-dab61276c92f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-request-id": [ + "4342b530-53af-4a5c-945b-802dce47dc54" + ], + "x-ms-correlation-request-id": [ + "4342b530-53af-4a5c-945b-802dce47dc54" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054002Z:4342b530-53af-4a5c-945b-802dce47dc54" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:02 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelExTVRrdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "eebf2650-aa0b-4738-b763-375e589b32a7" + ], + "x-ms-correlation-request-id": [ + "eebf2650-aa0b-4738-b763-375e589b32a7" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054018Z:eebf2650-aa0b-4738-b763-375e589b32a7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:17 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelExTVRrdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "f5a609aa-6464-447e-90d9-2162e12b5238" + ], + "x-ms-correlation-request-id": [ + "f5a609aa-6464-447e-90d9-2162e12b5238" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054033Z:f5a609aa-6464-447e-90d9-2162e12b5238" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:32 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelExTVRrdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "26d36d80-2f87-4399-87e7-ac32629bcdf9" + ], + "x-ms-correlation-request-id": [ + "26d36d80-2f87-4399-87e7-ac32629bcdf9" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054049Z:26d36d80-2f87-4399-87e7-ac32629bcdf9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:49 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ1MTktRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelExTVRrdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "763e0d42-6a74-4737-9794-9dc1976f63df" + ], + "x-ms-correlation-request-id": [ + "763e0d42-6a74-4737-9794-9dc1976f63df" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T054049Z:763e0d42-6a74-4737-9794-9dc1976f63df" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:40:49 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-NewSetAzureStorageAccount_RAGZRS": [ + "pstestrg4519" + ] + }, + "Variables": { + "SubscriptionId": "ce4a7590-4722-4bcf-a2c6-e473e9f11778" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobContainerEncryptionScope.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobContainerEncryptionScope.json new file mode 100644 index 000000000000..359f82b7424b --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobContainerEncryptionScope.json @@ -0,0 +1,1764 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "feb92d6a-78db-40f5-bb9c-362de055ae90" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-request-id": [ + "ded78290-8267-4314-bbd9-a2b357757e56" + ], + "x-ms-correlation-request-id": [ + "ded78290-8267-4314-bbd9-a2b357757e56" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132023Z:ded78290-8267-4314-bbd9-a2b357757e56" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:23 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "12336" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage\",\r\n \"namespace\": \"Microsoft.Storage\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"a6aa9161-5291-40bb-8c5c-923b567bee3b\",\r\n \"roleDefinitionId\": \"070ab87f-0efc-4423-b18b-756f3bdb0236\"\r\n },\r\n {\r\n \"applicationId\": \"e406a681-f3d4-42a8-90b6-c2b029497af1\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"storageAccounts\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/asyncoperations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listAccountSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listServiceSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/blobServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/tableServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/queueServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/fileServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\",\r\n \"2016-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deleteVirtualNetworkOrSubnets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usages\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg8811?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"West US\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fa98f001-f0c4-4dc0-8a2c-fa4c11ccc1b5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "29" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1195" + ], + "x-ms-request-id": [ + "0a073523-5f57-4868-8848-902c137fa46b" + ], + "x-ms-correlation-request-id": [ + "0a073523-5f57-4868-8848-902c137fa46b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132026Z:0a073523-5f57-4868-8848-902c137fa46b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:26 GMT" + ], + "Content-Length": [ + "177" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811\",\r\n \"name\": \"pstestrg8811\",\r\n \"location\": \"westus\",\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=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "849f8786-5805-4eb6-a646-2231ee0ebfc5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.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": [ + "d8eabfd7-8b0c-4920-9697-5c25a9c39adf" + ], + "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": [ + "d8ca3603-64dd-4a94-889c-5f75513e3d54" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132027Z:d8ca3603-64dd-4a94-889c-5f75513e3d54" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:27 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/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"West US\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c294b941-4051-4d54-84c5-800eaa07ad6d" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "99" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/westus/asyncoperations/4386c103-820d-4bdf-990a-6a52ca8350d5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "4386c103-820d-4bdf-990a-6a52ca8350d5" + ], + "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": [ + "a26cf890-6c3b-4812-a7d0-f9c0fe6bde3e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132033Z:a26cf890-6c3b-4812-a7d0-f9c0fe6bde3e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:33 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/westus/asyncoperations/4386c103-820d-4bdf-990a-6a52ca8350d5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvd2VzdHVzL2FzeW5jb3BlcmF0aW9ucy80Mzg2YzEwMy04MjBkLTRiZGYtOTkwYS02YTUyY2E4MzUwZDU/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1b5c772d-099c-4a08-86c8-0e437910c844" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-correlation-request-id": [ + "8bc743bb-2443-4545-a595-5e8e62eff8b6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132051Z:8bc743bb-2443-4545-a595-5e8e62eff8b6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:51 GMT" + ], + "Content-Length": [ + "1256" + ], + "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/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811\",\r\n \"name\": \"stopstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-03-30T13:20:33.1312089Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-03-30T13:20:33.1312089Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-03-30T13:20:33.0374783Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg8811.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg8811.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg8811.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg8811.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg8811.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg8811.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bdf10905-da0d-41ca-9813-ec59493993ce" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8af8d87b-a8df-4cd8-a04e-d3039b8eb713" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "a9c51f99-2726-471a-b675-fbc548fe0ff2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132052Z:a9c51f99-2726-471a-b675-fbc548fe0ff2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:52 GMT" + ], + "Content-Length": [ + "1256" + ], + "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/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811\",\r\n \"name\": \"stopstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-03-30T13:20:33.1312089Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-03-30T13:20:33.1312089Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-03-30T13:20:33.0374783Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg8811.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg8811.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg8811.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg8811.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg8811.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg8811.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "605c0fa6-2d90-414e-b5ab-5e37fa7be42b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "52a754c3-2c65-40cc-b69e-570a44788e90" + ], + "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": [ + "24caee6d-81e1-4dfe-bc0a-0d26d7605c88" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132052Z:24caee6d-81e1-4dfe-bc0a-0d26d7605c88" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:52 GMT" + ], + "Content-Length": [ + "1268" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\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/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811\",\r\n \"name\": \"stopstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-03-30T13:20:33.1312089Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-03-30T13:20:33.1312089Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-03-30T13:20:33.0374783Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg8811.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg8811.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg8811.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg8811.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg8811.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg8811.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzL3Rlc3RzY29wZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "44b24706-13ac-4ba3-bb6e-303adf1f7f35" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "63" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "4a4bddb8-7c2e-4fbc-bb33-2d2c9b6894e0" + ], + "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": [ + "f1255436-0730-4630-94a3-d03539f8ef1f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132053Z:f1255436-0730-4630-94a3-d03539f8ef1f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:52 GMT" + ], + "Content-Length": [ + "386" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:52.8192778Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzL3Rlc3RzY29wZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ab048c77-3c6f-44cd-9354-37c7e06bf8ec" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "298b9014-08cc-4263-bad4-2ec8bcbf85a3" + ], + "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": [ + "21a4b727-eed5-45d4-937f-83e8a0d49da1" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132053Z:21a4b727-eed5-45d4-937f-83e8a0d49da1" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:53 GMT" + ], + "Content-Length": [ + "386" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:52.8192778Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzL3Rlc3RzY29wZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"state\": \"Disabled\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2f4b82cf-e00a-4ecc-b993-e518aea413d1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "53" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1749f631-44c0-4122-8e82-d13157f8b481" + ], + "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": [ + "a781a0e2-15dd-48ae-a179-c2b36b125944" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132053Z:a781a0e2-15dd-48ae-a179-c2b36b125944" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:53 GMT" + ], + "Content-Length": [ + "387" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:52.8192778Z\",\r\n \"state\": \"Disabled\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzL3Rlc3RzY29wZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"state\": \"Enabled\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "445f5a88-71ed-4120-9067-2c18603a132a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "52" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "bb0f2a7c-9cc0-4ffe-8a1c-4e3f36610128" + ], + "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": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "d9f37deb-aad1-49c3-af36-dabbdb36c823" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132054Z:d9f37deb-aad1-49c3-af36-dabbdb36c823" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:54 GMT" + ], + "Content-Length": [ + "386" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:52.8192778Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope2?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzL3Rlc3RzY29wZTI/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "3f7047fe-0b8a-4c86-9528-804d9c5470d5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "63" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "24d5cb7f-1b32-4f5a-97aa-49b41fdd96b5" + ], + "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": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "2e633442-0b67-43de-9116-39d10ff83f17" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132054Z:2e633442-0b67-43de-9116-39d10ff83f17" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:54 GMT" + ], + "Content-Length": [ + "388" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope2\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope2\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:54.5464304Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9lbmNyeXB0aW9uU2NvcGVzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "af114a90-e288-4b7c-8fb8-c34ef6637900" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "27be76af-6d28-4697-9b2a-5698135514a6" + ], + "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": [ + "a9093030-30e7-49da-9608-fa6da809a603" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132055Z:a9093030-30e7-49da-9608-fa6da809a603" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:54 GMT" + ], + "Content-Length": [ + "787" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:52.8192778Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/encryptionScopes/testscope2\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/encryptionScopes\",\r\n \"name\": \"testscope2\",\r\n \"properties\": {\r\n \"source\": \"Microsoft.Storage\",\r\n \"keyVaultProperties\": {},\r\n \"creationTime\": \"2020-03-30T13:20:54.5464304Z\",\r\n \"state\": \"Enabled\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/containerpstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2NvbnRhaW5lcnBzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope\",\r\n \"denyEncryptionScopeOverride\": true\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d5ad2e64-5a8c-4dce-adfe-cf2bbd943e0a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "113" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7D4AD2D82160C\"" + ], + "x-ms-request-id": [ + "72c23250-663a-4a08-bb44-1b39bbba4cbe" + ], + "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": [ + "1194" + ], + "x-ms-correlation-request-id": [ + "d3a2968f-00c6-4b43-bce3-486de0d2e792" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132055Z:d3a2968f-00c6-4b43-bce3-486de0d2e792" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:55 GMT" + ], + "Content-Length": [ + "438" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/containerpstestrg8811\",\r\n \"name\": \"containerpstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope\",\r\n \"denyEncryptionScopeOverride\": true,\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/containerpstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2NvbnRhaW5lcnBzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "519437a7-e85f-4d2a-ab3b-3c388dffa377" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7D4AD2D82160C\"" + ], + "x-ms-request-id": [ + "fd6d1575-c9dc-4f86-b57b-dc6c708ab01a" + ], + "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": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "2275835f-b4a2-4730-a59a-cda21f21fa47" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132056Z:2275835f-b4a2-4730-a59a-cda21f21fa47" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:56 GMT" + ], + "Content-Length": [ + "636" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/containerpstestrg8811\",\r\n \"name\": \"containerpstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"etag\": \"\\\"0x8D7D4AD2D82160C\\\"\",\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope\",\r\n \"denyEncryptionScopeOverride\": true,\r\n \"publicAccess\": \"None\",\r\n \"leaseStatus\": \"Unlocked\",\r\n \"leaseState\": \"Available\",\r\n \"lastModifiedTime\": \"2020-03-30T13:20:55Z\",\r\n \"legalHold\": {\r\n \"hasLegalHold\": false,\r\n \"tags\": []\r\n },\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/container2pstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2NvbnRhaW5lcjJwc3Rlc3RyZzg4MTE/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope2\",\r\n \"denyEncryptionScopeOverride\": false\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1a6235e0-1f88-4674-8633-69c6c1a2c444" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "115" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7D4AD2E8E8656\"" + ], + "x-ms-request-id": [ + "05d878b4-e539-4b12-b4d1-c93811da0a04" + ], + "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": [ + "1193" + ], + "x-ms-correlation-request-id": [ + "522616e4-1193-4dd4-a236-271ae1a51bbe" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132057Z:522616e4-1193-4dd4-a236-271ae1a51bbe" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:57 GMT" + ], + "Content-Length": [ + "442" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/container2pstestrg8811\",\r\n \"name\": \"container2pstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope2\",\r\n \"denyEncryptionScopeOverride\": false,\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/container2pstestrg8811?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnODgxMS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnODgxMS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2NvbnRhaW5lcjJwc3Rlc3RyZzg4MTE/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d278110d-9571-4976-aade-fbee350f71db" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7D4AD2E8E8656\"" + ], + "x-ms-request-id": [ + "4b0fe876-d23d-4ba1-b103-8ee1dc41b203" + ], + "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": [ + "29619a23-3c8d-4a06-9ed5-ee03934a95c2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132057Z:29619a23-3c8d-4a06-9ed5-ee03934a95c2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:20:57 GMT" + ], + "Content-Length": [ + "640" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg8811/providers/Microsoft.Storage/storageAccounts/stopstestrg8811/blobServices/default/containers/container2pstestrg8811\",\r\n \"name\": \"container2pstestrg8811\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"etag\": \"\\\"0x8D7D4AD2E8E8656\\\"\",\r\n \"properties\": {\r\n \"defaultEncryptionScope\": \"testscope2\",\r\n \"denyEncryptionScopeOverride\": false,\r\n \"publicAccess\": \"None\",\r\n \"leaseStatus\": \"Unlocked\",\r\n \"leaseState\": \"Available\",\r\n \"lastModifiedTime\": \"2020-03-30T13:20:57Z\",\r\n \"legalHold\": {\r\n \"hasLegalHold\": false,\r\n \"tags\": []\r\n },\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg8811?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnODgxMT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2902fda9-8adb-4fa1-976f-53f949730a7c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-request-id": [ + "5958798b-ac92-4f94-990a-7011e8d7b8ea" + ], + "x-ms-correlation-request-id": [ + "5958798b-ac92-4f94-990a-7011e8d7b8ea" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132100Z:5958798b-ac92-4f94-990a-7011e8d7b8ea" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:21:00 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-request-id": [ + "2a765eee-2cf8-497e-ac32-eaa5f1efc785" + ], + "x-ms-correlation-request-id": [ + "2a765eee-2cf8-497e-ac32-eaa5f1efc785" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132116Z:2a765eee-2cf8-497e-ac32-eaa5f1efc785" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:21:15 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-request-id": [ + "d1f0dca4-886e-438d-ac58-2e57035fef72" + ], + "x-ms-correlation-request-id": [ + "d1f0dca4-886e-438d-ac58-2e57035fef72" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132131Z:d1f0dca4-886e-438d-ac58-2e57035fef72" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:21:30 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-request-id": [ + "368bc03a-0d07-4ffa-875b-c9761f4608af" + ], + "x-ms-correlation-request-id": [ + "368bc03a-0d07-4ffa-875b-c9761f4608af" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132147Z:368bc03a-0d07-4ffa-875b-c9761f4608af" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:21:47 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11988" + ], + "x-ms-request-id": [ + "9aac9145-74ce-42ef-a41f-31dc633c7524" + ], + "x-ms-correlation-request-id": [ + "9aac9145-74ce-42ef-a41f-31dc633c7524" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132202Z:9aac9145-74ce-42ef-a41f-31dc633c7524" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:22:02 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11987" + ], + "x-ms-request-id": [ + "b1228b34-4156-4da0-9d25-de5cc0b86515" + ], + "x-ms-correlation-request-id": [ + "b1228b34-4156-4da0-9d25-de5cc0b86515" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132218Z:b1228b34-4156-4da0-9d25-de5cc0b86515" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:22:17 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11986" + ], + "x-ms-request-id": [ + "f691c125-cd39-4a09-aaa9-f8019602f8e6" + ], + "x-ms-correlation-request-id": [ + "f691c125-cd39-4a09-aaa9-f8019602f8e6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132233Z:f691c125-cd39-4a09-aaa9-f8019602f8e6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:22:32 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11985" + ], + "x-ms-request-id": [ + "0babe14e-2b35-451e-9a20-d20422c78204" + ], + "x-ms-correlation-request-id": [ + "0babe14e-2b35-451e-9a20-d20422c78204" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132248Z:0babe14e-2b35-451e-9a20-d20422c78204" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:22:48 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11984" + ], + "x-ms-request-id": [ + "8ca2896f-e0fb-45a8-905e-4f58b5ac1dd2" + ], + "x-ms-correlation-request-id": [ + "8ca2896f-e0fb-45a8-905e-4f58b5ac1dd2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132304Z:8ca2896f-e0fb-45a8-905e-4f58b5ac1dd2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:23:03 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11983" + ], + "x-ms-request-id": [ + "fbf3c999-eb87-418c-9adb-c184c08178be" + ], + "x-ms-correlation-request-id": [ + "fbf3c999-eb87-418c-9adb-c184c08178be" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132319Z:fbf3c999-eb87-418c-9adb-c184c08178be" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:23:19 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzg4MTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSemc0TVRFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.9" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11982" + ], + "x-ms-request-id": [ + "23396372-24e3-444f-ad27-9c90cb9a387d" + ], + "x-ms-correlation-request-id": [ + "23396372-24e3-444f-ad27-9c90cb9a387d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200330T132320Z:23396372-24e3-444f-ad27-9c90cb9a387d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 30 Mar 2020 13:23:20 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-StorageBlobContainerEncryptionScope": [ + "pstestrg8811" + ] + }, + "Variables": { + "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobRestore.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobRestore.json new file mode 100644 index 000000000000..22fe2704ae20 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobRestore.json @@ -0,0 +1,2199 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b5462a0e-f955-49b1-86d0-21fdddb827a6" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "82c36d0e-0b1d-48cf-acef-7b74473ae9ed" + ], + "x-ms-correlation-request-id": [ + "82c36d0e-0b1d-48cf-acef-7b74473ae9ed" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151507Z:82c36d0e-0b1d-48cf-acef-7b74473ae9ed" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:07 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "12336" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage\",\r\n \"namespace\": \"Microsoft.Storage\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"a6aa9161-5291-40bb-8c5c-923b567bee3b\",\r\n \"roleDefinitionId\": \"070ab87f-0efc-4423-b18b-756f3bdb0236\"\r\n },\r\n {\r\n \"applicationId\": \"e406a681-f3d4-42a8-90b6-c2b029497af1\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"storageAccounts\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/asyncoperations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listAccountSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listServiceSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/blobServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/tableServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/queueServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/fileServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\",\r\n \"2016-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deleteVirtualNetworkOrSubnets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usages\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg5491?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"West US\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b7f70561-c826-449b-a880-d12506427de9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "29" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "823a960b-17f7-4e58-829f-0e59cf448380" + ], + "x-ms-correlation-request-id": [ + "823a960b-17f7-4e58-829f-0e59cf448380" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151511Z:823a960b-17f7-4e58-829f-0e59cf448380" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:11 GMT" + ], + "Content-Length": [ + "177" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491\",\r\n \"name\": \"pstestrg5491\",\r\n \"location\": \"westus\",\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=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "246557ad-563e-475d-891a-9b14fa39bb4b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "81" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "5d17855e-40f4-4c61-bf60-be686ae231b1" + ], + "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": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "924be880-b4c1-4da5-bfeb-60a6110754dc" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151513Z:924be880-b4c1-4da5-bfeb-60a6110754dc" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:12 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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2(stage)\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "3e6483a6-2333-4ef9-9745-187699237dfc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "106" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/d6d902c0-f0e2-4d74-9434-dcc3d9e7460d?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "d6d902c0-f0e2-4d74-9434-dcc3d9e7460d" + ], + "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": [ + "26d569e7-1c5c-4945-ae5d-8f1749eb00d6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151519Z:26d569e7-1c5c-4945-ae5d-8f1749eb00d6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:18 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/eastus2(stage)/asyncoperations/d6d902c0-f0e2-4d74-9434-dcc3d9e7460d?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2Q2ZDkwMmMwLWYwZTItNGQ3NC05NDM0LWRjYzNkOWU3NDYwZD9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "df9143b9-0d04-4b14-8569-2482ae21cfe5" + ], + "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": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "b4818f89-a6da-4b64-9a4f-5727791c08ff" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151536Z:b4818f89-a6da-4b64-9a4f-5727791c08ff" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:35 GMT" + ], + "Content-Length": [ + "1271" + ], + "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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491\",\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-02-10T15:15:18.1157952Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-02-10T15:15:18.1157952Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-02-10T15:15:18.0220773Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5491.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5491.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5491.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5491.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5491.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5491.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c1885f70-2fc2-4874-ba22-7b898f22b447" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "9bf9e0c5-537b-41ef-b333-6f1e864185bf" + ], + "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": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "a6c23375-4f23-4129-87e3-13e212d48c2e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151536Z:a6c23375-4f23-4129-87e3-13e212d48c2e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:36 GMT" + ], + "Content-Length": [ + "1271" + ], + "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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491\",\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-02-10T15:15:18.1157952Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-02-10T15:15:18.1157952Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-02-10T15:15:18.0220773Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5491.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5491.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5491.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5491.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5491.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5491.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8051712a-68cf-47d6-bfcd-91548026b486" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "6469900c-0642-47a9-925f-9abe6f62d52a" + ], + "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": [ + "11986" + ], + "x-ms-correlation-request-id": [ + "824fd30d-9e10-4de3-835d-11cb6a16cefc" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151536Z:824fd30d-9e10-4de3-835d-11cb6a16cefc" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:36 GMT" + ], + "Content-Length": [ + "1283" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491\",\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-02-10T15:15:18.1157952Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-02-10T15:15:18.1157952Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-02-10T15:15:18.0220773Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5491.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5491.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5491.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5491.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5491.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5491.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c477c486-20c9-4597-adf4-85ea1aa5d271" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "bfc58714-19f7-40b1-abea-3bd5883e808f" + ], + "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": [ + "11985" + ], + "x-ms-correlation-request-id": [ + "befeb512-37ae-42f0-a0e2-2018ca77a543" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151537Z:befeb512-37ae-42f0-a0e2-2018ca77a543" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:36 GMT" + ], + "Content-Length": [ + "353" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/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 }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4036b00b-0d86-4ede-9210-ab66925b0ab2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3c78a1d8-37ce-4d32-a448-cc8ab344a857" + ], + "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": [ + "11984" + ], + "x-ms-correlation-request-id": [ + "8bc1d64b-9199-408b-bf37-137e67fc8242" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151538Z:8bc1d64b-9199-408b-bf37-137e67fc8242" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:38 GMT" + ], + "Content-Length": [ + "361" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/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\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "20eff634-2384-44c7-a0cc-011dc280821a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "188432dc-b276-44a4-a700-3eca0e961d9a" + ], + "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": [ + "11983" + ], + "x-ms-correlation-request-id": [ + "c08c9761-b50b-4f90-b2f4-3091b6f845da" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151720Z:c08c9761-b50b-4f90-b2f4-3091b6f845da" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:19 GMT" + ], + "Content-Length": [ + "391" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "86285449-096b-417e-9848-fddb016378f5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "599b819a-a43d-4f81-a138-1a3d25626c7c" + ], + "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": [ + "11982" + ], + "x-ms-correlation-request-id": [ + "7f827ffd-32ba-4501-bcb2-16ad608878e4" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151721Z:7f827ffd-32ba-4501-bcb2-16ad608878e4" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:21 GMT" + ], + "Content-Length": [ + "433" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"restorePolicy\": {\r\n \"enabled\": true,\r\n \"days\": 4\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fa12ed9d-9409-435c-aaf0-6f1ba7e1f74b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "154" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1322fd3a-c369-4011-9110-eedab9177fb5" + ], + "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": [ + "c50c3bea-d87d-4679-99e7-f1ed772b99ba" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151538Z:c50c3bea-d87d-4679-99e7-f1ed772b99ba" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:37 GMT" + ], + "Content-Length": [ + "331" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/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\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n },\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5b7cc10b-003d-4dbc-b0b3-c4c734257f85" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "206" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "083e203d-2bc7-4a0d-914b-3202bd6f8560" + ], + "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": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "ecdddc44-c169-49d8-b097-4c017a7edb48" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151539Z:ecdddc44-c169-49d8-b097-4c017a7edb48" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:15:38 GMT" + ], + "Content-Length": [ + "361" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n },\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"restorePolicy\": {\r\n \"enabled\": true,\r\n \"days\": 4\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "6dafaacc-9618-499c-a897-a6b0dae75ea3" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "279" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "08db9157-6d87-4e7b-b30f-18cca3e33f24" + ], + "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": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "6c545e4f-f623-43b1-8080-b45c6e7cb97e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151721Z:6c545e4f-f623-43b1-8080-b45c6e7cb97e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:20 GMT" + ], + "Content-Length": [ + "403" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"restorePolicy\": {\r\n \"enabled\": true,\r\n \"days\": 4\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491?api-version=2019-06-01&$expand=blobRestoreStatus", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxJiRleHBhbmQ9YmxvYlJlc3RvcmVTdGF0dXM=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "23223caf-5682-4161-bdc8-c7319c57c43a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3503a9d8-29ff-4b4d-9f49-f611d049dee6" + ], + "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": [ + "11981" + ], + "x-ms-correlation-request-id": [ + "7b7cb316-022b-4cf5-9b86-2cce9520d9ef" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151723Z:7b7cb316-022b-4cf5-9b86-2cce9520d9ef" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:22 GMT" + ], + "Content-Length": [ + "1271" + ], + "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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491\",\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-02-10T15:15:18.1157952Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-02-10T15:15:18.1157952Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-02-10T15:15:18.0220773Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5491.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5491.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5491.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5491.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5491.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5491.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491?api-version=2019-06-01&$expand=blobRestoreStatus", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxJiRleHBhbmQ9YmxvYlJlc3RvcmVTdGF0dXM=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a8bf3350-9778-4463-8444-acba3e268fcc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "ce354b0f-4213-46eb-a8c5-8d6ea98ccdea" + ], + "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": [ + "11985" + ], + "x-ms-correlation-request-id": [ + "9a425f89-5901-4de5-a1cc-0a9a3b385801" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152000Z:9a425f89-5901-4de5-a1cc-0a9a3b385801" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:00 GMT" + ], + "Content-Length": [ + "1553" + ], + "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/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491\",\r\n \"name\": \"stopstestrg5491\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"blobRestoreStatus\": {\r\n \"status\": \"Complete\",\r\n \"restoreId\": \"fab10157-a998-4816-8854-091f82583bb5\",\r\n \"parameters\": {\r\n \"timetoRestore\": \"2020-02-10T15:17:22.0304906Z\",\r\n \"blobRanges\": [\r\n {\r\n \"startRange\": \"container1/blob1\",\r\n \"endRange\": \"container2/blob2\"\r\n },\r\n {\r\n \"startRange\": \"container3/blob3\",\r\n \"endRange\": \"\"\r\n }\r\n ]\r\n }\r\n },\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\": \"2020-02-10T15:15:18.1157952Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-02-10T15:15:18.1157952Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-02-10T15:15:18.0220773Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5491.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5491.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5491.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5491.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5491.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5491.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491/restoreBlobRanges?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MS9yZXN0b3JlQmxvYlJhbmdlcz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"timeToRestore\": \"2020-02-10T15:17:22.0304906Z\",\r\n \"blobRanges\": [\r\n {\r\n \"startRange\": \"container1/blob1\",\r\n \"endRange\": \"container2/blob2\"\r\n },\r\n {\r\n \"startRange\": \"container3/blob3\",\r\n \"endRange\": \"\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1e6fa9fb-654e-41b8-b40d-12fad826f01f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "251" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "fab10157-a998-4816-8854-091f82583bb5" + ], + "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": [ + "53474600-a820-4d14-b7ad-cf92f9df6557" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151724Z:53474600-a820-4d14-b7ad-cf92f9df6557" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:24 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "56391658-3a74-4976-83a8-12e9518d654a" + ], + "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": [ + "25775370-852d-4339-9b7c-ab5d7119c685" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151741Z:25775370-852d-4339-9b7c-ab5d7119c685" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:41 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "e17fc465-74f8-4d2d-af38-c8c0c3528160" + ], + "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": [ + "b96e15e4-9448-4400-b1e2-6df1c9c3cff9" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151759Z:b96e15e4-9448-4400-b1e2-6df1c9c3cff9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:17:58 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "b1d5fbef-cd25-4281-af1b-95986320297f" + ], + "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": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "30c47fc5-693b-4216-8155-d49c2fd8ccc5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151816Z:30c47fc5-693b-4216-8155-d49c2fd8ccc5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:18:15 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "b21fdc9b-e942-4c82-8504-865d27ffa972" + ], + "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": [ + "e74630c7-a6cd-418b-a649-38ca345fd4dc" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151833Z:e74630c7-a6cd-418b-a649-38ca345fd4dc" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:18:33 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "5ad461b1-80f9-4629-b9f6-464e9325d761" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-correlation-request-id": [ + "bf2a719a-164f-4781-945e-580b8c8fa916" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151850Z:bf2a719a-164f-4781-945e-580b8c8fa916" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:18:50 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "45d6fb6a-1a49-453f-922a-751736b177d0" + ], + "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": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "53b62a3e-0856-41c2-891b-45ff69092f6a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151908Z:53b62a3e-0856-41c2-891b-45ff69092f6a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:19:07 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "e4e45a53-eae2-4a54-a4ea-23800f8dca43" + ], + "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": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "fc783779-5dce-4c53-81e1-08dff51334ce" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151925Z:fc783779-5dce-4c53-81e1-08dff51334ce" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:19:24 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "b862fe43-5b23-4209-836b-396b75174a64" + ], + "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": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "788623d1-ded3-4f53-94af-20e9c3ef4adf" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T151942Z:788623d1-ded3-4f53-94af-20e9c3ef4adf" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:19:42 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/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "93ced2f0-c861-4c23-b5e4-7e9e22ba5235" + ], + "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": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "e8d6dafd-46fb-4970-94c1-f1123019201b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152000Z:e8d6dafd-46fb-4970-94c1-f1123019201b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:00 GMT" + ], + "Content-Length": [ + "261" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Complete\",\r\n \"restoreId\": \"fab10157-a998-4816-8854-091f82583bb5\",\r\n \"parameters\": {\r\n \"timetoRestore\": \"2020-02-10T15:17:22.0304906Z\",\r\n \"blobRanges\": [\r\n {\r\n \"startRange\": \"container1/blob1\",\r\n \"endRange\": \"container2/blob2\"\r\n },\r\n {\r\n \"startRange\": \"container3/blob3\",\r\n \"endRange\": \"\"\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/fab10157-a998-4816-8854-091f82583bb5?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zL2ZhYjEwMTU3LWE5OTgtNDgxNi04ODU0LTA5MWY4MjU4M2JiNT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1adf45ac-b215-42c5-b3d4-0cd6984a83fe" + ], + "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": [ + "11986" + ], + "x-ms-correlation-request-id": [ + "1004b24f-c063-4648-bbed-b4e5372fa6a4" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152000Z:1004b24f-c063-4648-bbed-b4e5372fa6a4" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:00 GMT" + ], + "Content-Length": [ + "261" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Complete\",\r\n \"restoreId\": \"fab10157-a998-4816-8854-091f82583bb5\",\r\n \"parameters\": {\r\n \"timetoRestore\": \"2020-02-10T15:17:22.0304906Z\",\r\n \"blobRanges\": [\r\n {\r\n \"startRange\": \"container1/blob1\",\r\n \"endRange\": \"container2/blob2\"\r\n },\r\n {\r\n \"startRange\": \"container3/blob3\",\r\n \"endRange\": \"\"\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5491/providers/Microsoft.Storage/storageAccounts/stopstestrg5491?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTQ5MS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0cba543d-0cc1-4860-8699-4faf55d32fc9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.4.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "00226fc1-ecbf-4687-9d19-2a383a877857" + ], + "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": [ + "0624ad0b-084c-4f0b-bd74-b24be7a5df72" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152006Z:0624ad0b-084c-4f0b-bd74-b24be7a5df72" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:06 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg5491?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNTQ5MT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7f226c52-e21a-4fc9-aaa1-289f4af642e5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14997" + ], + "x-ms-request-id": [ + "9ab77715-19b0-496a-b99f-3ef965c0e7f0" + ], + "x-ms-correlation-request-id": [ + "9ab77715-19b0-496a-b99f-3ef965c0e7f0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152011Z:9ab77715-19b0-496a-b99f-3ef965c0e7f0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:11 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11980" + ], + "x-ms-request-id": [ + "1555c685-4eb3-4d0d-81d3-c7a9fd5ef872" + ], + "x-ms-correlation-request-id": [ + "1555c685-4eb3-4d0d-81d3-c7a9fd5ef872" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152027Z:1555c685-4eb3-4d0d-81d3-c7a9fd5ef872" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:26 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11979" + ], + "x-ms-request-id": [ + "0a249e6f-6778-447f-8caa-f8a4214d177d" + ], + "x-ms-correlation-request-id": [ + "0a249e6f-6778-447f-8caa-f8a4214d177d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152042Z:0a249e6f-6778-447f-8caa-f8a4214d177d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:42 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11978" + ], + "x-ms-request-id": [ + "0c8d8fbb-1cb8-4530-abba-234057d4c6f2" + ], + "x-ms-correlation-request-id": [ + "0c8d8fbb-1cb8-4530-abba-234057d4c6f2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152058Z:0c8d8fbb-1cb8-4530-abba-234057d4c6f2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:20:57 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11977" + ], + "x-ms-request-id": [ + "95de8443-b0e1-47c6-8526-11c9f0523688" + ], + "x-ms-correlation-request-id": [ + "95de8443-b0e1-47c6-8526-11c9f0523688" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152113Z:95de8443-b0e1-47c6-8526-11c9f0523688" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:21:13 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11976" + ], + "x-ms-request-id": [ + "c20828ea-d7c5-4272-b6d3-7d27876be152" + ], + "x-ms-correlation-request-id": [ + "c20828ea-d7c5-4272-b6d3-7d27876be152" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152128Z:c20828ea-d7c5-4272-b6d3-7d27876be152" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:21:28 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU0OTEtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUwT1RFdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.5" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11975" + ], + "x-ms-request-id": [ + "f29e3ade-7866-432e-a713-310ff9f81cb5" + ], + "x-ms-correlation-request-id": [ + "f29e3ade-7866-432e-a713-310ff9f81cb5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200210T152129Z:f29e3ade-7866-432e-a713-310ff9f81cb5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Mon, 10 Feb 2020 15:21:28 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-StorageBlobRestore": [ + "pstestrg5491" + ] + }, + "Variables": { + "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobServiceProperties.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobServiceProperties.json index e3b7e26f6207..a5629ea2d045 100644 --- a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobServiceProperties.json +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobServiceProperties.json @@ -642,6 +642,258 @@ "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/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 \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "42e323ed-49ab-4b72-9af3-576b1d35e9dc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "38334fd0-5189-4b52-ac5b-a65f799dd1cf" + ], + "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": [ + "41460a05-1adf-4778-81b3-00400f3084e8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053126Z:41460a05-1adf-4778-81b3-00400f3084e8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:25 GMT" + ], + "Content-Length": [ + "390" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f0615f25-1d21-4e3e-ac41-6ca4302081c0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c2d58322-1ac0-49a9-ab13-5af84f28d40b" + ], + "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": [ + "14665d6b-51c6-493a-bfb8-8dca041933fb" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053126Z:14665d6b-51c6-493a-bfb8-8dca041933fb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:25 GMT" + ], + "Content-Length": [ + "390" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "543a71ac-d547-416a-8743-1892c58427ae" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "e87b9f7d-5562-4f90-990c-90bef968d8a6" + ], + "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": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "03b8866a-81ab-4b7a-b228-f8d0cb00a8b9" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053127Z:03b8866a-81ab-4b7a-b228-f8d0cb00a8b9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:26 GMT" + ], + "Content-Length": [ + "391" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": false\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "18998e14-a9ac-4e69-901d-042936e760a0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "f2af6772-0423-44a3-b2b1-e26665deff78" + ], + "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": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "9e780899-1f91-4f77-81c8-814954033aa4" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053127Z:9e780899-1f91-4f77-81c8-814954033aa4" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:26 GMT" + ], + "Content-Length": [ + "391" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": false\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, { "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", @@ -900,6 +1152,144 @@ "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/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 \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n },\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "714a222d-d2c0-42e0-97a7-424ae30575ae" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "233" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "66117447-9560-4e8d-b8e7-4d93c14624a9" + ], + "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": [ + "a2a32022-8148-4a65-ac6b-d48d5c18dc62" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053125Z:a2a32022-8148-4a65-ac6b-d48d5c18dc62" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:24 GMT" + ], + "Content-Length": [ + "390" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n },\r\n \"changeFeed\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "68f29ca8-3e90-4be2-b9c2-e728db94143d" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.27817.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "234" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "13309d68-588d-421f-9382-8c2771cebd02" + ], + "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": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "ab9ca359-df3e-4058-8270-1fd7c0770958" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20191129T053126Z:ab9ca359-df3e-4058-8270-1fd7c0770958" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 29 Nov 2019 05:31:25 GMT" + ], + "Content-Length": [ + "391" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": false\r\n },\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"defaultServiceVersion\": \"2018-03-28\",\r\n \"deleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, { "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg7985/providers/Microsoft.Storage/storageAccounts/stopstestrg7985/blobServices/default?api-version=2019-06-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNzk4NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNzk4NS9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", diff --git a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj index 5dc2f86913ac..444f64504f02 100644 --- a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj +++ b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj @@ -11,7 +11,9 @@ - + + + \ 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 ec7a46f36779..ac158a672d9a 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 3/3/2020 +# Generated on: 3/27/2020 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '1.13.0' +ModuleVersion = '1.13.3' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -53,7 +53,7 @@ DotNetFrameworkVersion = '4.7.2' # ProcessorArchitecture = '' # Modules that must be imported into the global environment prior to importing this module -RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '1.7.4'; }) +RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '1.7.3'; }) # Assemblies that must be loaded prior to importing this module RequiredAssemblies = 'Microsoft.Azure.Management.Storage.dll', @@ -66,7 +66,10 @@ RequiredAssemblies = 'Microsoft.Azure.Management.Storage.dll', 'Microsoft.Azure.Storage.DataMovement.dll', 'Microsoft.Azure.DocumentDB.Core.dll', 'Microsoft.OData.Core.dll', 'Microsoft.OData.Edm.dll', 'Microsoft.Spatial.dll', - 'Microsoft.Azure.KeyVault.Core.dll' + 'Microsoft.Azure.KeyVault.Core.dll','Azure.Storage.Blobs.dll', + 'Azure.Storage.Common.dll', 'Azure.Storage.Files.DataLake.dll', + 'Azure.Core.dll', 'Microsoft.Bcl.AsyncInterfaces.dll', + 'System.Text.Json.dll', 'System.Threading.Tasks.Extensions.dll' # Script files (.ps1) that are run in the caller's environment prior to importing this module. # ScriptsToProcess = @() @@ -151,6 +154,7 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'New-AzStorageAccountManagementPolicyFilter', 'New-AzStorageAccountManagementPolicyRule', 'Add-AzStorageAccountManagementPolicyAction', + 'Invoke-AzStorageAccountFailover', 'Update-AzStorageBlobServiceProperty', 'Get-AzStorageBlobServiceProperty', 'Enable-AzStorageBlobDeleteRetentionPolicy', @@ -158,7 +162,16 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'Revoke-AzStorageAccountUserDelegationKeys', 'Get-AzStorageFileHandle', 'Close-AzStorageFileHandle', 'New-AzRmStorageShare', 'Remove-AzRmStorageShare', - 'Get-AzRmStorageShare', 'Update-AzRmStorageShare' + 'Get-AzRmStorageShare', 'Update-AzRmStorageShare', + 'Get-AzDataLakeGen2ChildItem', 'Get-AzDataLakeGen2Item', + 'New-AzDataLakeGen2Item', 'Move-AzDataLakeGen2Item', + 'Remove-AzDataLakeGen2Item', 'Update-AzDataLakeGen2Item', + 'Set-AzDataLakeGen2ItemAclObject', 'Get-AzDataLakeGen2ItemContent', + 'Enable-AzStorageBlobRestorePolicy', + 'Disable-AzStorageBlobRestorePolicy', + 'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange', + 'New-AzStorageEncryptionScope','Update-AzStorageEncryptionScope', + 'Get-AzStorageEncryptionScope' # Variables to export from this module # VariablesToExport = @() @@ -166,7 +179,14 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. AliasesToExport = 'Get-AzStorageContainerAcl', 'Start-CopyAzureStorageBlob', 'Stop-CopyAzureStorageBlob', 'Enable-AzStorageSoftDelete', - 'Disable-AzStorageSoftDelete' + 'Disable-AzStorageSoftDelete', 'Enable-AzureStorageStaticWebsite', + 'Disable-AzureStorageStaticWebsite', + 'Invoke-AzureRmStorageAccountFailover', + 'Get-AzureRmStorageAccountManagementPolicy', + 'Set-AzureRmStorageAccountManagementPolicy', + 'Remove-AzureRmStorageAccountManagementPolicy', + 'New-AzDatalakeGen2FileSystem', 'Remove-AzDatalakeGen2FileSystem', + 'Get-AzDatalakeGen2FileSystem', 'New-AzDataLakeGen2ItemAclObject' # DSC resources to export from this module # DscResourcesToExport = @() @@ -195,14 +215,27 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Supported AllowProtectedAppendWrite in ImmutabilityPolicy - - ''Set-AzRmStorageContainerImmutabilityPolicy'' -* Added breaking change warning message for AzureStorageTable type change in a future release - - ''New-AzStorageTable'' - - ''Get-AzStorageTable''' + ReleaseNotes = '* Upgrade DataLake Gen2 cmdlets to use new SDK ''Azure.Storage.Files.DataLake'', and remove 2 parameter -ServerTimeoutPerRequest, -ClientTimeoutPerRequest + - New-AzDataLakeGen2Item + - Get-AzDataLakeGen2Item + - Get-AzDataLakeGen2ChildItem + - Move-AzDataLakeGen2Item + - Set-AzDataLakeGen2ItemAclObject + - Update-AzDataLakeGen2Item + - Get-AzDataLakeGen2ItemContent + - Remove-AzDataLakeGen2Item +* Change cmdlet name from New-AzDataLakeGen2ItemAclObject to Set-AzDataLakeGen2ItemAclObject, and when InputObject already has an ACL entry with same AccessControlType/EntityId/DefaultScope, will update permission of ACL entry instead of adding new ACL entry. + - Set-AzDataLakeGen2ItemAclObject +* Change -Path parameter to optional, don''t set -Path will get/update FileSystem root Directory + - Get-AzDataLakeGen2Item + - Update-AzDataLakeGen2Item +* In list DataLakeGen2 items, support -OutputUserPrincipalName, and change -FetchPermission to -Fetchproperties + - Get-AzDataLakeGen2ChildItem +* In move DataLakeGen2 item, remove 2 parameters -Umask, -PathRenameMode, and add -Force to skip overwrite confirmation prompt. + - Move-AzDataLakeGen2Item' # Prerelease string of this module - # Prerelease = '' + Prerelease = 'preview' # Flag to indicate whether the module requires explicit user acceptance for install/update/save # RequireLicenseAcceptance = $false diff --git a/src/Storage/Storage.Management/Blob/DisableAzureStorageBlobRestorePolicy.cs b/src/Storage/Storage.Management/Blob/DisableAzureStorageBlobRestorePolicy.cs new file mode 100644 index 000000000000..05e09a492423 --- /dev/null +++ b/src/Storage/Storage.Management/Blob/DisableAzureStorageBlobRestorePolicy.cs @@ -0,0 +1,122 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Management.Storage +{ + using Microsoft.Azure.Commands.Management.Storage.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + using System; + using System.Collections.Generic; + using System.Management.Automation; + using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; + using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + + /// + /// Modify Azure Storage service properties + /// + [Cmdlet("Disable", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + StorageBlobRestorePolicy, SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSRestorePolicy))] + public class DisableAzStorageBlobRestorePolicyCommand : StorageBlobBaseCmdlet + { + + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// BlobServiceProperties ResourceId parameter set + /// + private const string PropertiesResourceIdParameterSet = "BlobServicePropertiesResourceId"; + + [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, NameAlias)] + [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 = "Input a Storage account Resource Id, or a Blob service properties Resource Id.", + ParameterSetName = PropertiesResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceId { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Display ServiceProperties")] + public SwitchParameter PassThru { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + if (ShouldProcess("BlobRestorePolicy", "Disable")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PropertiesResourceIdParameterSet: + ResourceIdentifier blobServicePropertiesResource = new ResourceIdentifier(ResourceId); + this.ResourceGroupName = blobServicePropertiesResource.ResourceGroupName; + this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + BlobServiceProperties serviceProperties = this.StorageClient.BlobServices.GetServiceProperties( this.ResourceGroupName, this.StorageAccountName); + + serviceProperties.RestorePolicy = new RestorePolicyProperties(); + serviceProperties.RestorePolicy.Enabled = false; + serviceProperties.RestorePolicy.Days = null; + + serviceProperties = this.StorageClient.BlobServices.SetServiceProperties(this.ResourceGroupName, this.StorageAccountName, serviceProperties); + + if (PassThru) + { + WriteObject(new PSRestorePolicy(serviceProperties.RestorePolicy)); + } + + } + } + } +} diff --git a/src/Storage/Storage.Management/Blob/EnableAzureStorageBlobRestorePolicy.cs b/src/Storage/Storage.Management/Blob/EnableAzureStorageBlobRestorePolicy.cs new file mode 100644 index 000000000000..de3cc42c3685 --- /dev/null +++ b/src/Storage/Storage.Management/Blob/EnableAzureStorageBlobRestorePolicy.cs @@ -0,0 +1,126 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Management.Storage +{ + using Microsoft.Azure.Commands.Management.Storage.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + using System; + using System.Collections.Generic; + using System.Management.Automation; + using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; + using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + + /// + /// Modify Azure Storage service properties + /// + [Cmdlet("Enable", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + StorageBlobRestorePolicy, DefaultParameterSetName = AccountNameParameterSet, SupportsShouldProcess = true), OutputType(typeof(PSRestorePolicy))] + public class EnableAzStorageBlobRestorePolicyCommand : StorageBlobBaseCmdlet + { + + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// BlobServiceProperties ResourceId parameter set + /// + private const string PropertiesResourceIdParameterSet = "BlobServicePropertiesResourceId"; + + [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, NameAlias)] + [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 = "Input a Storage account Resource Id, or a Blob service properties Resource Id.", + ParameterSetName = PropertiesResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceId { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Sets the number of days for the blob can be restored..")] + [Alias("Days")] + public int RestoreDays { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Display ServiceProperties")] + public SwitchParameter PassThru { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + if (ShouldProcess("BlobRestorePolicy", "Enable")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PropertiesResourceIdParameterSet: + ResourceIdentifier blobServicePropertiesResource = new ResourceIdentifier(ResourceId); + this.ResourceGroupName = blobServicePropertiesResource.ResourceGroupName; + this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + BlobServiceProperties serviceProperties = this.StorageClient.BlobServices.GetServiceProperties( this.ResourceGroupName, this.StorageAccountName); + + serviceProperties.RestorePolicy = new RestorePolicyProperties(); + serviceProperties.RestorePolicy.Enabled = true; + serviceProperties.RestorePolicy.Days = RestoreDays; + + serviceProperties = this.StorageClient.BlobServices.SetServiceProperties(this.ResourceGroupName, this.StorageAccountName, serviceProperties); + + if (PassThru) + { + WriteObject(new PSRestorePolicy(serviceProperties.RestorePolicy)); + } + + } + } + } +} diff --git a/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs b/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs index 106797e72334..d5431d294d98 100644 --- a/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs +++ b/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs @@ -31,9 +31,18 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet private const string AccountNameParameterSet = "AccountName"; /// - /// Account object parameter set + /// Account object EncryptionScope parameter set /// private const string AccountObjectParameterSet = "AccountObject"; + /// + /// AccountName EncryptionScope Parameter Set + /// + private const string AccountNameEncryptionScopeParameterSet = "AccountNameEncryptionScope"; + + /// + /// Account object parameter set + /// + private const string AccountObjectEncryptionScopeParameterSet = "AccountObjectEncryptionScope"; [Parameter( Position = 0, @@ -41,6 +50,12 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet ValueFromPipelineByPropertyName = true, HelpMessage = "Resource Group Name.", ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 0, + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameEncryptionScopeParameterSet)] [ValidateNotNullOrEmpty] public string ResourceGroupName { get; set; } @@ -50,6 +65,12 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet ValueFromPipelineByPropertyName = true, HelpMessage = "Storage Account Name.", ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 1, + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameEncryptionScopeParameterSet)] [Alias(AccountNameAlias)] [ValidateNotNullOrEmpty] public string StorageAccountName { get; set; } @@ -59,6 +80,11 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = AccountObjectParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true, + ParameterSetName = AccountObjectEncryptionScopeParameterSet)] [ValidateNotNullOrEmpty] public PSStorageAccount StorageAccount { get; set; } @@ -70,6 +96,34 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet [ValidateNotNullOrEmpty] public string Name { get; set; } + [Parameter(HelpMessage = "Default the container to use specified encryption scope for all writes.", + Mandatory = true, + ParameterSetName = AccountNameEncryptionScopeParameterSet)] + [Parameter(HelpMessage = "Default the container to use specified encryption scope for all writes.", + Mandatory = true, + ParameterSetName = AccountObjectEncryptionScopeParameterSet)] + public string DefaultEncryptionScope { get; set; } + + [Parameter(HelpMessage = "Block override of encryption scope from the container default.", + Mandatory = true, + ParameterSetName = AccountNameEncryptionScopeParameterSet)] + [Parameter(HelpMessage = "Block override of encryption scope from the container default.", + Mandatory = true, + ParameterSetName = AccountObjectEncryptionScopeParameterSet)] + [ValidateNotNullOrEmpty] + public bool PreventEncryptionScopeOverride + { + get + { + return preventEncryptionScopeOverride is null ? false : preventEncryptionScopeOverride.Value; + } + set + { + preventEncryptionScopeOverride = value; + } + } + private bool? preventEncryptionScopeOverride; + [Parameter(HelpMessage = "Container PublicAccess", Mandatory = false)] [ValidateNotNullOrEmpty] public PSPublicAccess PublicAccess @@ -111,8 +165,11 @@ public override void ExecuteCmdlet() this.ResourceGroupName, this.StorageAccountName, this.Name, - (PublicAccess?)this.publicAccess, - MetadataDictionary); + new BlobContainer( + defaultEncryptionScope: this.DefaultEncryptionScope, + denyEncryptionScopeOverride: this.preventEncryptionScopeOverride, + publicAccess: (PublicAccess?)this.publicAccess, + metadata: MetadataDictionary)); WriteObject(new PSContainer(contaienr)); } diff --git a/src/Storage/Storage.Management/Blob/StorageBlobBaseCmdlet.cs b/src/Storage/Storage.Management/Blob/StorageBlobBaseCmdlet.cs index b8e22dff1f7c..f97edc6c87ba 100644 --- a/src/Storage/Storage.Management/Blob/StorageBlobBaseCmdlet.cs +++ b/src/Storage/Storage.Management/Blob/StorageBlobBaseCmdlet.cs @@ -37,6 +37,7 @@ public abstract class StorageBlobBaseCmdlet : AzureRMCmdlet protected const string StorageContainerLeaseNounStr = StorageContainerNounStr + "Lease"; protected const string StorageBlobServiceProperty = "StorageBlobServiceProperty"; protected const string StorageBlobDeleteRetentionPolicy = "StorageBlobDeleteRetentionPolicy"; + protected const string StorageBlobRestorePolicy = "StorageBlobRestorePolicy"; public const string StorageAccountResourceType = "Microsoft.Storage/storageAccounts"; diff --git a/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs b/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs index 62fa710bddb2..bd41ec6045dc 100644 --- a/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs +++ b/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs @@ -83,6 +83,23 @@ public class UpdateAzStorageBlobServicePropertyCommand : StorageBlobBaseCmdlet [ValidateNotNull] public string DefaultServiceVersion { get; set; } + [Parameter( + Mandatory = false, + HelpMessage = "Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false.")] + [ValidateNotNullOrEmpty] + public bool EnableChangeFeed + { + get + { + return enableChangeFeed is null? false : enableChangeFeed.Value; + } + set + { + enableChangeFeed = value; + } + } + private bool? enableChangeFeed = null; + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -111,6 +128,11 @@ public override void ExecuteCmdlet() { serviceProperties.DefaultServiceVersion = this.DefaultServiceVersion; } + if (enableChangeFeed != null) + { + serviceProperties.ChangeFeed = new ChangeFeed(); + serviceProperties.ChangeFeed.Enabled = enableChangeFeed; + } serviceProperties = this.StorageClient.BlobServices.SetServiceProperties(this.ResourceGroupName, this.StorageAccountName, serviceProperties); diff --git a/src/Storage/Storage.Management/Blob/UpdateAzureStorageContainer.cs b/src/Storage/Storage.Management/Blob/UpdateAzureStorageContainer.cs index 67cf061fca20..42825e876fd5 100644 --- a/src/Storage/Storage.Management/Blob/UpdateAzureStorageContainer.cs +++ b/src/Storage/Storage.Management/Blob/UpdateAzureStorageContainer.cs @@ -138,8 +138,9 @@ public override void ExecuteCmdlet() this.ResourceGroupName, this.StorageAccountName, this.Name, - (PublicAccess?)this.publicAccess, - MetadataDictionary); + new BlobContainer( + publicAccess: (PublicAccess?)this.publicAccess, + metadata: MetadataDictionary)); WriteObject(new PSContainer(container)); } diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index df3461394725..2a71a6b87446 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,44 @@ - Additional information about change #1 --> ## Upcoming Release +* Support create/update/get/list EncryptionScope of a Storage account + - New-AzStorageEncryptionScope + - Update-AzStorageEncryptionScope + - Get-AzStorageEncryptionScope +* Support create Storage Container with EncryptionScope settings + - New-AzRmStorageContainer +* Support update Storage account with encryted by Keyvault without Keyversion + - Set-AzStorageAccount + +## Version 1.13.3 +* Upgrade DataLake Gen2 cmdlets to use new SDK "Azure.Storage.Files.DataLake", and remove 2 parameter -ServerTimeoutPerRequest, -ClientTimeoutPerRequest + - New-AzDataLakeGen2Item + - Get-AzDataLakeGen2Item + - Get-AzDataLakeGen2ChildItem + - Move-AzDataLakeGen2Item + - Set-AzDataLakeGen2ItemAclObject + - Update-AzDataLakeGen2Item + - Get-AzDataLakeGen2ItemContent + - Remove-AzDataLakeGen2Item +* Change cmdlet name from New-AzDataLakeGen2ItemAclObject to Set-AzDataLakeGen2ItemAclObject, and when InputObject already has an ACL entry with same AccessControlType/EntityId/DefaultScope, will update permission of ACL entry instead of adding new ACL entry. + - Set-AzDataLakeGen2ItemAclObject +* Change -Path parameter to optional, don't set -Path will get/update FileSystem root Directory + - Get-AzDataLakeGen2Item + - Update-AzDataLakeGen2Item +* In list DataLakeGen2 items, support -OutputUserPrincipalName, and change -FetchPermission to -Fetchproperties + - Get-AzDataLakeGen2ChildItem +* In move DataLakeGen2 item, remove 2 parameters -Umask, -PathRenameMode, and add -Force to skip overwrite confirmation prompt. + - Move-AzDataLakeGen2Item + + +## Version 1.13.1 +* Support Point In Time Restore + - Enable-AzStorageBlobRestorePolicy + - Disable-AzStorageBlobRestorePolicy + - New-AzStorageBlobRangeToRestore + - Restore-AzStorageBlobRange +* Support get blob restore status of Storage account by run get-AzureRMStorageAccount with parameter -IncludeBlobRestoreStatus + - Get-AzureRMStorageAccount ## Version 1.13.0 * Supported AllowProtectedAppendWrite in ImmutabilityPolicy @@ -32,6 +70,15 @@ * Show RequestId when StorageException don't have ExtendedErrorInformation * Fix the Example 6 of cmdlet Start-AzStorageBlobCopy +## Version 1.11.1 +* Support set Table/Queue Encyrption Keytype in Create Storage Account + - New-AzRmStorageAccount +* Fix DataLake Gen2 Output AzureDataLakeGen2Item.Permissions display format + - Get-AzDataLakeGen2Item + - Get-AzDataLakeGen2ChildItem +* Show RequestId when StorageException don't have ExtendedErrorInformation +* Fix the Example 6 of cmdlet Start-AzStorageBlobCopy + ## Version 1.11.0 * Add breaking change warning message for DefaultAction Value change in a future release - Update-AzStorageAccountNetworkRuleSet @@ -47,12 +94,23 @@ - Revoke-AzStorageAccountUserDelegationKeys * Upgrade to Microsoft.Azure.Management.Storage 14.2.0, to support new API version 2019-06-01. * Support Share QuotaGiB more than 5120 in Management plane File Share cmdlets, and add parameter alias "Quota" to parameter "QuotaGiB" - - New-AzRmStorageShare - - Update-AzRmStorageShare + - New-AzRmStorageShare + - Update-AzRmStorageShare * Add parameter alias "QuotaGiB" to parameter "Quota" - - Set-AzStorageShareQuota + - Set-AzStorageShareQuota * Fix the issue that Set-AzStorageContainerAcl can clean up the stored Access Policy - - Set-AzStorageContainerAcl + - Set-AzStorageContainerAcl + +## Version 1.9.1 +* Support DataLake Gen2 + - New-AzDataLakeGen2Item + - Get-AzDataLakeGen2Item + - Get-AzDataLakeGen2ChildItem + - Move-AzDataLakeGen2Item + - New-AzDataLakeGen2ItemAclObject + - Update-AzDataLakeGen2Item + - Get-AzDataLakeGen2ItemContent + - Remove-AzDataLakeGen2Item ## Version 1.9.0 * Support enable Large File share when create or update Storage account @@ -62,6 +120,25 @@ - Get-AzStorageFileHandle - Close-AzStorageFileHandle +## Version 1.8.2 +* Fix issue in enabled Azure Files Active Directory Domain Service Authentication, on a new Storage account which has never enable it. + +## Version 1.8.1 +* Support enable Large File share when create or update Storage account + - New-AzStorageAccount + - Set-AzStorageAccount +* When close/get File handle, skip check the input path is File directory or File, to avoid failure with object in DeletePending status + - Get-AzStorageFileHandle + - Close-AzStorageFileHandle +* Support enable/disable Changefeed on Blob Service of a Storage account + - Update-AzStorageBlobServiceProperty +* Support create or update Storage account with Azure Files Active Directory Domain Service Authentication + - New-AzStorageAccount + - Set-AzStorageAccount +* Support New or List Kerberos keys of Storage account + - New-AzStorageAccountKey + - Get-AzStorageAccountKey + ## Version 1.8.0 * Upgrade Storage Client Library to 11.1.0 * List containers with Management plane API, will list with NextPageLink @@ -112,6 +189,18 @@ * Clarified description of blob immutability cmdlet - Remove-AzRmStorageContainerImmutabilityPolicy +## Version 1.3.2 +* Support new SkuName StandardGZRS, StandardRAGZRS when create/update Storage account + - New-AzStorageAccount + - Set-AzStorageAccount + +## Version 1.3.1 +* Support generate Blob/Constainer Idenity based SAS token with Storage Context based on Oauth authentication + - New-AzStorageContainerSASToken + - New-AzStorageBlobSASToken +* Support revoke Storage Account User Delegation Keys, so all Idenity SAS tokens are revoked + - Revoke-AzStorageAccountUserDelegationKeys + ## Version 1.3.0 * Upgrade to Storage Client Library 10.0.1 (the namespace of all objects from this SDK change from "Microsoft.WindowsAzure.Storage.*" to "Microsoft.Azure.Storage.*") * Upgrade to Microsoft.Azure.Management.Storage 11.0.0, to support new API version 2019-04-01. @@ -122,6 +211,10 @@ - Get-AzStorageAccount - Set-AzStorageAccount +## Version 1.2.1 +* Add a sub property "CanFailover" to Storage Account cmdlet output type PSStorageAccount.GeoReplicationStats + - New/Get/Set-AzureRMStorageAccount + ## Version 1.2.0 * Report detail error when create Storage context with parameter -UseConnectedAccount, but without login Azure account - New-AzStorageContext @@ -152,6 +245,12 @@ * Support Kind BlockBlobStorage when create Storage account - New-AzStorageAccount +## Version 1.1.1 +* Support failover Storage account + - Invoke-AzureRmStorageAccountFailover +* Support Get last sync time of Storage account by run get-AzureRMStorageAccount with parameter -IncludeGeoReplicationStats + - Get-AzureRMStorageAccount + ## Version 1.0.2 * Update incorrect online help URLs * Give detail error message when get/set classic Logging/Metric on Premium Storage Account, since Premium Storage Account not supoort classic Logging/Metric. diff --git a/src/Storage/Storage.Management/Models/PSAzureFilesIdentityBasedAuthentication.cs b/src/Storage/Storage.Management/Models/PSAzureFilesIdentityBasedAuthentication.cs index 926bd06dfa31..f5c67ab8f253 100644 --- a/src/Storage/Storage.Management/Models/PSAzureFilesIdentityBasedAuthentication.cs +++ b/src/Storage/Storage.Management/Models/PSAzureFilesIdentityBasedAuthentication.cs @@ -20,9 +20,36 @@ public class PSAzureFilesIdentityBasedAuthentication { public PSAzureFilesIdentityBasedAuthentication(AzureFilesIdentityBasedAuthentication auth) { - this.DirectoryServiceOptions = auth != null ? auth.DirectoryServiceOptions : null; + if (auth != null) + { + this.DirectoryServiceOptions = auth.DirectoryServiceOptions; + this.ActiveDirectoryProperties = auth.ActiveDirectoryProperties != null ? new PSActiveDirectoryProperties(auth.ActiveDirectoryProperties) : null; + } } - // Gets or sets indicates the directory service used. Possible values include: 'None','AADDS' + // Gets or sets indicates the directory service used. Possible values include: 'None','AADDS', 'AD' public string DirectoryServiceOptions { get; set; } + public PSActiveDirectoryProperties ActiveDirectoryProperties { get; set; } + } + + public class PSActiveDirectoryProperties + { + public PSActiveDirectoryProperties(ActiveDirectoryProperties properties) + { + if (properties != null) + { + this.DomainName = properties.DomainName; + this.NetBiosDomainName = properties.NetBiosDomainName; + this.ForestName = properties.ForestName; + this.DomainGuid = properties.DomainGuid; + this.DomainSid = properties.DomainSid; + this.AzureStorageSid = properties.AzureStorageSid; + } + } + public string DomainName { get; set; } + public string NetBiosDomainName { get; set; } + public string ForestName { get; set; } + public string DomainGuid { get; set; } + public string DomainSid { get; set; } + public string AzureStorageSid { get; set; } } } diff --git a/src/Storage/Storage.Management/Models/PSBlobRestore.cs b/src/Storage/Storage.Management/Models/PSBlobRestore.cs new file mode 100644 index 000000000000..a6ce6c3f12c5 --- /dev/null +++ b/src/Storage/Storage.Management/Models/PSBlobRestore.cs @@ -0,0 +1,141 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Internal.Resources.Utilities.Models; +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 BlobRestoreRange + /// + public class PSBlobRestoreRange + { + public string StartRange { get; set; } + public string EndRange { get; set; } + + public PSBlobRestoreRange() + { } + + public PSBlobRestoreRange(string startRange, string endRange) + { + this.StartRange = startRange; + this.EndRange = endRange; + } + + public PSBlobRestoreRange(BlobRestoreRange range) + { + this.StartRange = range.StartRange; + this.EndRange = range.EndRange; + } + + public static IList ParseBlobRestoreRanges(PSBlobRestoreRange[] ranges) + { + IList re = new List(); + if (ranges == null) + { + re.Add( + new BlobRestoreRange + { + StartRange = "", + EndRange = "" + }); + } + else + { + foreach (PSBlobRestoreRange range in ranges) + { + re.Add( + new BlobRestoreRange + { + StartRange = range.StartRange, + EndRange = range.EndRange + }); + } + } + return re; + } + + public static PSBlobRestoreRange[] ParsePSBlobRestoreRanges(IList ranges) + { + if (ranges == null) + { + return null; + } + + List re = new List(); + foreach (BlobRestoreRange range in ranges) + { + re.Add( + new PSBlobRestoreRange + { + StartRange = range.StartRange, + EndRange = range.EndRange + }); + } + return re.ToArray(); + } + } + + /// + /// Wrapper of SDK type BlobRestoreStatus + /// + public class PSBlobRestoreStatus + { + [Ps1Xml(Label = "Status", Target = ViewControl.Table, Position = 0)] + public string Status { get; } + [Ps1Xml(Label = "FailureReason", Target = ViewControl.Table, Position = 2)] + public string FailureReason { get; } + [Ps1Xml(Label = "RestoreId", Target = ViewControl.Table, Position = 1)] + public string RestoreId { get; } + [Ps1Xml(Label = "Parameters.TimeToRestore", Target = ViewControl.Table, ScriptBlock = "$_.Parameters.TimeToRestore", Position = 3)] + [Ps1Xml(Label = "Parameters.BlobRanges", Target = ViewControl.Table, ScriptBlock = "if ($s.Parameters.BlobRanges[0] -ne $null) {if ($s.Parameters.BlobRanges[1] -ne $null) {'[' + $s.Parameters.BlobRanges[0].StartRange + ' -> ' + $s.Parameters.BlobRanges[0].EndRange + ',...]'} else {'[' + $s.Parameters.BlobRanges[0].StartRange + ' -> ' + $s.Parameters.BlobRanges[0].EndRange + ']'}} else {$null}", Position = 4)] + public PSBlobRestoreParameters Parameters { get; } + + public PSBlobRestoreStatus() + { } + + public PSBlobRestoreStatus(BlobRestoreStatus status) + { + this.Status = status.Status; + this.FailureReason = status.FailureReason; + this.RestoreId = status.RestoreId; + this.Parameters = status.Parameters is null? null : new PSBlobRestoreParameters(status.Parameters); + } + + } + + /// + /// Wrapper of SDK type BlobRestoreParameters + /// + public class PSBlobRestoreParameters + { + public DateTime TimeToRestore { get; set; } + public PSBlobRestoreRange[] BlobRanges { get; set; } + + public PSBlobRestoreParameters() + { } + + public PSBlobRestoreParameters(BlobRestoreParameters parameters) + { + this.TimeToRestore = parameters.TimeToRestore; + this.BlobRanges = PSBlobRestoreRange.ParsePSBlobRestoreRanges(parameters.BlobRanges); + } + + } +} + diff --git a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs index 76a66e714d43..4ce10ded14a9 100644 --- a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs +++ b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs @@ -34,9 +34,14 @@ public class PSBlobServiceProperties public string Type { get; set; } [Ps1Xml(Label = "DefaultServiceVersion", Target = ViewControl.Table, Position = 2)] public string DefaultServiceVersion { get; set; } + [Ps1Xml(Label = "ChangeFeed", Target = ViewControl.Table, ScriptBlock = "$_.ChangeFeed.Enabled", Position = 7)] + public PSChangeFeed ChangeFeed { get; set; } [Ps1Xml(Label = "DeleteRetentionPolicy.Enabled", Target = ViewControl.Table, ScriptBlock = "$_.DeleteRetentionPolicy.Enabled", Position = 3)] [Ps1Xml(Label = "DeleteRetentionPolicy.Days", Target = ViewControl.Table, ScriptBlock = "$_.DeleteRetentionPolicy.Days", Position = 4)] public PSDeleteRetentionPolicy DeleteRetentionPolicy { get; set; } + [Ps1Xml(Label = "RestorePolicy.Enabled", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.Enabled", Position = 5)] + [Ps1Xml(Label = "RestorePolicy.Days", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.Days", Position = 6)] + public PSRestorePolicy RestorePolicy { get; set; } public PSCorsRules Cors { get; set; } public PSBlobServiceProperties() @@ -52,6 +57,8 @@ public PSBlobServiceProperties(BlobServiceProperties policy) this.Cors = policy.Cors is null ? null : new PSCorsRules(policy.Cors); this.DefaultServiceVersion = policy.DefaultServiceVersion; this.DeleteRetentionPolicy = policy.DeleteRetentionPolicy is null ? null : new PSDeleteRetentionPolicy(policy.DeleteRetentionPolicy); + this.RestorePolicy = policy.RestorePolicy is null ? null : new PSRestorePolicy(policy.RestorePolicy); + this.ChangeFeed = policy.ChangeFeed is null ? null : new PSChangeFeed(policy.ChangeFeed); } public BlobServiceProperties ParseBlobServiceProperties() { @@ -60,6 +67,8 @@ public BlobServiceProperties ParseBlobServiceProperties() Cors = this.Cors is null ? null : this.Cors.ParseCorsRules(), DefaultServiceVersion = this.DefaultServiceVersion, DeleteRetentionPolicy = this.DeleteRetentionPolicy is null ? null : this.DeleteRetentionPolicy.ParseDeleteRetentionPolicy(), + RestorePolicy = this.RestorePolicy is null ? null : this.RestorePolicy.ParseRestorePolicy(), + ChangeFeed = this.ChangeFeed is null ? null : this.ChangeFeed.ParseChangeFeed() }; } @@ -141,6 +150,33 @@ public DeleteRetentionPolicy ParseDeleteRetentionPolicy() } } + /// + /// Wrapper of SDK type DeleteRetentionPolicy + /// + public class PSRestorePolicy + { + public bool? Enabled { get; set; } + public int? Days { get; set; } + + public PSRestorePolicy() + { + } + + public PSRestorePolicy(RestorePolicyProperties policy) + { + this.Enabled = policy.Enabled; + this.Days = policy.Days; + } + public RestorePolicyProperties ParseRestorePolicy() + { + return new RestorePolicyProperties + { + Enabled = this.Enabled is null ? false : this.Enabled.Value, + Days = this.Days + }; + } + } + /// /// Wrapper of SDK type CorsRules /// diff --git a/src/Storage/Storage.Management/Models/PSContainer.cs b/src/Storage/Storage.Management/Models/PSContainer.cs index 7c04bf9dde8c..91ffbb6f6ca5 100644 --- a/src/Storage/Storage.Management/Models/PSContainer.cs +++ b/src/Storage/Storage.Management/Models/PSContainer.cs @@ -45,6 +45,8 @@ public PSContainer(StorageModels.ListContainerItem container) this.LeaseDuration = container.LeaseDuration; this.HasLegalHold = container.HasLegalHold; this.HasImmutabilityPolicy = container.HasImmutabilityPolicy; + this.DefaultEncryptionScope = container.DefaultEncryptionScope; + this.DenyEncryptionScopeOverride = container.DenyEncryptionScopeOverride; } public PSContainer(BlobContainer container) @@ -65,6 +67,8 @@ public PSContainer(BlobContainer container) this.LeaseDuration = container.LeaseDuration; this.HasLegalHold = container.HasLegalHold; this.HasImmutabilityPolicy = container.HasImmutabilityPolicy; + this.DefaultEncryptionScope = container.DefaultEncryptionScope; + this.DenyEncryptionScopeOverride = container.DenyEncryptionScopeOverride; } [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.List, Position = 0)] @@ -106,6 +110,10 @@ public PSContainer(BlobContainer container) [Ps1Xml(Label = "HasImmutabilityPolicy", Target = ViewControl.List, Position = 6)] public bool? HasImmutabilityPolicy { get; set; } + public string DefaultEncryptionScope { get; set; } + + public bool? DenyEncryptionScopeOverride { get; set; } + public static string ParseResourceGroupFromId(string idFromServer) { diff --git a/src/Storage/Storage.Management/Models/PSEncryptionScope.cs b/src/Storage/Storage.Management/Models/PSEncryptionScope.cs new file mode 100644 index 000000000000..d4400973229a --- /dev/null +++ b/src/Storage/Storage.Management/Models/PSEncryptionScope.cs @@ -0,0 +1,110 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Common.Authentication.Abstractions; +using Microsoft.Azure.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using Microsoft.WindowsAzure.Commands.Common.Attributes; +using Microsoft.WindowsAzure.Commands.Common.Storage; +using Microsoft.WindowsAzure.Commands.Storage.Adapters; +using Microsoft.Azure.Storage; +using System; +using System.Collections.Generic; +using StorageModels = Microsoft.Azure.Management.Storage.Models; + +namespace Microsoft.Azure.Commands.Management.Storage.Models +{ + // wrapper of EncryptionScope + public class PSEncryptionScope + { + public PSEncryptionScope(StorageModels.EncryptionScope scope) + { + this.ResourceGroupName = ParseResourceGroupFromId(scope.Id); + this.StorageAccountName = ParseStorageAccountNameFromId(scope.Id); + this.Id = scope.Id; + this.Name = scope.Name; + this.Type = scope.Type; + this.LastModifiedTime = scope.LastModifiedTime; + this.CreationTime = scope.CreationTime; + this.Source = scope.Source; + this.State = scope.State; + this.KeyVaultProperties = scope.KeyVaultProperties is null ? null : new PSEncryptionScopeKeyVaultProperties(scope.KeyVaultProperties); + } + + [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.List, Position = 0)] + public string ResourceGroupName { get; set; } + + [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.List, Position = 1)] + public string StorageAccountName { get; set; } + + public string Id { get; set; } + + [Ps1Xml(Label = "Name", Target = ViewControl.List, Position = 2)] + public string Name { get; set; } + + public string Type { get; set; } + + public string Source { get; set; } + + public string State { get; set; } + + public PSEncryptionScopeKeyVaultProperties KeyVaultProperties { get; set; } + + [Ps1Xml(Label = "LastModifiedTime", Target = ViewControl.List, Position = 4)] + public DateTime? LastModifiedTime { get; set; } + + public DateTime? CreationTime { get; set; } + + public static string ParseResourceGroupFromId(string idFromServer) + { + if (!string.IsNullOrEmpty(idFromServer)) + { + string[] tokens = idFromServer.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + + return tokens[3]; + } + + return null; + } + + public static string ParseStorageAccountNameFromId(string idFromServer) + { + if (!string.IsNullOrEmpty(idFromServer)) + { + string[] tokens = idFromServer.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + + return tokens[7]; + } + + return null; + } + + } + + //wrapper of EncryptionScopeKeyVaultProperties + public class PSEncryptionScopeKeyVaultProperties + { + public PSEncryptionScopeKeyVaultProperties(StorageModels.EncryptionScopeKeyVaultProperties keyVaultProperties) + { + if (keyVaultProperties != null) + { + this.keyUri = keyVaultProperties.KeyUri; + } + } + + public string keyUri { get; set; } + } + + +} diff --git a/src/Storage/Storage.Management/Models/PSStorageAccount.cs b/src/Storage/Storage.Management/Models/PSStorageAccount.cs index 84716fccc1a0..24b5efff68da 100644 --- a/src/Storage/Storage.Management/Models/PSStorageAccount.cs +++ b/src/Storage/Storage.Management/Models/PSStorageAccount.cs @@ -52,9 +52,11 @@ public PSStorageAccount(StorageModels.StorageAccount storageAccount) this.EnableHttpsTrafficOnly = storageAccount.EnableHttpsTrafficOnly; this.NetworkRuleSet = PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet); this.EnableHierarchicalNamespace = storageAccount.IsHnsEnabled; + this.FailoverInProgress = storageAccount.FailoverInProgress; this.LargeFileSharesState = storageAccount.LargeFileSharesState; this.AzureFilesIdentityBasedAuth = storageAccount.AzureFilesIdentityBasedAuthentication is null ? null : new PSAzureFilesIdentityBasedAuthentication(storageAccount.AzureFilesIdentityBasedAuthentication); this.GeoReplicationStats = PSGeoReplicationStats.ParsePSGeoReplicationStats(storageAccount.GeoReplicationStats); + this.BlobRestoreStatus = storageAccount.BlobRestoreStatus is null ? null : new PSBlobRestoreStatus(storageAccount.BlobRestoreStatus); } [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.Table, Position = 1)] @@ -114,8 +116,12 @@ public PSStorageAccount(StorageModels.StorageAccount storageAccount) public string LargeFileSharesState { get; set; } + public bool? FailoverInProgress { get; set; } + public PSNetworkRuleSet NetworkRuleSet { get; set; } + public PSBlobRestoreStatus BlobRestoreStatus { get; set; } + public PSGeoReplicationStats GeoReplicationStats { get; set; } public static PSStorageAccount Create(StorageModels.StorageAccount storageAccount, IStorageManagementClient client) diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index 34ef6d209521..4b97609fb29a 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.13.0")] -[assembly: AssemblyFileVersion("1.13.0")] +[assembly: AssemblyVersion("1.13.3")] +[assembly: AssemblyFileVersion("1.13.3")] diff --git a/src/Storage/Storage.Management/Storage.Management.csproj b/src/Storage/Storage.Management/Storage.Management.csproj index 1118e4435704..7aa000583ae0 100644 --- a/src/Storage/Storage.Management/Storage.Management.csproj +++ b/src/Storage/Storage.Management/Storage.Management.csproj @@ -14,12 +14,13 @@ $(LegacyAssemblyPrefix)$(PsModuleName) - - - - + + + + - + + diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index e133f3bd8e87..b27b3618e658 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -304,6 +304,18 @@ Left + + Left + + + + Left + + + + Left + + @@ -328,6 +340,18 @@ Left $_.DeleteRetentionPolicy.Days + + Left + $_.RestorePolicy.Enabled + + + Left + $_.RestorePolicy.Days + + + Left + $_.ChangeFeed.Enabled + @@ -386,8 +410,8 @@ Left - QuotaGiB - + QuotaGiB + Left $_.LastModifiedTime.ToString("u") @@ -397,5 +421,110 @@ + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + + + + + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Status + + + Left + RestoreId + + + Left + FailureReason + + + Left + $_.Parameters.TimeToRestore.ToString("o") + + + Left + if ($_.Parameters.BlobRanges[0] -ne $null) {if ($_.Parameters.BlobRanges[1] -ne $null) {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ',...]'} else {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ']'}} else {$null} + + + + + + + + Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope + + Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope + + + $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName + + + + + + + Left + + + + Left + 20 + + + + Left + + + + Left + + + + + + + Name + + + State + + + Source + + + $_.KeyVaultProperties.keyUri + + + + + + \ 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 3fd3fac8ee14..77aa2f7da86d 100644 --- a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs +++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccount.cs @@ -26,6 +26,7 @@ public class GetAzureStorageAccountCommand : StorageAccountBaseCmdlet { protected const string ResourceGroupParameterSet = "ResourceGroupParameterSet"; protected const string AccountNameParameterSet = "AccountNameParameterSet"; + protected const string BlobRestoreStatusParameterSet = "BlobRestoreStatusParameterSet"; [Parameter( Position = 0, @@ -39,6 +40,12 @@ public class GetAzureStorageAccountCommand : StorageAccountBaseCmdlet ParameterSetName = AccountNameParameterSet, ValueFromPipelineByPropertyName = true, HelpMessage = "Resource Group Name.")] + [Parameter( + Position = 0, + Mandatory = true, + ParameterSetName = BlobRestoreStatusParameterSet, + ValueFromPipelineByPropertyName = true, + HelpMessage = "Resource Group Name.")] [ResourceGroupCompleter] [ValidateNotNullOrEmpty] public string ResourceGroupName { get; set; } @@ -49,6 +56,12 @@ public class GetAzureStorageAccountCommand : StorageAccountBaseCmdlet ValueFromPipelineByPropertyName = true, ParameterSetName = AccountNameParameterSet, HelpMessage = "Storage Account Name.")] + [Parameter( + Position = 1, + Mandatory = true, + ValueFromPipelineByPropertyName = true, + ParameterSetName = BlobRestoreStatusParameterSet, + HelpMessage = "Storage Account Name.")] [Alias(StorageAccountNameAlias, AccountNameAlias)] [ValidateNotNullOrEmpty] public string Name { get; set; } @@ -59,6 +72,12 @@ public class GetAzureStorageAccountCommand : StorageAccountBaseCmdlet HelpMessage = "Get the GeoReplicationStats of the Storage account.")] [ValidateNotNullOrEmpty] public SwitchParameter IncludeGeoReplicationStats { get; set; } + + [Parameter( + Mandatory = true, + ParameterSetName = BlobRestoreStatusParameterSet, + HelpMessage = "Get the BlobRestoreStatus of the Storage account.")] + public SwitchParameter IncludeBlobRestoreStatus { get; set; } public override void ExecuteCmdlet() { @@ -83,11 +102,16 @@ public override void ExecuteCmdlet() } else { + // ParameterSet ensure can only set one of the following 2 parameters StorageAccountExpand? expandproperties = null; - if (IncludeGeoReplicationStats) + if (this.IncludeGeoReplicationStats) { expandproperties = StorageAccountExpand.GeoReplicationStats; } + if (this.IncludeBlobRestoreStatus) + { + expandproperties = StorageAccountExpand.BlobRestoreStatus; + } var storageAccount = this.StorageClient.StorageAccounts.GetProperties( this.ResourceGroupName, diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountKey.cs b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountKey.cs index 8af43a191eef..c6bfc62831e9 100644 --- a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountKey.cs +++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountKey.cs @@ -40,13 +40,24 @@ public class GetAzureStorageAccountKeyCommand : StorageAccountBaseCmdlet [ValidateNotNullOrEmpty] public string Name { get; set; } + [Parameter( + HelpMessage = "Lists the Kerberos keys (if active directory enabled) for the specified storage account.")] + public SwitchParameter ListKerbKey { get; set; } + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); + ListKeyExpand? listkeyExpend = null; + if (ListKerbKey.IsPresent) + { + listkeyExpend = ListKeyExpand.Kerb; + } + var storageKeys = this.StorageClient.StorageAccounts.ListKeys( this.ResourceGroupName, - this.Name).Keys; + this.Name, + listkeyExpend).Keys; WriteObject(storageKeys, true); } diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageEncryptionScope.cs b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageEncryptionScope.cs new file mode 100644 index 000000000000..93d636478f79 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageEncryptionScope.cs @@ -0,0 +1,123 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; +using Microsoft.Rest.Azure; +using Microsoft.WindowsAzure.Commands.Utilities.Common; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageEncryptionScope", DefaultParameterSetName = AccountNameParameterSet, SupportsShouldProcess = true), OutputType(typeof(PSEncryptionScope))] + public class GetAzureStorageEncryptionScopeCommand : StorageFileBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameParameterSet)] + [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; } + + [Alias("Name")] + [Parameter(Mandatory = false, + HelpMessage = "Azure Storage EncryptionScope name")] + [ValidateNotNullOrEmpty] + public string EncryptionScopeName { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.EncryptionScopeName, "Create Encryption scope")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + if (this.EncryptionScopeName == null) + { + IPage scopes = this.StorageClient.EncryptionScopes.List( + this.ResourceGroupName, + this.StorageAccountName); + WriteEncryptionScopeList(scopes); + + while (scopes.NextPageLink != null) + { + scopes = this.StorageClient.EncryptionScopes.ListNext(scopes.NextPageLink); + WriteEncryptionScopeList(scopes); + } + } + else + { + var scope = this.StorageClient.EncryptionScopes.Get( + this.ResourceGroupName, + this.StorageAccountName, + this.EncryptionScopeName); + + WriteObject(new PSEncryptionScope(scope)); + } + } + } + + protected void WriteEncryptionScopeList(IEnumerable scopes) + { + if (scopes != null) + { + List output = new List(); + scopes.ForEach(s => output.Add(new PSEncryptionScope(s))); + WriteObject(output, true); + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/InvokeAzureStorageAccountFailover.cs b/src/Storage/Storage.Management/StorageAccount/InvokeAzureStorageAccountFailover.cs new file mode 100644 index 000000000000..b155b8f3add9 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/InvokeAzureStorageAccountFailover.cs @@ -0,0 +1,115 @@ +// ---------------------------------------------------------------------------------- +// +// 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 System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using Microsoft.Azure.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using StorageModels = Microsoft.Azure.Management.Storage.Models; +using Microsoft.Azure.Commands.Management.Storage.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using System; +using System.Text; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + /// + /// Lists all storage services underneath the subscription. + /// + [Cmdlet("Invoke", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + StorageAccountFailoverNounStr, SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSStorageAccount))] +#if NETSTANDARD + [Alias("Invoke-" + "AzureRm" + StorageAccountFailoverNounStr)] +#endif + public class InvokeAzureStorageAccountFailoverCommand : StorageAccountBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + [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)] + [Alias(StorageAccountNameAlias, AccountNameAlias)] + [ValidateNotNullOrEmpty] + public string Name { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount InputObject { get; set; } + + [Parameter(HelpMessage = "Force to Failover the Account")] + public SwitchParameter Force + { + get { return force; } + set { force = value; } + } + private bool force = false; + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.Name, "Invoke Failover of Storage Account")) + { + StringBuilder shouldContinuePrompt = new StringBuilder(); + shouldContinuePrompt.AppendLine("Failover the storage account, the secondary cluster will become primary after failover. Please understand the following impact to your storage account before you initiate the failover:"); + shouldContinuePrompt.AppendLine(" 1. Please check the Last Sync Time using Get-"+ ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageAccount cmdlet with -IncludeGeoReplicationStats parameter, and check GeoReplicationStats property of your account. This is the data you may lose if you initiate the failover."); + shouldContinuePrompt.AppendLine(" 2. After the failover, your storage account type will be converted to locally redundant storage (LRS). You can convert your account to use geo-redundant storage (GRS)."); + shouldContinuePrompt.AppendLine(" 3. Once you re-enable GRS for your storage account, Microsoft will replicate data to your new secondary region. Replication time is dependent on the amount of data to replicate. Please note that there are bandwidth charges for the bootstrap. Please refer to doc: https://azure.microsoft.com/en-us/pricing/details/bandwidth/"); + + + if (this.force || ShouldContinue(shouldContinuePrompt.ToString(), "")) + { + if (ParameterSetName == AccountObjectParameterSet) + { + this.ResourceGroupName = InputObject.ResourceGroupName; + this.Name = InputObject.StorageAccountName; + } + + this.StorageClient.StorageAccounts.Failover( + this.ResourceGroupName, + this.Name); + + var storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + + WriteStorageAccount(storageAccount); + } + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzStorageBlobRangeToRestore.cs b/src/Storage/Storage.Management/StorageAccount/NewAzStorageBlobRangeToRestore.cs new file mode 100644 index 000000000000..c265cc8fe783 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/NewAzStorageBlobRangeToRestore.cs @@ -0,0 +1,45 @@ +// ---------------------------------------------------------------------------------- +// +// 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; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobRangeToRestore"), OutputType(typeof(PSBlobRestoreRange))] + public class NewAzureStorageBlobRangeToRestoreCommand : StorageAccountBaseCmdlet + { + [Parameter(Mandatory = false, + HelpMessage = "Specify the blob restore start range. Leave it as empty to restore from begining.")] + [ValidateNotNull] + public string StartRange { get; set; } + + [Parameter(Mandatory = false, + HelpMessage = "Specify the blob restore End range. Leave it as empty to restore to the end.")] + [ValidateNotNull] + public string EndRange { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + PSBlobRestoreRange range = new PSBlobRestoreRange(this.StartRange, this.EndRange); + + WriteObject(range); + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs index 1ef708ba605b..fbb16af9ff4b 100644 --- a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs +++ b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs @@ -24,9 +24,19 @@ namespace Microsoft.Azure.Commands.Management.Storage { - [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageAccount"), OutputType(typeof(PSStorageAccount))] + [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageAccount", DefaultParameterSetName = AzureActiveDirectoryDomainServicesForFileParameterSet), OutputType(typeof(PSStorageAccount))] public class NewAzureStorageAccountCommand : StorageAccountBaseCmdlet { + /// + /// Set AzureActiveDirectoryDomainServicesForFile parameter set name + /// + private const string AzureActiveDirectoryDomainServicesForFileParameterSet = "AzureActiveDirectoryDomainServicesForFile"; + + /// + /// Set ActiveDirectoryDomainServicesForFile parameter set name + /// + private const string ActiveDirectoryDomainServicesForFileParameterSet = "ActiveDirectoryDomainServicesForFile"; + [Parameter( Position = 0, Mandatory = true, @@ -57,6 +67,8 @@ public class NewAzureStorageAccountCommand : StorageAccountBaseCmdlet StorageModels.SkuName.StandardRAGRS, StorageModels.SkuName.PremiumLRS, StorageModels.SkuName.PremiumZRS, + StorageModels.SkuName.StandardGZRS, + StorageModels.SkuName.StandardRAGZRS, IgnoreCase = true)] public string SkuName { get; set; } @@ -166,7 +178,8 @@ public bool EnableHierarchicalNamespace [Parameter( Mandatory = false, - HelpMessage = "Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account.")] + HelpMessage = "Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account.", + ParameterSetName = AzureActiveDirectoryDomainServicesForFileParameterSet)] [ValidateNotNullOrEmpty] public bool EnableAzureActiveDirectoryDomainServicesForFile { @@ -184,6 +197,66 @@ public bool EnableAzureActiveDirectoryDomainServicesForFile [Parameter(Mandatory = false, HelpMessage = "Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047")] public SwitchParameter EnableLargeFileShare { get; set; } + [Parameter( + Mandatory = false, + HelpMessage = "Enable Azure Files Active Directory Domain Service Authentication for the storage account.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public bool EnableActiveDirectoryDomainServicesForFile + { + get + { + return enableActiveDirectoryDomainServicesForFile.Value; + } + set + { + enableActiveDirectoryDomainServicesForFile = value; + } + } + private bool? enableActiveDirectoryDomainServicesForFile = null; + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryNetBiosDomainName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryForestName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainGuid { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainSid { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryAzureStorageSid { get; set; } + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] public SwitchParameter AsJob { get; set; } @@ -255,13 +328,37 @@ public override void ExecuteCmdlet() { createParameters.IsHnsEnabled = enableHierarchicalNamespace; } - if (enableAzureActiveDirectoryDomainServicesForFile !=null) + if (enableAzureActiveDirectoryDomainServicesForFile !=null || enableActiveDirectoryDomainServicesForFile != null) { createParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); - if (enableAzureActiveDirectoryDomainServicesForFile.Value) + if (enableAzureActiveDirectoryDomainServicesForFile != null && enableAzureActiveDirectoryDomainServicesForFile.Value) { createParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.AADDS; } + else if (enableActiveDirectoryDomainServicesForFile != null && enableActiveDirectoryDomainServicesForFile.Value) + { + if (string.IsNullOrEmpty(this.ActiveDirectoryDomainName) + || string.IsNullOrEmpty(this.ActiveDirectoryNetBiosDomainName) + || string.IsNullOrEmpty(this.ActiveDirectoryForestName) + || string.IsNullOrEmpty(this.ActiveDirectoryDomainGuid) + || string.IsNullOrEmpty(this.ActiveDirectoryDomainSid) + || string.IsNullOrEmpty(this.ActiveDirectoryAzureStorageSid) + ) + { + throw new System.ArgumentNullException("ActiveDirectoryDomainName, ActiveDirectoryNetBiosDomainName, ActiveDirectoryForestName, ActiveDirectoryDomainGuid, ActiveDirectoryDomainSid, ActiveDirectoryAzureStorageSid", + "To enable ActiveDirectoryDomainServicesForFile, user must specify all of: ActiveDirectoryDomainName, ActiveDirectoryNetBiosDomainName, ActiveDirectoryForestName, ActiveDirectoryDomainGuid, ActiveDirectoryDomainSid, ActiveDirectoryAzureStorageSid."); + } + createParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.AD; + createParameters.AzureFilesIdentityBasedAuthentication.ActiveDirectoryProperties = new ActiveDirectoryProperties() + { + DomainName = this.ActiveDirectoryDomainName, + NetBiosDomainName = this.ActiveDirectoryNetBiosDomainName, + ForestName = this.ActiveDirectoryForestName, + DomainGuid = this.ActiveDirectoryDomainGuid, + DomainSid = this.ActiveDirectoryDomainSid, + AzureStorageSid = this.ActiveDirectoryAzureStorageSid + }; + } else { createParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.None; diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccountKey.cs b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccountKey.cs index 2aa7a594f3e5..d60313fa21d8 100644 --- a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccountKey.cs +++ b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccountKey.cs @@ -26,6 +26,10 @@ public class NewAzureStorageAccountKeyCommand : StorageAccountBaseCmdlet private const string Key2 = "key2"; + private const string Kerb1 = "kerb1"; + + private const string Kerb2 = "kerb2"; + [Parameter( Position = 0, Mandatory = true, @@ -49,7 +53,7 @@ public class NewAzureStorageAccountKeyCommand : StorageAccountBaseCmdlet Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Storage Account Key.")] - [ValidateSet(Key1, Key2, IgnoreCase = false)] + [ValidateSet(Key1, Key2, Kerb1, Kerb2, IgnoreCase = false)] public string KeyName { get; set; } public override void ExecuteCmdlet() diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageEncryptionScope.cs b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageEncryptionScope.cs new file mode 100644 index 000000000000..756928a8b2b8 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageEncryptionScope.cs @@ -0,0 +1,161 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageEncryptionScope", DefaultParameterSetName = AccountNameParameterSet, SupportsShouldProcess = true), OutputType(typeof(PSEncryptionScope))] + public class NewAzureStorageEncryptionScopeCommand : StorageFileBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// AccountName Parameter Set + /// + private const string AccountNameKeyVaultParameterSet = "AccountNameKeyVault"; + + /// + /// Account object parameter set + /// + private const string AccountObjectKeyVaultParameterSet = "AccountObjectKeyVault"; + + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Alias(AccountNameAlias)] + [ValidateNotNullOrEmpty] + public string StorageAccountName { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Alias("Name")] + [Parameter(Mandatory = true, + HelpMessage = "Azure Storage EncryptionScope name")] + [ValidateNotNullOrEmpty] + public string EncryptionScopeName { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Storage.", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Storage.", + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public SwitchParameter StorageEncryption { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public SwitchParameter KeyvaultEncryption { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "The key Uri ", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public string KeyUri { get; set; } + + + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.EncryptionScopeName, "Create Encryption scope")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + case AccountObjectKeyVaultParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + EncryptionScope scope = new EncryptionScope(); + if (this.KeyvaultEncryption.IsPresent) + { + scope.Source = EncryptionScopeSource.MicrosoftKeyVault; + scope.KeyVaultProperties = new EncryptionScopeKeyVaultProperties(this.KeyUri); + } + else + { + scope.Source = EncryptionScopeSource.MicrosoftStorage; + } + + scope = this.StorageClient.EncryptionScopes.Put( + this.ResourceGroupName, + this.StorageAccountName, + this.EncryptionScopeName, + scope); + + WriteObject(new PSEncryptionScope(scope)); + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/RestoreAzStorageBlobRange.cs b/src/Storage/Storage.Management/StorageAccount/RestoreAzStorageBlobRange.cs new file mode 100644 index 000000000000..96a05206d379 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/RestoreAzStorageBlobRange.cs @@ -0,0 +1,121 @@ +// ---------------------------------------------------------------------------------- +// +// 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; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Restore", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageBlobRange", SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSBlobRestoreStatus))] + public class RestoreAzureStorageBlobRangeCommand : 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 ResourceId { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "The Time to Restore Blob.")] + [ValidateNotNull] + public DateTime TimeToRestore { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "The blob range to Restore.")] + [ValidateNotNull] + public PSBlobRestoreRange[] BlobRestoreRange { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { 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(ResourceId); + this.ResourceGroupName = accountResource.ResourceGroupName; + this.StorageAccountName = accountResource.ResourceName; + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + if (ShouldProcess(this.StorageAccountName, "Restore Blob Range")) + { + BlobRestoreStatus status = this.StorageClient.StorageAccounts.RestoreBlobRanges( + this.ResourceGroupName, + this.StorageAccountName, + this.TimeToRestore, + PSBlobRestoreRange.ParseBlobRestoreRanges(this.BlobRestoreRange)); + + WriteObject(new PSBlobRestoreStatus(status)); + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs index 0d29fe917bd5..ad0a994a026a 100644 --- a/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs +++ b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs @@ -42,6 +42,11 @@ public class SetAzureStorageAccountCommand : StorageAccountBaseCmdlet /// private const string KeyvaultEncryptionParameterSet = "KeyvaultEncryption"; + /// + /// Set ActiveDirectoryDomainServicesForFile parameter set name + /// + private const string ActiveDirectoryDomainServicesForFileParameterSet = "ActiveDirectoryDomainServicesForFile"; + [Parameter( Position = 0, Mandatory = true, @@ -78,6 +83,8 @@ public SwitchParameter Force StorageModels.SkuName.StandardGRS, StorageModels.SkuName.StandardRAGRS, StorageModels.SkuName.PremiumLRS, + StorageModels.SkuName.StandardGZRS, + StorageModels.SkuName.StandardRAGZRS, IgnoreCase = true)] public string SkuName { get; set; } @@ -151,7 +158,7 @@ public SwitchParameter KeyvaultEncryption public string KeyName { get; set; } [Parameter(HelpMessage = "Storage Account encryption keySource KeyVault KeyVersion", - Mandatory = true, + Mandatory = false, ParameterSetName = KeyvaultEncryptionParameterSet)] [ValidateNotNullOrEmpty] public string KeyVersion { get; set; } @@ -185,7 +192,12 @@ public PSNetworkRuleSet NetworkRuleSet [Parameter( Mandatory = false, - HelpMessage = "Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account.")] + HelpMessage = "Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account.", + ParameterSetName = StorageEncryptionParameterSet)] + [Parameter( + Mandatory = false, + HelpMessage = "Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account.", + ParameterSetName = KeyvaultEncryptionParameterSet)] [ValidateNotNullOrEmpty] public bool EnableAzureActiveDirectoryDomainServicesForFile { @@ -203,6 +215,67 @@ public bool EnableAzureActiveDirectoryDomainServicesForFile [Parameter(Mandatory = false, HelpMessage = "Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047")] public SwitchParameter EnableLargeFileShare { get; set; } + [Parameter( + Mandatory = true, + HelpMessage = "Enable Azure Files Active Directory Domain Service Authentication for the storage account.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public bool EnableActiveDirectoryDomainServicesForFile + { + get + { + return enableActiveDirectoryDomainServicesForFile.Value; + } + set + { + enableActiveDirectoryDomainServicesForFile = value; + } + } + private bool? enableActiveDirectoryDomainServicesForFile = null; + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryNetBiosDomainName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryForestName { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainGuid { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryDomainSid { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true.", + ParameterSetName = ActiveDirectoryDomainServicesForFileParameterSet)] + [ValidateNotNullOrEmpty] + public string ActiveDirectoryAzureStorageSid { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] public SwitchParameter AsJob { get; set; } @@ -272,16 +345,96 @@ public override void ExecuteCmdlet() } if (enableAzureActiveDirectoryDomainServicesForFile != null) { - - updateParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); - if (enableAzureActiveDirectoryDomainServicesForFile.Value) + if (enableAzureActiveDirectoryDomainServicesForFile.Value) // enable AADDS { + //if user want to enable AADDS, must first disable AD + var originStorageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + if (originStorageAccount.AzureFilesIdentityBasedAuthentication != null + && originStorageAccount.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions == DirectoryServiceOptions.AD) + { + throw new System.ArgumentException("The Storage account already enabled ActiveDirectoryDomainServicesForFile, please disable it by run this cmdlets with \"-EnableActiveDirectoryDomainServicesForFile $false\" before enable AzureActiveDirectoryDomainServicesForFile."); + } + updateParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); updateParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.AADDS; } - else + else //Disable AADDS { + // Only disable AADDS; else keep unchanged + var originStorageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + if (originStorageAccount.AzureFilesIdentityBasedAuthentication == null + || originStorageAccount.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions == DirectoryServiceOptions.AADDS) + { + updateParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); + updateParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.None; + } + else + { + updateParameters.AzureFilesIdentityBasedAuthentication = originStorageAccount.AzureFilesIdentityBasedAuthentication; + } + } + } + if (enableActiveDirectoryDomainServicesForFile != null) + { - updateParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.None; + if (enableActiveDirectoryDomainServicesForFile.Value) // Enable AD + { + if (string.IsNullOrEmpty(this.ActiveDirectoryDomainName) + || string.IsNullOrEmpty(this.ActiveDirectoryNetBiosDomainName) + || string.IsNullOrEmpty(this.ActiveDirectoryForestName) + || string.IsNullOrEmpty(this.ActiveDirectoryDomainGuid) + || string.IsNullOrEmpty(this.ActiveDirectoryDomainSid) + || string.IsNullOrEmpty(this.ActiveDirectoryAzureStorageSid) + ) + { + throw new System.ArgumentNullException("ActiveDirectoryDomainName, ActiveDirectoryNetBiosDomainName, ActiveDirectoryForestName, ActiveDirectoryDomainGuid, ActiveDirectoryDomainSid, ActiveDirectoryAzureStorageSid", + "To enable ActiveDirectoryDomainServicesForFile, user must specify all of: ActiveDirectoryDomainName, ActiveDirectoryNetBiosDomainName, ActiveDirectoryForestName, ActiveDirectoryDomainGuid, ActiveDirectoryDomainSid, ActiveDirectoryAzureStorageSid."); + } + + //if user want to enable AD, must first disable AADDS + var originStorageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + if (originStorageAccount.AzureFilesIdentityBasedAuthentication != null + && originStorageAccount.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions == DirectoryServiceOptions.AADDS) + { + throw new System.ArgumentException("The Storage account already enabled AzureActiveDirectoryDomainServicesForFile, please disable it by run this cmdlets with \"-EnableAzureActiveDirectoryDomainServicesForFile $false\" before enable ActiveDirectoryDomainServicesForFile."); + } + + updateParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); + updateParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.AD; + updateParameters.AzureFilesIdentityBasedAuthentication.ActiveDirectoryProperties = new ActiveDirectoryProperties() + { + DomainName = this.ActiveDirectoryDomainName, + NetBiosDomainName = this.ActiveDirectoryNetBiosDomainName, + ForestName = this.ActiveDirectoryForestName, + DomainGuid = this.ActiveDirectoryDomainGuid, + DomainSid = this.ActiveDirectoryDomainSid, + AzureStorageSid = this.ActiveDirectoryAzureStorageSid + }; + } + else // Disable AD + { + if (!string.IsNullOrEmpty(this.ActiveDirectoryDomainName) + || !string.IsNullOrEmpty(this.ActiveDirectoryNetBiosDomainName) + || !string.IsNullOrEmpty(this.ActiveDirectoryForestName) + || !string.IsNullOrEmpty(this.ActiveDirectoryDomainGuid) + || !string.IsNullOrEmpty(this.ActiveDirectoryDomainSid) + || !string.IsNullOrEmpty(this.ActiveDirectoryAzureStorageSid) + ) + { + throw new System.ArgumentException("To Disable ActiveDirectoryDomainServicesForFile, user can't specify any of: ActiveDirectoryDomainName, ActiveDirectoryNetBiosDomainName, ActiveDirectoryForestName, ActiveDirectoryDomainGuid, ActiveDirectoryDomainSid, ActiveDirectoryAzureStorageSid."); + } + + // Only disable AD; else keep unchanged + var originStorageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + if (originStorageAccount.AzureFilesIdentityBasedAuthentication == null + || originStorageAccount.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions == DirectoryServiceOptions.AD) + { + updateParameters.AzureFilesIdentityBasedAuthentication = new AzureFilesIdentityBasedAuthentication(); + updateParameters.AzureFilesIdentityBasedAuthentication.DirectoryServiceOptions = DirectoryServiceOptions.None; + } + else + { + updateParameters.AzureFilesIdentityBasedAuthentication = originStorageAccount.AzureFilesIdentityBasedAuthentication; + } } } if (this.EnableLargeFileShare.IsPresent) diff --git a/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs b/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs index 7efb98a16978..4e4d6db60de1 100644 --- a/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs +++ b/src/Storage/Storage.Management/StorageAccount/StorageAccountBaseCmdlet.cs @@ -31,6 +31,8 @@ public abstract class StorageAccountBaseCmdlet : AzureRMCmdlet protected const string StorageAccountKeyNounStr = StorageAccountNounStr + "Key"; protected const string StorageAccountRuleNounStr = StorageAccountNounStr + "NetworkRule"; protected const string StorageAccountRuleSetNounStr = StorageAccountRuleNounStr + "Set"; + protected const string StorageAccountManagementPolicyNounStr = StorageAccountNounStr + "ManagementPolicy"; + protected const string StorageAccountFailoverNounStr = StorageAccountNounStr + "Failover"; protected const string StorageAccountNameAlias = "StorageAccountName"; protected const string AccountNameAlias = "AccountName"; @@ -39,7 +41,9 @@ public abstract class StorageAccountBaseCmdlet : AzureRMCmdlet protected const string StorageAccountTypeAlias = "StorageAccountType"; protected const string AccountTypeAlias = "AccountType"; protected const string Account_TypeAlias = "Type"; - + + protected const string EnableFilesAadIntegrationAlias = "EnableFilesAADIntegration"; + protected const string StorageAccountKeySourceStr = StorageAccountNounStr + "EncryptionKeySource"; protected const string TagsAlias = "Tags"; @@ -48,6 +52,9 @@ public abstract class StorageAccountBaseCmdlet : AzureRMCmdlet protected const string StorageUsageNounStr = "AzureRmStorageUsage"; + internal const string StandardGZRS = "Standard_GZRS"; + internal const string StandardRAGZRS = "Standard_RAGZRS"; + internal const string FileStorage = "FileStorage"; protected struct AccountAccessTier { internal const string Hot = "Hot"; diff --git a/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageEncryptionScope.cs b/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageEncryptionScope.cs new file mode 100644 index 000000000000..acd1503e68c2 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageEncryptionScope.cs @@ -0,0 +1,224 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Update", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageEncryptionScope", DefaultParameterSetName = AccountNameParameterSet, SupportsShouldProcess = true), OutputType(typeof(PSEncryptionScope))] + public class UpdateAzureStorageEncryptionScopeCommand : StorageFileBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// EncryptionScope object parameter set + /// + private const string EncryptionScopeObjectParameterSet = "EncryptionScopeObject"; + + /// + /// AccountName Parameter Set + /// + private const string AccountNameKeyVaultParameterSet = "AccountNameKeyVault"; + + /// + /// Account object parameter set + /// + private const string AccountObjectKeyVaultParameterSet = "AccountObjectKeyVault"; + + /// + /// EncryptionScope object parameter set + /// + private const string EncryptionScopeObjectKeyVaultParameterSet = "EncryptionScopeObjectKeyVault"; + + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Alias(AccountNameAlias)] + [ValidateNotNullOrEmpty] + public string StorageAccountName { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "EncryptionScope object", + ValueFromPipeline = true, + ParameterSetName = EncryptionScopeObjectParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "EncryptionScope object", + ValueFromPipeline = true, + ParameterSetName = EncryptionScopeObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public PSEncryptionScope InputObject { get; set; } + + [Alias("Name")] + [Parameter(Mandatory = true, + HelpMessage = "Azure Storage EncryptionScope name", + ParameterSetName = AccountObjectParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Azure Storage EncryptionScope name", + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Azure Storage EncryptionScope name", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Azure Storage EncryptionScope name", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public string EncryptionScopeName { get; set; } + + [Parameter(Mandatory = false, + HelpMessage = "Create encryption scope with keySource as Microsoft.Storage.", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = false, + HelpMessage = "Create encryption scope with keySource as Microsoft.Storage.", + ParameterSetName = AccountObjectParameterSet)] + [Parameter(Mandatory = false, + HelpMessage = "Create encryption scope with keySource as Microsoft.Storage.", + ParameterSetName = EncryptionScopeObjectParameterSet)] + [ValidateNotNullOrEmpty] + public SwitchParameter StorageEncryption { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Create encryption scope with keySource as Microsoft.Keyvault", + ParameterSetName = EncryptionScopeObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public SwitchParameter KeyvaultEncryption { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "The key Uri.", + ParameterSetName = AccountNameKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "The key Uri.", + ParameterSetName = AccountObjectKeyVaultParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "The key Uri.", + ParameterSetName = EncryptionScopeObjectKeyVaultParameterSet)] + [ValidateNotNullOrEmpty] + public string KeyUri { get; set; } + + [Parameter(Mandatory = false, + HelpMessage = "Update encryption scope State, Possible values include: 'Enabled', 'Disabled'.")] + [ValidateSet(EncryptionScopeState.Enabled, + EncryptionScopeState.Disabled, + IgnoreCase = true)] + public string State { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.EncryptionScopeName, "Update Encryption scope")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + case AccountObjectKeyVaultParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case EncryptionScopeObjectParameterSet: + case EncryptionScopeObjectKeyVaultParameterSet: + this.ResourceGroupName = InputObject.ResourceGroupName; + this.StorageAccountName = InputObject.StorageAccountName; + this.EncryptionScopeName = InputObject.Name; + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + EncryptionScope scope = new EncryptionScope(); + if (this.KeyvaultEncryption.IsPresent) + { + scope.Source = EncryptionScopeSource.MicrosoftKeyVault; + scope.KeyVaultProperties = new EncryptionScopeKeyVaultProperties(this.KeyUri); + } + if (this.StorageEncryption.IsPresent) + { + scope.Source = EncryptionScopeSource.MicrosoftStorage; + } + + if (this.State != null) + { + if (this.State.Equals(EncryptionScopeState.Enabled, StringComparison.CurrentCultureIgnoreCase)) + { + scope.State = EncryptionScopeState.Enabled; + } + if (this.State.Equals(EncryptionScopeState.Disabled, StringComparison.CurrentCultureIgnoreCase)) + { + scope.State = EncryptionScopeState.Disabled; + } + } + + scope = this.StorageClient.EncryptionScopes.Patch( + this.ResourceGroupName, + this.StorageAccountName, + this.EncryptionScopeName, + scope); + + WriteObject(new PSEncryptionScope(scope)); + } + } + } +} diff --git a/src/Storage/Storage.Management/help/Az.Storage.md b/src/Storage/Storage.Management/help/Az.Storage.md index 700d2ce81fd2..ab37ff80ae32 100644 --- a/src/Storage/Storage.Management/help/Az.Storage.md +++ b/src/Storage/Storage.Management/help/Az.Storage.md @@ -26,6 +26,9 @@ Closes file handles of a file share, a file directory or a file. ### [Disable-AzStorageBlobDeleteRetentionPolicy](Disable-AzStorageBlobDeleteRetentionPolicy.md) Disable delete retention policy for the Azure Storage Blob service. +### [Disable-AzStorageBlobRestorePolicy](Disable-AzStorageBlobRestorePolicy.md) +Disables Blob Restore Policy on a Storage account. + ### [Disable-AzStorageDeleteRetentionPolicy](Disable-AzStorageDeleteRetentionPolicy.md) Disable delete retention policy for the Azure Storage Blob service. @@ -35,12 +38,24 @@ Disable static website for the Azure Storage account. ### [Enable-AzStorageBlobDeleteRetentionPolicy](Enable-AzStorageBlobDeleteRetentionPolicy.md) Enable delete retention policy for the Azure Storage Blob service. +### [Enable-AzStorageBlobRestorePolicy](Enable-AzStorageBlobRestorePolicy.md) +Enables Blob Restore Policy on a Storage account. + ### [Enable-AzStorageDeleteRetentionPolicy](Enable-AzStorageDeleteRetentionPolicy.md) Enable delete retention policy for the Azure Storage Blob service. ### [Enable-AzStorageStaticWebsite](Enable-AzStorageStaticWebsite.md) Enable static website for the Azure Storage account. +### [Get-AzDataLakeGen2ChildItem](Get-AzDataLakeGen2ChildItem.md) +Lists sub directorys and files from a directory or filesystem root. + +### [Get-AzDataLakeGen2Item](Get-AzDataLakeGen2Item.md) +Gets the details of a file or directory in a filesystem. + +### [Get-AzDataLakeGen2ItemContent](Get-AzDataLakeGen2ItemContent.md) +Download a file. + ### [Get-AzRmStorageContainer](Get-AzRmStorageContainer.md) Gets or lists Storage blob containers @@ -86,6 +101,9 @@ Gets the stored access policy or policies for an Azure storage container. ### [Get-AzStorageCORSRule](Get-AzStorageCORSRule.md) Gets CORS rules for a Storage service type. +### [Get-AzStorageEncryptionScope](Get-AzStorageEncryptionScope.md) +Get or list encryption scopes from a Storage account. + ### [Get-AzStorageFile](Get-AzStorageFile.md) Lists directories and files for a path. @@ -128,9 +146,18 @@ Gets the stored access policy or policies for an Azure storage table. ### [Get-AzStorageUsage](Get-AzStorageUsage.md) Gets the Storage resource usage of the current subscription. +### [Invoke-AzStorageAccountFailover](Invoke-AzStorageAccountFailover.md) +Invokes failover of a Storage account. + ### [Lock-AzRmStorageContainerImmutabilityPolicy](Lock-AzRmStorageContainerImmutabilityPolicy.md) Locks ImmutabilityPolicy of a Storage blob containers +### [Move-AzDataLakeGen2Item](Move-AzDataLakeGen2Item.md) +Move a file or directory to another a file or directory in same Storage account. + +### [New-AzDataLakeGen2Item](New-AzDataLakeGen2Item.md) +Create a file or directory in a filesystem. + ### [New-AzRmStorageContainer](New-AzRmStorageContainer.md) Creates a Storage blob container @@ -152,6 +179,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-AzStorageBlobRangeToRestore](New-AzStorageBlobRangeToRestore.md) +Creates a Blob Range object to restores a Storage account. + ### [New-AzStorageBlobSASToken](New-AzStorageBlobSASToken.md) Generates a SAS token for an Azure storage blob. @@ -170,6 +200,9 @@ Creates an Azure Storage context. ### [New-AzStorageDirectory](New-AzStorageDirectory.md) Creates a directory. +### [New-AzStorageEncryptionScope](New-AzStorageEncryptionScope.md) +Creates an encryption scope for a Storage account. + ### [New-AzStorageFileSASToken](New-AzStorageFileSASToken.md) Generates a shared access signature token for a Storage file. @@ -200,6 +233,9 @@ Generates an SAS token for an Azure Storage table. ### [New-AzStorageTableStoredAccessPolicy](New-AzStorageTableStoredAccessPolicy.md) Creates a stored access policy for an Azure storage table. +### [Remove-AzDataLakeGen2Item](Remove-AzDataLakeGen2Item.md) +Remove a file or directory. + ### [Remove-AzRmStorageContainer](Remove-AzRmStorageContainer.md) Removes a Storage blob container @@ -257,12 +293,18 @@ Removes a storage table. ### [Remove-AzStorageTableStoredAccessPolicy](Remove-AzStorageTableStoredAccessPolicy.md) Removes a stored access policy from an Azure storage table. +### [Restore-AzStorageBlobRange](Restore-AzStorageBlobRange.md) +Restores a Storage account for specific blob ranges. + ### [Revoke-AzStorageAccountUserDelegationKeys](Revoke-AzStorageAccountUserDelegationKeys.md) Revoke all User Delegation keys of a Storage account. ### [Set-AzCurrentStorageAccount](Set-AzCurrentStorageAccount.md) Modifies the current Storage account of the specified subscription. +### [Set-AzDataLakeGen2ItemAclObject](Set-AzDataLakeGen2ItemAclObject.md) +Creates/Updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. + ### [Set-AzRmStorageContainerImmutabilityPolicy](Set-AzRmStorageContainerImmutabilityPolicy.md) Creates or updates ImmutabilityPolicy of a Storage blob containers @@ -320,6 +362,9 @@ Stops a copy operation. ### [Stop-AzStorageFileCopy](Stop-AzStorageFileCopy.md) Stops a copy operation to the specified destination file. +### [Update-AzDataLakeGen2Item](Update-AzDataLakeGen2Item.md) +Update a file or directory on properties, metadata, permission, ACL, and owner. + ### [Update-AzRmStorageContainer](Update-AzRmStorageContainer.md) Modifies a Storage blob container @@ -332,6 +377,9 @@ Update the NetworkRule property of a Storage account ### [Update-AzStorageBlobServiceProperty](Update-AzStorageBlobServiceProperty.md) Modifies the service properties for the Azure Storage Blob service. +### [Update-AzStorageEncryptionScope](Update-AzStorageEncryptionScope.md) +Modify an encryption scope for a Storage account. + ### [Update-AzStorageServiceProperty](Update-AzStorageServiceProperty.md) Modifies the properties for the Azure Storage service. diff --git a/src/Storage/Storage.Management/help/Disable-AzStorageBlobRestorePolicy.md b/src/Storage/Storage.Management/help/Disable-AzStorageBlobRestorePolicy.md new file mode 100644 index 000000000000..f83a693681a4 --- /dev/null +++ b/src/Storage/Storage.Management/help/Disable-AzStorageBlobRestorePolicy.md @@ -0,0 +1,183 @@ +--- +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/disable-azstorageblobrestorepolicy +schema: 2.0.0 +--- + +# Disable-AzStorageBlobRestorePolicy + +## SYNOPSIS +Disables Blob Restore Policy on a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Disable-AzStorageBlobRestorePolicy [-ResourceGroupName] [-StorageAccountName] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObject +``` +Disable-AzStorageBlobRestorePolicy -StorageAccount [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### BlobServicePropertiesResourceId +``` +Disable-AzStorageBlobRestorePolicy [-ResourceId] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Disable-AzStorageBlobRestorePolicy** cmdlet disables Blob Restore Policy for the Azure Storage Blob service. + +## EXAMPLES + +### Example 1: Disables Blob Restore Policy for the Azure Storage Blob service on a Storage account +```powershell +PS C:\> Disable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" +``` + +This command Disables Blob Restore Policy for the Azure Storage Blob service on 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 +``` + +### -PassThru +Display ServiceProperties + +```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 +``` + +### -ResourceId +Input a Storage account Resource Id, or a Blob service properties Resource Id. + +```yaml +Type: System.String +Parameter Sets: BlobServicePropertiesResourceId +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByPropertyName) +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, Name + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Enable-AzStorageBlobRestorePolicy.md b/src/Storage/Storage.Management/help/Enable-AzStorageBlobRestorePolicy.md new file mode 100644 index 000000000000..4ea98b80c2a0 --- /dev/null +++ b/src/Storage/Storage.Management/help/Enable-AzStorageBlobRestorePolicy.md @@ -0,0 +1,216 @@ +--- +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/enable-azstorageblobrestorepolicy +schema: 2.0.0 +--- + +# Enable-AzStorageBlobRestorePolicy + +## SYNOPSIS +Enables Blob Restore Policy on a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Enable-AzStorageBlobRestorePolicy [-ResourceGroupName] [-StorageAccountName] + -RestoreDays [-PassThru] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObject +``` +Enable-AzStorageBlobRestorePolicy -StorageAccount -RestoreDays [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### BlobServicePropertiesResourceId +``` +Enable-AzStorageBlobRestorePolicy [-ResourceId] -RestoreDays [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Enable-AzStorageBlobRestorePolicy** cmdlet enables Blob Restore Policy for the Azure Storage Blob service. + +## EXAMPLES + +### Example 1: Enables Blob Restore Policy for the Azure Storage Blob service on a Storage account +```powershell +PS C:\> Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" $accountName -RetentionDays 5 + +PS C:\> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -EnableChangeFeed $true + +StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days RestorePolicy.Enabled RestorePolicy.Days ChangeFeed +------------------ ----------------- --------------------- ----------------------------- -------------------------- --------------------- ------------------ ---------- +mystorageaccount myresourcegoup True 5 False True + +PS C:\> Enable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -RestoreDays 4 + +PS C:\> Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" + +StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days RestorePolicy.Enabled RestorePolicy.Days ChangeFeed +------------------ ----------------- --------------------- ----------------------------- -------------------------- --------------------- ------------------ ---------- +mystorageaccount myresourcegoup True 5 True 4 True +``` + +This command first enable Blob softdelet and changefeed, then enables Blob Restore Policy, finally check the setting in Blob service properties. +The Blob RestoreDays much be smaller than Blob delete RetentionDays. +ChangeFeed must be enabled before enable lob Restore Policy. +If softdelete and Changefeed are just enabled, need wait for some time for server to handle the setting, before enable Blob restore policy. + +## 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 +``` + +### -PassThru +Display ServiceProperties + +```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 +``` + +### -ResourceId +Input a Storage account Resource Id, or a Blob service properties Resource Id. + +```yaml +Type: System.String +Parameter Sets: BlobServicePropertiesResourceId +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -RestoreDays +Sets the number of days for the blob can be restored.. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: Days + +Required: True +Position: Named +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, Name + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ChildItem.md b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ChildItem.md new file mode 100644 index 000000000000..107c7d5b83d5 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ChildItem.md @@ -0,0 +1,249 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azdatalakegen2childitem +schema: 2.0.0 +--- + +# Get-AzDataLakeGen2ChildItem + +## SYNOPSIS +Lists sub directorys and files from a directory or filesystem root. + +## SYNTAX + +``` +Get-AzDataLakeGen2ChildItem [-FileSystem] [[-Path] ] [-FetchProperty] [-Recurse] + [-MaxCount ] [-ContinuationToken ] [-AsJob] [-OutputUserPrincipalName] + [-Context ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **Get-AzDataLakeGen2ChildItem** cmdlet lists sub directorys and files in a directory or Filesystem in an Azure storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: List the direct sub items from a Filesystem +``` +PS C:\>Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1 True 2020-03-13 13:07:34Z rwxr-x--- $superuser $superuser +dir2 True 2020-03-23 09:28:36Z rwxr-x--- $superuser $superuser +``` + +This command lists the direct sub items from a Filesystem + +### Example 2: List recursively from a directory, and fetch Properties/ACL +``` +PS C:\>Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Path "dir1/" -Recurse -FetchProperty + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/dir3 True 2020-03-23 09:34:31Z rwx---rwx $superuser $superuser +dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser +dir1/testfile_1K_0 False 1024 2020-03-23 09:29:21Z rw-r----- $superuser $superuser +``` + +This command lists the direct sub items from a Filesystem + +### Example 3: List items recursively from a Filesystem in multiple batches +``` +PS C:\> $MaxReturn = 10000 +PS C:\> $FileSystemName = "filesystem1" +PS C:\> $Total = 0 +PS C:\> $Token = $Null +PS C:\> do + { + $items = Get-AzDataLakeGen2ChildItem -FileSystem $FileSystemName -Recurse -MaxCount $MaxReturn -ContinuationToken $Token + $Total += $items.Count + if($items.Length -le 0) { Break;} + $Token = $items[$items.Count -1].ContinuationToken; + } + While ($Token -ne $Null) +PS C:\> Echo "Total $Total items in Filesystem $FileSystemName" +``` + +This example uses the *MaxCount* and *ContinuationToken* parameters to list items recursively from a Filesystem in multiple batches. +The first four commands assign values to variables to use in the example. +The fifth command specifies a **Do-While** statement that uses the **Get-AzDataLakeGen2ChildItem** cmdlet to list items. +The statement includes the continuation token stored in the $Token variable. +$Token changes value as the loop runs. +The final command uses the **Echo** command to display the total. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -ContinuationToken +Continuation Token. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FetchProperty +Fetch the datalake item properties and ACL. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: FetchPermission + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -MaxCount +The max count of the blobs that can return. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OutputUserPrincipalName +If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Azure Active Directory Object IDs to User Principal Names. If not speicify this parameter, the values will be returned as Azure Active Directory Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: UserPrincipalName + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be retrieved. +Should be a directory, in the format 'directory1/directory2/'. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Recurse +Indicates if will recursively get the Child Item. +The default is false. + +```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 +``` + +### 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.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Get-AzDataLakeGen2Item.md b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2Item.md new file mode 100644 index 000000000000..83f6980771b7 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2Item.md @@ -0,0 +1,186 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azdatalakegen2item +schema: 2.0.0 +--- + +# Get-AzDataLakeGen2Item + +## SYNOPSIS +Gets the details of a file or directory in a filesystem. + +## SYNTAX + +``` +Get-AzDataLakeGen2Item [-FileSystem] [-Path ] [-Context ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **Get-AzDataLakeGen2Item** cmdlet gets the details of a file or directory in a Filesystem in an Azure storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Get a directory from a Filesystem, and show the details +``` +PS C:\> $dir1 = Get-AzDataLakeGen2tem -FileSystem "filesystem1" -Path "dir1/" +PS C:\> $dir1 + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1 True 2020-03-23 09:15:56Z rwx---rwx $superuser $superuser + +PS C:\WINDOWS\system32> $dir1.ACL + +DefaultScope AccessControlType EntityId Permissions +------------ ----------------- -------- ----------- +False User rwx +False Group --- +False Other rwx + +PS C:\WINDOWS\system32> $dir1.Permissions + +Owner : Execute, Write, Read +Group : None +Other : Execute, Write, Read +StickyBit : False +ExtendedAcls : False + +PS C:\WINDOWS\system32> $dir1.Properties.Metadata + +Key Value +--- ----- +hdi_isfolder true +tag1 value1 +tag2 value2 + +PS C:\WINDOWS\system32> $dir1.Properties + +LastModified : 3/23/2020 9:15:56 AM +00:00 +CreatedOn : 3/23/2020 9:15:56 AM +00:00 +Metadata : {[hdi_isfolder, true], [tag1, value1], [tag2, value2]} +CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 +CopyStatusDescription : +CopyId : +CopyProgress : +CopySource : +CopyStatus : Pending +IsIncrementalCopy : False +LeaseDuration : Infinite +LeaseState : Available +LeaseStatus : Unlocked +ContentLength : 0 +ContentType : application/octet-stream +ETag : "0x8D7CF0ACBA35FA8" +ContentHash : +ContentEncoding : UDF12 +ContentDisposition : +ContentLanguage : +CacheControl : READ +AcceptRanges : bytes +IsServerEncrypted : True +EncryptionKeySha256 : +AccessTier : Cool +ArchiveStatus : +AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 +``` + +This command gets a directory from a Filesystem, and show the details. + +### Example 2: Get a file from a Filesystem +``` +PS C:\> Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/file1 False 1024 2020-03-23 09:20:37Z rwx---rwx $superuser $superuser +``` + +This command gets the details of a file from a Filesystem. + +## PARAMETERS + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be retrieved. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. +Not specify this parameter to get the root directory of the Filesystem. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ItemContent.md b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ItemContent.md new file mode 100644 index 000000000000..22331672e533 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzDataLakeGen2ItemContent.md @@ -0,0 +1,263 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azdatalakegen2itemcontent +schema: 2.0.0 +--- + +# Get-AzDataLakeGen2ItemContent + +## SYNOPSIS +Download a file. + +## SYNTAX + +### ReceiveManual (Default) +``` +Get-AzDataLakeGen2ItemContent [-FileSystem] [-Path] [-Destination ] [-CheckMd5] + [-Force] [-AsJob] [-Context ] [-DefaultProfile ] + [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] +``` + +### ItemPipeline +``` +Get-AzDataLakeGen2ItemContent -InputObject [-Destination ] [-CheckMd5] [-Force] + [-AsJob] [-Context ] [-DefaultProfile ] + [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Get-AzDataLakeGen2ItemContent** cmdlet download a file in a Filesystem in an Azure storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Download a file without prompt +``` +PS C:\> Get-AzDataLakeGen2ItemContent -FileSystem "filesystem1" -Path "dir1/file1" -Destination $localDestFile -Force + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser +``` + +This command downloads a file to a local file without prompt. + +### Example 2: Get a file, then pipeline to download the file to a local file +``` +PS C:\> Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Get-AzDataLakeGen2ItemContent -Destination $localDestFile + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser +``` + +This command first gets a file, then pipeline to download the file to a local file. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -CheckMd5 +check the md5sum + +```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 +``` + +### -ConcurrentTaskCount +The total amount of concurrent async tasks. +The default value is 10. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Destination +Destination local file path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Force +Force to overwrite the existing blob or file + +```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 +``` + +### -InputObject +Azure Datalake Gen2 Item Object to download. + +```yaml +Type: Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item +Parameter Sets: ItemPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be removed. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +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 + +### System.String + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Get-AzStorageAccount.md b/src/Storage/Storage.Management/help/Get-AzStorageAccount.md index b29db76b3e22..cec10f6c0e92 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageAccount.md @@ -25,6 +25,12 @@ Get-AzStorageAccount [-ResourceGroupName] [-Name] [-IncludeGeo [-DefaultProfile ] [] ``` +### BlobRestoreStatusParameterSet +``` +Get-AzStorageAccount [-ResourceGroupName] [-Name] [-IncludeBlobRestoreStatus] + [-DefaultProfile ] [] +``` + ## DESCRIPTION The **Get-AzStorageAccount** cmdlet gets a specified Storage account or all of the Storage accounts in a resource group or the subscription. @@ -51,6 +57,19 @@ PS C:\>Get-AzStorageAccount This command gets all of the Storage accounts in the subscription. +### Example 4: Get a Storage accounts with its blob restore status +``` +PS C:\> $account = Get-AzStorageAccount -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -IncludeBlobRestoreStatus + +PS C:\> $account.BlobRestoreStatus + +Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges +------ --------- ------------- ------------------------ --------------------- +InProgress a70cd4a1-f223-4c86-959f-cc13eb4795a8 2020-02-10T13:45:04.7155962Z [container1/blob1 -> container2/blob2] +``` + +This command gets a Storage accounts with its blob restore status, and show the blob restore status. + ## PARAMETERS ### -DefaultProfile @@ -68,6 +87,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -IncludeBlobRestoreStatus +Get the BlobRestoreStatus of the Storage account. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: BlobRestoreStatusParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -IncludeGeoReplicationStats Get the GeoReplicationStats of the Storage account. @@ -88,7 +122,7 @@ Specifies the name of the Storage account to get. ```yaml Type: System.String -Parameter Sets: AccountNameParameterSet +Parameter Sets: AccountNameParameterSet, BlobRestoreStatusParameterSet Aliases: StorageAccountName, AccountName Required: True @@ -115,7 +149,7 @@ Accept wildcard characters: False ```yaml Type: System.String -Parameter Sets: AccountNameParameterSet +Parameter Sets: AccountNameParameterSet, BlobRestoreStatusParameterSet Aliases: Required: True diff --git a/src/Storage/Storage.Management/help/Get-AzStorageAccountKey.md b/src/Storage/Storage.Management/help/Get-AzStorageAccountKey.md index b355a6cc9c37..1b833f3955ec 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageAccountKey.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageAccountKey.md @@ -1,4 +1,4 @@ ---- +--- external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml Module Name: Az.Storage ms.assetid: A57A9EFA-47AC-44D8-BFA7-CDE0E2A612B3 @@ -14,7 +14,7 @@ Gets the access keys for an Azure Storage account. ## SYNTAX ``` -Get-AzStorageAccountKey [-ResourceGroupName] [-Name] +Get-AzStorageAccountKey [-ResourceGroupName] [-Name] [-ListKerbKey] [-DefaultProfile ] [] ``` @@ -39,6 +39,13 @@ This command gets a specific key for a Storage account. This command works for A PS C:\>(Get-AzStorageAccountKey -ResourceGroupName "RG01" -AccountName "mystorageaccount").Key1 ``` +### Example 3: Lists the access keys for a Storage account, include the Kerberos keys (if active directory enabled) +``` +PS C:\>Get-AzStorageAccountKey -ResourceGroupName "RG01" -AccountName "mystorageaccount" -ListKerbKey +``` + +This command gets the keys for the specified Azure Storage account. + ## PARAMETERS ### -DefaultProfile @@ -56,6 +63,24 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ListKerbKey +Lists the Kerberos keys (if active directory enabled) for the specified storage account. +Kerberos key is generated per storage account for Azure Files identity based authentication either with Azure Active Directory Domain Service (Azure AD DS) or Active Directory Domain Service (AD DS). +It is used as the password of the identity registered in the domain service that represents the storage account. +Kerberos key does not provide access permission to perform any control or data plane read or write operations against the storage account. + +```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 +``` + ### -Name Specifies the name of the Storage account for which this cmdlet gets keys. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md index d73c07c083a0..2893531f0a53 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md @@ -39,9 +39,9 @@ The **Get-AzStorageBlobServiceProperty** cmdlet gets the service properties for ```powershell PS C:\> Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ------------------- ----------------- --------------------- ----------------------------- -------------------------- -myresourcegroup mystorageaccount 2018-03-28 False +StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled +------------------ ----------------- --------------------- ----------------------------- -------------------------- ------------------ +myresourcegroup mystorageaccount 2018-03-28 False False ``` This command gets the Blob services property of a specified Storage Account. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageEncryptionScope.md b/src/Storage/Storage.Management/help/Get-AzStorageEncryptionScope.md new file mode 100644 index 000000000000..3a529ddd5039 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzStorageEncryptionScope.md @@ -0,0 +1,183 @@ +--- +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-azstorageencryptionscope +schema: 2.0.0 +--- + +# Get-AzStorageEncryptionScope + +## SYNOPSIS +Get or list encryption scopes from a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Get-AzStorageEncryptionScope [-ResourceGroupName] [-StorageAccountName] + [-EncryptionScopeName ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObject +``` +Get-AzStorageEncryptionScope -StorageAccount [-EncryptionScopeName ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Get-AzStorageEncryptionScope** cmdlet gets or lists encryption scopes from a Storage account. + +## EXAMPLES + +### Example 1: Get a single encryption scope +``` +PS C:\> Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName $scopename + + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname +``` + +This command gets a single encryption scope. + +### Example 2: List all encryption scopes of a Storage account +``` +PS C:\> Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" + + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname +scope2 Enabled Microsoft.Storage +``` + +This command lists all encryption scopes of 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 +``` + +### -EncryptionScopeName +Azure Storage EncryptionScope name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: Name + +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 +``` + +### -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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Invoke-AzStorageAccountFailover.md b/src/Storage/Storage.Management/help/Invoke-AzStorageAccountFailover.md new file mode 100644 index 000000000000..dfa07c0a89d8 --- /dev/null +++ b/src/Storage/Storage.Management/help/Invoke-AzStorageAccountFailover.md @@ -0,0 +1,188 @@ +--- +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/invoke-Azstorageaccountfailover +schema: 2.0.0 +--- + +# Invoke-AzStorageAccountFailover + +## SYNOPSIS +Invokes failover of a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Invoke-AzStorageAccountFailover [-ResourceGroupName] [-Name] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObject +``` +Invoke-AzStorageAccountFailover -InputObject [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +Invokes failover of a Storage account. Failover request can be triggered for a storage account in case of availability issues. +The failover occurs from the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover. +Please understand the following impact to your storage account before you initiate the failover: +1.1. Please check the Last Sync Time using GET Blob Service Stats (https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats), GET Table Service Stats (https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.table.cloudtableclient.getservicestats?view=azure-dotnet) and GET Queue Service Stats (https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.queue.cloudqueueclient.getservicestats?view=azure-dotnet) for your account. This is the data you may lose if you initiate the failover. +2.After the failover, your storage account type will be converted to locally redundant storage(LRS). You can convert your account to use geo-redundant storage(GRS). +3.Once you re-enable GRS for your storage account, Microsoft will replicate data to your new secondary region. Replication time is dependent on the amount of data to replicate. Please note that there are bandwidth charges for the bootstrap. https://azure.microsoft.com/en-us/pricing/details/bandwidth/ + +## EXAMPLES + +### Example 1: Invoke failover of a Storage account +``` +PS C:\>$account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -IncludeGeoReplicationStats +PS C:\>$account.GeoReplicationStats + +Status LastSyncTime +------ ------------ +Live 11/13/2018 2:44:22 AM + +PS C:\>$job = Invoke-AzStorageAccountFailover -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Force -AsJob +PS C:\>$job | Wait-Job +``` + +This command check the last sync time of a Storage account then invokes failover of it, the secondary cluster will become primary after failover. Since failover takes a long time, suggest to run it in the backend with -Asjob parameter, and then wait for the job complete. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -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 +``` + +### -Force +Force to Failover the Account + +```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 +``` + +### -InputObject +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 +``` + +### -Name +Storage Account Name. + +```yaml +Type: System.String +Parameter Sets: AccountName +Aliases: StorageAccountName, AccountName + +Required: True +Position: 1 +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 +``` + +### -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 + +### System.String + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Move-AzDataLakeGen2Item.md b/src/Storage/Storage.Management/help/Move-AzDataLakeGen2Item.md new file mode 100644 index 000000000000..2e97f6a000b8 --- /dev/null +++ b/src/Storage/Storage.Management/help/Move-AzDataLakeGen2Item.md @@ -0,0 +1,232 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/move-azdatalakegen2item +schema: 2.0.0 +--- + +# Move-AzDataLakeGen2Item + +## SYNOPSIS +Move a file or directory to another a file or directory in same Storage account. + +## SYNTAX + +### ReceiveManual (Default) +``` +Move-AzDataLakeGen2Item [-FileSystem] [-Path] -DestFileSystem -DestPath + [-Force] [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### ItemPipeline +``` +Move-AzDataLakeGen2Item -InputObject -DestFileSystem -DestPath + [-Force] [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Move-AzDataLakeGen2Item** cmdlet moves a a file or directory to another a file or directory in same Storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Move a fold in same Filesystem +``` +PS C:\> Move-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" -DestFileSystem "filesystem1" -DestPath "dir3/" + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir3 True 2020-03-13 13:07:34Z rwxrw-rw- $superuser $superuser +``` + +This command move directory 'dir1' to directory 'dir3' in the same Filesystem. + +### Example 2: Move a file by pipeline, to another Filesystem in the same Storage account without prompt +``` +PS C:\> Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Move-AzDataLakeGen2Item -DestFileSystem "filesystem2" -DestPath "dir2/file2" -Force + + FileSystem Name: filesystem2 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir2/file2 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser +``` + +This command move file 'dir1/file1' in 'filesystem1' to file 'dir2/file2' in 'filesystem2' in the same Storage account without prompt. + +## PARAMETERS + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestFileSystem +Dest FileSystem name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestPath +Dest Blob path + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Force +Force to over write the destination. + +```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 +``` + +### -InputObject +Azure Datalake Gen2 Item Object to move from. + +```yaml +Type: Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item +Parameter Sets: ItemPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be move from. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +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 + +### System.String + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzDataLakeGen2Item.md b/src/Storage/Storage.Management/help/New-AzDataLakeGen2Item.md new file mode 100644 index 000000000000..86a6ca1530e4 --- /dev/null +++ b/src/Storage/Storage.Management/help/New-AzDataLakeGen2Item.md @@ -0,0 +1,315 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azdatalakegen2item +schema: 2.0.0 +--- + +# New-AzDataLakeGen2Item + +## SYNOPSIS +Create a file or directory in a filesystem. + +## SYNTAX + +### File (Default) +``` +New-AzDataLakeGen2Item [-FileSystem] [-Path] -Source [-Umask ] + [-Permission ] [-Property ] [-Metadata ] [-Force] [-AsJob] + [-Context ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] +``` + +### Directory +``` +New-AzDataLakeGen2Item [-FileSystem] [-Path] [-Directory] [-Umask ] + [-Permission ] [-Property ] [-Metadata ] [-Force] [-AsJob] + [-Context ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **New-AzDataLakeGen2Item** cmdlet creates a file or directory in a Filesystem in an Azure storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Create a directory with specified permission, Umask, properties, and metadata +``` +PS C:\>New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/" -Directory -Permission rwxrwxrwx -Umask ---rw---- -Property @{"CacheControl" = "READ"; "ContentDisposition" = "True"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" } + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/dir2 True 2020-03-23 09:15:56Z rwx---rwx $superuser $superuser +``` + +This command creates a directory with specified Permission, Umask, properties, and metadata + +### Example 2: Create(upload) a data lake file from a local source file, and the cmdlet runs in background +``` +PS C:\> $task = New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/file1" -Source "c:\sourcefile.txt" -Force -asjob +PS C:\> $task | Wait-Job +PS C:\> $task.Output + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/dir2/file1 False 14400000 2020-03-23 09:19:13Z rw-r----- $superuser $superuser +``` + +This command creates(upload) a data lake file from a local source file, and the cmdlet runs in background. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -ConcurrentTaskCount +The total amount of concurrent async tasks. The default value is 10. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Directory +Indicates that this new item is a directory and not a file. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: Directory +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Force +If passed then new item is created without any prompt + +```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 +``` + +### -Metadata +Specifies metadata for the created directory or file. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be create. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Permission +Sets POSIX access permissions for the file owner, the file owning group, and others. +Each class may be granted read, write, or execute permission. +Symbolic (rwxrw-rw-) is supported. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Property +Specifies properties for the created directory or file. +The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. +The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Source +Specify the local source file path which will be upload to a Datalake Gen2 file. + +```yaml +Type: System.String +Parameter Sets: File +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Umask +When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. +The resulting permission is given by p & ^u, where p is the permission and u is the umask. +Symbolic (rwxrw-rw-) is supported. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +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 + +### System.String + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md b/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md index 7d99cb2f1555..3bbba992d9e8 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md @@ -1,4 +1,4 @@ ---- +--- 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-azrmstoragecontainer @@ -19,12 +19,26 @@ New-AzRmStorageContainer [-ResourceGroupName] [-StorageAccountName] ] ``` +### AccountNameEncryptionScope +``` +New-AzRmStorageContainer [-ResourceGroupName] [-StorageAccountName] -Name + -DefaultEncryptionScope -PreventEncryptionScopeOverride [-PublicAccess ] + [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ### AccountObject ``` New-AzRmStorageContainer -StorageAccount -Name [-PublicAccess ] [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` +### AccountObjectEncryptionScope +``` +New-AzRmStorageContainer -StorageAccount -Name -DefaultEncryptionScope + -PreventEncryptionScopeOverride [-PublicAccess ] [-Metadata ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ## DESCRIPTION The **New-AzRmStorageContainer** cmdlet creates a Storage blob container @@ -45,8 +59,45 @@ PS C:\>New-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "m This command creates a Storage blob container with Storage account object and container name, with public access as Blob. +### Example 3: Create a storage container with EncryptionScope setting +``` +PS C:\> $c = New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name testcontainer -DefaultEncryptionScope "testscope" -PreventEncryptionScopeOverride $true + +PS C:\> $c + + ResourceGroupName: myResourceGroup, StorageAccountName: myStorageAccount + +Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy +---- ------------ ------------ ------------ --------------------- +testcontainer False False + +PS C:\> $c.DefaultEncryptionScope +testscope + +PS C:\> $c.DenyEncryptionScopeOverride +True +``` + +This command creates a storage container with a defalt encryptionScope, and blocks override of encryption scope from the container default. +Then show the related container properties. + ## PARAMETERS +### -DefaultEncryptionScope +Default the container to use specified encryption scope for all writes. + +```yaml +Type: System.String +Parameter Sets: AccountNameEncryptionScope, AccountObjectEncryptionScope +Aliases: + +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. @@ -92,6 +143,21 @@ Accept pipeline input: True (ByPropertyName, ByValue) Accept wildcard characters: False ``` +### -PreventEncryptionScopeOverride +Block override of encryption scope from the container default. + +```yaml +Type: System.Boolean +Parameter Sets: AccountNameEncryptionScope, AccountObjectEncryptionScope +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -PublicAccess Container PublicAccess @@ -113,7 +179,7 @@ Resource Group Name. ```yaml Type: System.String -Parameter Sets: AccountName +Parameter Sets: AccountName, AccountNameEncryptionScope Aliases: Required: True @@ -128,7 +194,7 @@ Storage account object ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount -Parameter Sets: AccountObject +Parameter Sets: AccountObject, AccountObjectEncryptionScope Aliases: Required: True @@ -143,7 +209,7 @@ Storage Account Name. ```yaml Type: System.String -Parameter Sets: AccountName +Parameter Sets: AccountName, AccountNameEncryptionScope Aliases: AccountName Required: True @@ -184,7 +250,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/New-AzStorageAccount.md b/src/Storage/Storage.Management/help/New-AzStorageAccount.md index 995d29c9175d..f9ed19095843 100644 --- a/src/Storage/Storage.Management/help/New-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/New-AzStorageAccount.md @@ -13,6 +13,7 @@ Creates a Storage account. ## SYNTAX +### AzureActiveDirectoryDomainServicesForFile (Default) ``` New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] [-Location] [-Kind ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] @@ -22,6 +23,19 @@ New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] < [-DefaultProfile ] [] ``` +### ActiveDirectoryDomainServicesForFile +``` +New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] [-Location] + [-Kind ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] + [-Tag ] [-EnableHttpsTrafficOnly ] [-AssignIdentity] [-NetworkRuleSet ] + [-EnableHierarchicalNamespace ] [-EnableLargeFileShare] + [-EnableActiveDirectoryDomainServicesForFile ] [-ActiveDirectoryDomainName ] + [-ActiveDirectoryNetBiosDomainName ] [-ActiveDirectoryForestName ] + [-ActiveDirectoryDomainGuid ] [-ActiveDirectoryDomainSid ] + [-ActiveDirectoryAzureStorageSid ] [-AsJob] [-EncryptionKeyTypeForTable ] + [-EncryptionKeyTypeForQueue ] [-DefaultProfile ] [] +``` + ## DESCRIPTION The **New-AzStorageAccount** cmdlet creates an Azure Storage account. @@ -72,7 +86,41 @@ This command creates a Storage account with Hierarchical Namespace enabled. PS C:\>New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableAzureActiveDirectoryDomainServicesForFile $true -EnableLargeFileShare ``` -This command creates a Storage account with Azure Files AAD DS Authentication, and enable large file share.. +This command creates a Storage account with Azure Files AAD DS Authentication, and enable large file share. + +### Example 7: Create a Storage account with enable Files Active Directory Domain Service Authentication. +``` +PS C:\>New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableActiveDirectoryDomainServicesForFile $true ` + -ActiveDirectoryDomainName "mydomain.com" ` + -ActiveDirectoryNetBiosDomainName "mydomain.com" ` + -ActiveDirectoryForestName "mydomain.com" ` + -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` + -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` + -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" +``` + +This command creates a Storage account withenable Files Active Directory Domain Service Authentication. + +### Example 8: Create a Storage account with Queue and Table Service use account-scoped encryption key. +``` +PS C:\>New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EncryptionKeyTypeForTable Account -EncryptionKeyTypeForQueue Account + +PS C:\>$account = get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountName + +PS C:\>$account.Encryption.Services.Queue + +Enabled LastEnabledTime KeyType +------- --------------- ------- + True 1/9/2020 6:09:11 AM Account + +PS C:\>$account.Encryption.Services.Table + +Enabled LastEnabledTime KeyType +------- --------------- ------- + True 1/9/2020 6:09:11 AM Account +``` + +This command creates a Storage account with Queue and Table Service use account-scoped encryption key, so Queue and Table will use same encryption key with Blob and File service. Then get the Storage account properties, and view the encryption keytype of Queue and Table Service. ### Example 8: Create a Storage account with Queue and Table Service use account-scoped encryption key. ``` @@ -117,6 +165,96 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ActiveDirectoryAzureStorageSid +Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainGuid +Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainName +Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainSid +Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryForestName +Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryNetBiosDomainName +Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -AsJob Run cmdlet in the background @@ -178,12 +316,27 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableActiveDirectoryDomainServicesForFile +Enable Azure Files Active Directory Domain Service Authentication for the storage account. + +```yaml +Type: System.Boolean +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -EnableAzureActiveDirectoryDomainServicesForFile Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account. ```yaml Type: System.Boolean -Parameter Sets: (All) +Parameter Sets: AzureActiveDirectoryDomainServicesForFile Aliases: Required: False @@ -369,12 +522,14 @@ The acceptable values for this parameter are: - Standard_RAGRS. Read access geo-redundant storage. - Premium_LRS. Premium locally-redundant storage. - Premium_ZRS. Premium zone-redundant storage. +- Standard_GZRS - Geo-redundant zone-redundant storage. +- Standard_RAGZRS - Read access geo-redundant zone-redundant storage. ```yaml Type: System.String Parameter Sets: (All) Aliases: StorageAccountType, AccountType, Type -Accepted values: Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS, Premium_ZRS +Accepted values: Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS Required: True Position: 2 @@ -415,7 +570,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/New-AzStorageAccountKey.md b/src/Storage/Storage.Management/help/New-AzStorageAccountKey.md index 4a8c30ba4d07..030c4e2d3b2b 100644 --- a/src/Storage/Storage.Management/help/New-AzStorageAccountKey.md +++ b/src/Storage/Storage.Management/help/New-AzStorageAccountKey.md @@ -52,12 +52,14 @@ Specifies which key to regenerate. The acceptable values for this parameter are: - key1 - key2 +- kerb1 +- kerb2 ```yaml Type: System.String Parameter Sets: (All) Aliases: -Accepted values: key1, key2 +Accepted values: key1, key2, kerb1, kerb2 Required: True Position: 2 diff --git a/src/Storage/Storage.Management/help/New-AzStorageBlobRangeToRestore.md b/src/Storage/Storage.Management/help/New-AzStorageBlobRangeToRestore.md new file mode 100644 index 000000000000..0646affb3f83 --- /dev/null +++ b/src/Storage/Storage.Management/help/New-AzStorageBlobRangeToRestore.md @@ -0,0 +1,117 @@ +--- +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-azstorageblobrangetorestore +schema: 2.0.0 +--- + +# New-AzStorageBlobRangeToRestore + +## SYNOPSIS +Creates a Blob Range object to restores a Storage account. + +## SYNTAX + +``` +New-AzStorageBlobRangeToRestore [-StartRange ] [-EndRange ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **New-AzStorageBlobRangeToRestore** cmdlet creates a Blob range object, which can be used in Restore-AzStorageBlobRange. + +## EXAMPLES + +### Example 1: Creates a blob range to restore +```powershell +PS C:\> $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 +``` + +This command creates a blob range to restore, which starts at container1/blob1 (include), and ends at container2/blob2 (exclude). + +### Example 2: Creates a blob range which will restore from first blob in alphabetical order, to a specific blob (exclude) +```powershell +PS C:\> $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange container2/blob2 +``` + +This command creates a blob range which will restore from first blob of alphabetical order, to a specific blob container2/blob2 (exclude) + +### Example 3: Creates a blob range which will restore from a specific blob (include), to the last blob in alphabetical order +```powershell +PS C:\> $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange "" +``` + +This command creates a blob range which will restore from a specific blob container1/blob1 (include), to the last blob in alphabetical order. + +### Example 4: Creates a blob range which will restore all blobs +```powershell +PS C:\> $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange "" +``` + +This command creates a blob range which will restore all blobs. + +## 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 +``` + +### -EndRange +Specify the blob restore End range. +End range will be excluded in restore blobs. +Set it as empty strng to restore to the end. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartRange +Specify the blob restore start range. +Start range will be included in restore blobs. +Set it as empty string to restore from begining. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 + +### None + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzStorageEncryptionScope.md b/src/Storage/Storage.Management/help/New-AzStorageEncryptionScope.md new file mode 100644 index 000000000000..c1af4826c9aa --- /dev/null +++ b/src/Storage/Storage.Management/help/New-AzStorageEncryptionScope.md @@ -0,0 +1,240 @@ +--- +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-azstorageencryptionscope +schema: 2.0.0 +--- + +# New-AzStorageEncryptionScope + +## SYNOPSIS +Creates an encryption scope for a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +New-AzStorageEncryptionScope [-ResourceGroupName] [-StorageAccountName] + -EncryptionScopeName [-StorageEncryption] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +### AccountNameKeyVault +``` +New-AzStorageEncryptionScope [-ResourceGroupName] [-StorageAccountName] + -EncryptionScopeName [-KeyvaultEncryption] -KeyUri + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObject +``` +New-AzStorageEncryptionScope -StorageAccount -EncryptionScopeName + [-StorageEncryption] [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObjectKeyVault +``` +New-AzStorageEncryptionScope -StorageAccount -EncryptionScopeName + [-KeyvaultEncryption] -KeyUri [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **New-AzStorageEncryptionScope** cmdlet creates an encryption scope for a Storage account. + +## EXAMPLES + +### Example 1: Create an encryption scope with Storage Encryption +``` +PS C:\> New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Enabled Microsoft.Storage +``` + +This command creates an encryption scope with Storage Encryption. + +### Example 2: Create an encryption scope with Keyvault Encryption +``` +PS C:\> New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 +``` + +This command creates an encryption scope with Keyvault Encryption. +The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. + +## 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 +``` + +### -EncryptionScopeName +Azure Storage EncryptionScope name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: Name + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyUri +The key Uri + +```yaml +Type: System.String +Parameter Sets: AccountNameKeyVault, AccountObjectKeyVault +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyvaultEncryption +Create encryption scope with keySource as Microsoft.Keyvault + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountNameKeyVault, AccountObjectKeyVault +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource Group Name. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountNameKeyVault +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, AccountObjectKeyVault +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, AccountNameKeyVault +Aliases: AccountName + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageEncryption +Create encryption scope with keySource as Microsoft.Storage. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Remove-AzDataLakeGen2Item.md b/src/Storage/Storage.Management/help/Remove-AzDataLakeGen2Item.md new file mode 100644 index 000000000000..28c226931ca7 --- /dev/null +++ b/src/Storage/Storage.Management/help/Remove-AzDataLakeGen2Item.md @@ -0,0 +1,227 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azdatalakegen2item +schema: 2.0.0 +--- + +# Remove-AzDataLakeGen2Item + +## SYNOPSIS +Remove a file or directory. + +## SYNTAX + +### ReceiveManual (Default) +``` +Remove-AzDataLakeGen2Item [-FileSystem] [-Path] [-Force] [-AsJob] [-PassThru] + [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### ItemPipeline +``` +Remove-AzDataLakeGen2Item -InputObject [-Force] [-AsJob] [-PassThru] + [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Remove-AzDataLakeGen2Item** cmdlet removes a file or directory from a Storage account. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Removes a directory +``` +PS C:\>Remove-AzDataLakeGen2tem -FileSystem "filesystem1" -Path "dir1/" +``` + +This command removes a directory from a Filesystem. + +### Example 2: Removes a file without prompt +``` +PS C:\>Remove-AzDataLakeGen2tem -FileSystem "filesystem1" -Path "dir1/file1" -Force +``` + +This command removes a directory from a Filesystem, without prompt. + +### Example 3: Remove all items in a Filesystem with pipeline +``` +PS C:\>Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" | Remove-AzDataLakeGen2Item -Force +``` + +This command removes all items in a Filesystem with pipeline. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Force +Force to remove the Filesystem and all content in 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 +``` + +### -InputObject +Azure Datalake Gen2 Item Object to remove. + +```yaml +Type: Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item +Parameter Sets: ItemPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Return whether the specified Filesystem is successfully removed + +```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 +``` + +### -Path +The path in the specified Filesystem that should be removed. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: True (ByValue) +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 + +### System.String + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### System.Boolean + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Restore-AzStorageBlobRange.md b/src/Storage/Storage.Management/help/Restore-AzStorageBlobRange.md new file mode 100644 index 000000000000..30d445a45ebb --- /dev/null +++ b/src/Storage/Storage.Management/help/Restore-AzStorageBlobRange.md @@ -0,0 +1,245 @@ +--- +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/restore-azstorageblobrange +schema: 2.0.0 +--- + +# Restore-AzStorageBlobRange + +## SYNOPSIS +Restores a Storage account for specific blob ranges. + +## SYNTAX + +### AccountName (Default) +``` +Restore-AzStorageBlobRange [-ResourceGroupName] [-StorageAccountName] + -TimeToRestore [-BlobRestoreRange ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountResourceId +``` +Restore-AzStorageBlobRange [-ResourceId] -TimeToRestore + [-BlobRestoreRange ] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +### AccountObject +``` +Restore-AzStorageBlobRange -StorageAccount -TimeToRestore + [-BlobRestoreRange ] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION +The **Restore-AzStorageBlobRange** cmdlet restores blobs in a Storage account for specific blob ranges. +The start range is included, and the end range is excluded in blob restore. + +## EXAMPLES + +### Example 1: Restores blobs in a Storage account with specific blob ranges +```powershell +PS C:\> $range1 = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 +PS C:\> $range2 = New-AzStorageBlobRangeToRestore -StartRange container3/blob3 -EndRange container4/blob4 +PS C:\> Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddDays(-1) -BlobRestoreRange $range1,$range2 + +Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges +------ --------- ------------- ------------------------ --------------------- +Complete 6ca55a8b-fca0-461a-8e4c-13927a9707e6 2020-02-10T13:58:44.6841810Z [container1/blob1 -> container2/blob2,...] +``` + +This command first creates 2 blob ranges, then restores blobs in a Storage account with the 2 blob ranges from 1 day ago. + +### Example 2: Restores all blobs in a Storage account in the backend +```powershell +PS C:\> $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange "" +PS C:\> $job = Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddMinutes(-30) -BlobRestoreRange $range -asjob +PS C:\> $job | Wait-Job +``` + +This command first creates a blob range which can restore all blobs, then restores all blobs in a Storage account from 30 minutes ago. Since restore blobs might take a long time, run it in the backend with -Asjob parameter, and then wait for the job complete. + +### Example 3: Restores blobs by input blob ranges directly +```powershell +PS C:\> Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" ` + -TimeToRestore (Get-Date).AddSeconds(-1) ` + -BlobRestoreRange @{StartRange="aaa/abc";EndRange="bbb/abc"},@{StartRange="bbb/acc";EndRange=""} + +Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges +------ --------- ------------- ------------------------ --------------------- +Complete d66d1d02-6e48-47ef-b516-0155dd8319c6 2020-02-10T14:17:46.8189116Z [aaa/abc -> bbb/abc,...] +``` + +This command restores blobs in a Storage account from 1 day ago, by input 2 blob ranges directly to the Restore-AzStorageBlobRange cmdlet. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```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 +``` + +### -BlobRestoreRange +The blob range to Restore. +If not specify this parameter, will restore all blobs. + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] +Parameter Sets: (All) +Aliases: + +Required: False +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 +``` + +### -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 +``` + +### -ResourceId +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 +``` + +### -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 +``` + +### -TimeToRestore +The Time to Restore Blob. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +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 + +### System.String + +### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Set-AzDataLakeGen2ItemACLObject.md b/src/Storage/Storage.Management/help/Set-AzDataLakeGen2ItemACLObject.md new file mode 100644 index 000000000000..a3cbb0c6c8e9 --- /dev/null +++ b/src/Storage/Storage.Management/help/Set-AzDataLakeGen2ItemACLObject.md @@ -0,0 +1,165 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azdatalakegen2itemaclobject +schema: 2.0.0 +--- + +# Set-AzDataLakeGen2ItemAclObject + +## SYNOPSIS +Creates/Updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. + +## SYNTAX + +``` +Set-AzDataLakeGen2ItemAclObject [-EntityId ] [-DefaultScope] -Permission + [-InputObject ] -AccessControlType [] +``` + +## DESCRIPTION +The **Set-AzDataLakeGen2ItemAclObject** cmdlet creates/updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. +If the new ACL entry with same AccessControlType/EntityId/DefaultScope not exist in the input ACL, will create a new ACL entry, else update permission of existing ACL entry. + +## EXAMPLES + +### Example 1: Create an ACL object with 3 ACL entry, and update ACL on a directory +``` +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl +PS C:\>Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/dir3" -ACL $acl + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser +``` + +This command creates an ACL object with 3 ACL entries (use -InputObject parameter to add acl entry to existing acl object), and updates ACL on a directory. + +### Example 2: Create an ACL object with 4 ACL entries, and update permission of an existing ACL entry +``` +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rwx -InputObject $acl +PS C:\>$acl + +DefaultScope AccessControlType EntityId Permissions +------------ ----------------- -------- ----------- +True User rwx +False Group rw- +False Other rw- +False User ********-****-****-****-************ rwx + +PS C:\>$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl +PS C:\>$acl + +DefaultScope AccessControlType EntityId Permissions +------------ ----------------- -------- ----------- +True User rwx +False Group rw- +False Other rw- +False User ********-****-****-****-************ r-x +``` + +This command first creates an ACL object with 4 ACL entries, then run the cmdlet again with different permission but same AccessControlType/EntityId/DefaultScope of an existing ACL entry. +Then the permission of the ACL entry is updated, but no new ACL entry is added. + +## PARAMETERS + +### -AccessControlType +There are four types: "user" grants rights to the owner or a named user, "group" grants rights to the owning group or a named group, "mask" restricts rights granted to named users and the members of groups, and "other" grants rights to all users not found in any of the other entries. + +```yaml +Type: Azure.Storage.Files.DataLake.Models.AccessControlType +Parameter Sets: (All) +Aliases: +Accepted values: User, Group, Mask, Other + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultScope +Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL. + +```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 +``` + +### -EntityId +The user or group identifier. +It is omitted for entries of AccessControlType "mask" and "other". +The user or group identifier is also omitted for the owner and owning group. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +If input the PSPathAccessControlEntry\[\] object, will add the new ACL as a new element of the input PSPathAccessControlEntry\[\] object. + +```yaml +Type: Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Permission +The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. +If access is not granted, the '-' character is used to denote that the permission is denied. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Set-AzStorageAccount.md b/src/Storage/Storage.Management/help/Set-AzStorageAccount.md index da4650ec535b..e3a908389ca8 100644 --- a/src/Storage/Storage.Management/help/Set-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/Set-AzStorageAccount.md @@ -27,12 +27,24 @@ Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-S ``` Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-SkuName ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] - [-EnableHttpsTrafficOnly ] [-KeyvaultEncryption] -KeyName -KeyVersion + [-EnableHttpsTrafficOnly ] [-KeyvaultEncryption] -KeyName [-KeyVersion ] -KeyVaultUri [-AssignIdentity] [-NetworkRuleSet ] [-UpgradeToStorageV2] [-EnableAzureActiveDirectoryDomainServicesForFile ] [-EnableLargeFileShare] [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` +### ActiveDirectoryDomainServicesForFile +``` +Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-SkuName ] + [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] + [-EnableHttpsTrafficOnly ] [-AssignIdentity] [-NetworkRuleSet ] + [-UpgradeToStorageV2] [-EnableLargeFileShare] -EnableActiveDirectoryDomainServicesForFile + [-ActiveDirectoryDomainName ] [-ActiveDirectoryNetBiosDomainName ] + [-ActiveDirectoryForestName ] [-ActiveDirectoryDomainGuid ] + [-ActiveDirectoryDomainSid ] [-ActiveDirectoryAzureStorageSid ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ## DESCRIPTION The **Set-AzStorageAccount** cmdlet modifies an Azure Storage account. You can use this cmdlet to modify the account type, update a customer domain, or set tags on a Storage account. @@ -117,11 +129,39 @@ The command upgrade a Storage account with Kind "Storage" or "BlobStorage" to "S ### Example 10: Update a Storage account by enable Azure Files AAD DS Authentication. ``` -PS C:\> Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -EnableAzureActiveDirectoryDomainServicesForFile $true +PS C:\> $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -EnableAzureActiveDirectoryDomainServicesForFile $true PS + +PS C:\> $account.AzureFilesIdentityBasedAuth.DirectoryServiceOptions +AADDS ``` The command update a Storage account by enable Azure Files AAD DS Authentication. +### Example 11: Update a Storage account by enable Files Active Directory Domain Service Authentication, and then show the File Identity Based authentication setting +``` +PS C:\> $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -EnableActiveDirectoryDomainServicesForFile $true ` + -ActiveDirectoryDomainName "mydomain.com" ` + -ActiveDirectoryNetBiosDomainName "mydomain.com" ` + -ActiveDirectoryForestName "mydomain.com" ` + -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` + -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` + -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" + +PS C:\> $account.AzureFilesIdentityBasedAuth.DirectoryServiceOptions +AD + +PS C:\> $account.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties + +DomainName : mydomain.com +NetBiosDomainName : mydomain.com +ForestName : mydomain.com +DomainGuid : 12345678-1234-1234-1234-123456789012 +DomainSid : S-1-5-21-1234567890-1234567890-1234567890 +AzureStorageSid : S-1-5-21-1234567890-1234567890-1234567890-1234 +``` + +The command updates a Storage account by enable Azure Files Active Directory Domain Service Authentication, and then shows the File Identity Based authentication setting + ## PARAMETERS ### -AccessTier @@ -145,6 +185,96 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ActiveDirectoryAzureStorageSid +Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainGuid +Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainName +Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryDomainSid +Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryForestName +Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ActiveDirectoryNetBiosDomainName +Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. + +```yaml +Type: System.String +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -AsJob Run cmdlet in the background @@ -205,12 +335,27 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableActiveDirectoryDomainServicesForFile +Enable Azure Files Active Directory Domain Service Authentication for the storage account. + +```yaml +Type: System.Boolean +Parameter Sets: ActiveDirectoryDomainServicesForFile +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -EnableAzureActiveDirectoryDomainServicesForFile -Enable Azure Files Azure Active Directory Domain Service Authentication for the storage account. +Enable Azure Files Active Directory Domain Service Authentication for the storage account. ```yaml Type: System.Boolean -Parameter Sets: (All) +Parameter Sets: StorageEncryption, KeyvaultEncryption Aliases: Required: False @@ -322,7 +467,7 @@ Type: System.String Parameter Sets: KeyvaultEncryption Aliases: -Required: True +Required: False Position: Named Default value: None Accept pipeline input: False @@ -382,6 +527,8 @@ The acceptable values for this parameter are: - Standard_GRS - Geo-redundant storage. - Standard_RAGRS - Read access geo-redundant storage. - Premium_LRS - Premium locally-redundant storage. +- Standard_GZRS - Geo-redundant zone-redundant storage. +- Standard_RAGZRS - Read access geo-redundant zone-redundant storage. You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. @@ -389,7 +536,7 @@ You cannot change other account types to Standard_ZRS or Premium_LRS. Type: System.String Parameter Sets: (All) Aliases: StorageAccountType, AccountType, Type -Accepted values: Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS +Accepted values: Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS, Standard_GZRS, Standard_RAGZRS Required: False Position: Named @@ -491,7 +638,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Update-AzDataLakeGen2Item.md b/src/Storage/Storage.Management/help/Update-AzDataLakeGen2Item.md new file mode 100644 index 000000000000..fd9eda2f3e36 --- /dev/null +++ b/src/Storage/Storage.Management/help/Update-AzDataLakeGen2Item.md @@ -0,0 +1,374 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azdatalakegen2item +schema: 2.0.0 +--- + +# Update-AzDataLakeGen2Item + +## SYNOPSIS +Update a file or directory on properties, metadata, permission, ACL, and owner. + +## SYNTAX + +### ReceiveManual (Default) +``` +Update-AzDataLakeGen2Item [-FileSystem] [-Path ] [-Permission ] [-Owner ] + [-Group ] [-Property ] [-Metadata ] [-Acl ] + [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### ItemPipeline +``` +Update-AzDataLakeGen2Item -InputObject [-Permission ] [-Owner ] + [-Group ] [-Property ] [-Metadata ] [-Acl ] + [-Context ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Update-AzDataLakeGen2Item** cmdlet updates a file or directory on properties, metadata, permission, ACL, and owner. +This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". + +## EXAMPLES + +### Example 1: Create an ACL object with 3 ACL entry, and update ACL to all items in a Filesystem recursively +``` +PS C:\>$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx +PS C:\>$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl +PS C:\>$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl +PS C:\>Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Recurse | Update-AzDataLakeGen2Item -ACL $acl + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1 True 2020-03-13 13:07:34Z rwxrw-rw- $superuser $superuser +dir1/file1 False 1024 2020-03-23 09:29:18Z rwxrw-rw- $superuser $superuser +dir2 True 2020-03-23 09:28:36Z rwxrw-rw- $superuser $superuser +``` + +This command first creates an ACL object with 3 acl entry (use -InputObject parameter to add acl entry to existing acl object), then get all items in a filesystem and update acl on the items. + +### Example 2: Update all properties on a file, and show them +``` +PS C:\> $file = Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" ` + -Acl $acl ` + -Property @{"ContentType" = "image/jpeg"; "ContentMD5" = "i727sP7HigloQDsqadNLHw=="; "ContentEncoding" = "UDF8"; "CacheControl" = "READ"; "ContentDisposition" = "True"; "ContentLanguage" = "EN-US"} ` + -Metadata @{"tag1" = "value1"; "tag2" = "value2" } ` + -Permission rw-rw-rwx ` + -Owner '$superuser' ` + -Group '$superuser' + +PS C:\> $file + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/file1 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser + +PS C:\> $file.ACL + +DefaultScope AccessControlType EntityId Permissions +------------ ----------------- -------- ----------- +False User rwx +False Group rw- +False Other rw- + +PS C:\> $file.Permissions + +Owner : Execute, Write, Read +Group : Write, Read +Other : Write, Read +StickyBit : False +ExtendedAcls : False + +PS C:\> $file.Properties.Metadata + +Key Value +--- ----- +tag2 value2 +tag1 value1 + +PS C:\> $file.Properties + + +LastModified : 3/23/2020 9:57:33 AM +00:00 +CreatedOn : 3/23/2020 9:29:18 AM +00:00 +Metadata : {[tag2, value2], [tag1, value1]} +CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 +CopyStatusDescription : +CopyId : +CopyProgress : +CopySource : +CopyStatus : Pending +IsIncrementalCopy : False +LeaseDuration : Infinite +LeaseState : Available +LeaseStatus : Unlocked +ContentLength : 1024 +ContentType : image/jpeg +ETag : "0x8D7CF109B9878CC" +ContentHash : {139, 189, 187, 176...} +ContentEncoding : UDF8 +ContentDisposition : True +ContentLanguage : EN-US +CacheControl : READ +AcceptRanges : bytes +IsServerEncrypted : True +EncryptionKeySha256 : +AccessTier : Cool +ArchiveStatus : +AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 +``` + +This command updates all properties on a file (ACL, permission,owner, group, metadata, property can be updated with any conbination), and show them in Powershell console. + +### Example 3: Add an ACL entry to a directory +``` +## Get the origin ACL +PS C:\> $acl = (Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/').ACL + +# Update permission of a new ACL entry (if ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry) +PS C:\> $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rw- -InputObject $acl + +# set the new acl to the directory +PS C:\> update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/' -ACL $acl + + FileSystem Name: filesystem1 + +Path IsDirectory Length LastModified Permissions Owner Group +---- ----------- ------ ------------ ----------- ----- ----- +dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser +``` + +This command gets ACL from a directory, updates/adds an ACL entry, and sets back to the directory. +If ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry. + +## PARAMETERS + +### -Acl +Sets POSIX access control rights on files and directories. +Create this object with New-AzDataLakeGen2ItemAclObject. + +```yaml +Type: Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FileSystem +FileSystem name + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Group +Sets the owning group of the blob. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Azure Datalake Gen2 Item Object to update + +```yaml +Type: Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item +Parameter Sets: ItemPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Metadata +Specifies metadata for the directory or file. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Owner +Sets the owner of the blob. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Path +The path in the specified Filesystem that should be updated. +Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. +Not specify this parameter will update the root directory of the Filesystem. + +```yaml +Type: System.String +Parameter Sets: ReceiveManual +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Permission +Sets POSIX access permissions for the file owner, the file owning group, and others. +Each class may be granted read, write, or execute permission. +Symbolic (rwxrw-rw-) is supported. +Invalid in conjunction with Acl. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Property +Specifies properties for the directory or file. +The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. +The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +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 + +### System.String + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageContainer.md b/src/Storage/Storage.Management/help/Update-AzRmStorageContainer.md index 1f0fa036ed7a..6e2a37413dc0 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageContainer.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageContainer.md @@ -1,4 +1,4 @@ ---- +--- 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/update-azrmstoragecontainer @@ -212,7 +212,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md b/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md index 6a4193a6fe8c..4feb108f33fd 100644 --- a/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md +++ b/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md @@ -15,20 +15,22 @@ Modifies the service properties for the Azure Storage Blob service. ### AccountName (Default) ``` Update-AzStorageBlobServiceProperty [-ResourceGroupName] [-StorageAccountName] - [-DefaultServiceVersion ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-DefaultServiceVersion ] [-EnableChangeFeed ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` Update-AzStorageBlobServiceProperty -StorageAccount [-DefaultServiceVersion ] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-EnableChangeFeed ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] ``` ### BlobServicePropertiesResourceId ``` Update-AzStorageBlobServiceProperty [-ResourceId] [-DefaultServiceVersion ] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-EnableChangeFeed ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -40,13 +42,27 @@ The **Update-AzStorageBlobServiceProperty** cmdlet modifies the service properti ``` C:\PS> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -DefaultServiceVersion 2018-03-28 -StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ------------------- ----------------- --------------------- ----------------------------- -------------------------- -myresourcegroup mystorageaccount 2018-03-28 False +StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled +------------------ ----------------- --------------------- ----------------------------- -------------------------- ------------------ +myresourcegroup mystorageaccount 2018-03-28 False False ``` This command sets the DefaultServiceVersion of Blob Service to 2018-03-28. +### Example 2: Enable Changefeed on Blob service of a Storage account +``` +C:\PS> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableChangeFeed $true + +StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled +------------------ ----------------- --------------------- ----------------------------- -------------------------- ------------------ +myresourcegroup mystorageaccount 2018-03-28 False True +``` + +This command enables Changefeed on Blob service of a Storage account +Change feed support in Azure Blob Storage works by listening to a GPv2 or Blob storage account for any blob level creation, modification, or deletion events. +It then outputs an ordered log of events for the blobs stored in the $blobchangefeed container within the storage account. +The serialized changes are persisted as an Apache Avro file and can be processed asynchronously and incrementally. + ## PARAMETERS ### -DefaultProfile @@ -79,6 +95,24 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableChangeFeed +Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. +Change feed support in Azure Blob Storage works by listening to a GPv2 or Blob storage account for any blob level creation, modification, or deletion events. +It then outputs an ordered log of events for the blobs stored in the $blobchangefeed container within the storage account. +The serialized changes are persisted as an Apache Avro file and can be processed asynchronously and incrementally. + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ResourceGroupName Resource Group Name. diff --git a/src/Storage/Storage.Management/help/Update-AzStorageEncryptionScope.md b/src/Storage/Storage.Management/help/Update-AzStorageEncryptionScope.md new file mode 100644 index 000000000000..045e68270642 --- /dev/null +++ b/src/Storage/Storage.Management/help/Update-AzStorageEncryptionScope.md @@ -0,0 +1,310 @@ +--- +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/update-azstorageencryptionscope +schema: 2.0.0 +--- + +# Update-AzStorageEncryptionScope + +## SYNOPSIS +Modify an encryption scope for a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Update-AzStorageEncryptionScope [-ResourceGroupName] [-StorageAccountName] + -EncryptionScopeName [-StorageEncryption] [-State ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountNameKeyVault +``` +Update-AzStorageEncryptionScope [-ResourceGroupName] [-StorageAccountName] + -EncryptionScopeName [-KeyvaultEncryption] -KeyUri [-State ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObject +``` +Update-AzStorageEncryptionScope -StorageAccount -EncryptionScopeName + [-StorageEncryption] [-State ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObjectKeyVault +``` +Update-AzStorageEncryptionScope -StorageAccount -EncryptionScopeName + [-KeyvaultEncryption] -KeyUri [-State ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +### EncryptionScopeObject +``` +Update-AzStorageEncryptionScope -InputObject [-StorageEncryption] [-State ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### EncryptionScopeObjectKeyVault +``` +Update-AzStorageEncryptionScope -InputObject [-KeyvaultEncryption] -KeyUri + [-State ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Update-AzStorageEncryptionScope** cmdlet modifies an encryption scope for a Storage account. + +## EXAMPLES + +### Example 1: Disable an encryption scope +``` +PS C:\> Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Disabled + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Disabled Microsoft.Storage +``` + +This command disables an encryption scope. + +### Example 2: Enable an encryption scope +``` +PS C:\> Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Enabled + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Enabled Microsoft.Storage +``` + +This command enables an encryption scope. + +### Example 3: Update an encryption scope to use Storage Encryption +``` +PS C:\> Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Enabled Microsoft.Storage +``` + +This command updates an encryption scope to use Storage Encryption. + +### Example 4: Update an encryption scope to use Keyvault Encryption +``` +PS C:\> Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name State Source KeyVaultKeyUri +---- ----- ------ -------------- +testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 +``` + +This command updtaes an encryption scope to use Keyvault Encryption. +The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. + +## 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 +``` + +### -EncryptionScopeName +Azure Storage EncryptionScope name + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountNameKeyVault, AccountObject, AccountObjectKeyVault +Aliases: Name + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +EncryptionScope object + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope +Parameter Sets: EncryptionScopeObject, EncryptionScopeObjectKeyVault +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyUri +The key Uri + +```yaml +Type: System.String +Parameter Sets: AccountNameKeyVault, AccountObjectKeyVault, EncryptionScopeObjectKeyVault +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyvaultEncryption +Create encryption scope with keySource as Microsoft.Keyvault + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountNameKeyVault, AccountObjectKeyVault, EncryptionScopeObjectKeyVault +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource Group Name. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountNameKeyVault +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -State +Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: Enabled, Disabled + +Required: False +Position: Named +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, AccountObjectKeyVault +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, AccountNameKeyVault +Aliases: AccountName + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageEncryption +Create encryption scope with keySource as Microsoft.Storage. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountName, AccountObject, EncryptionScopeObject +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Test/Storage.Test.csproj b/src/Storage/Storage.Test/Storage.Test.csproj index 5bba25da9f8b..6d346883d174 100644 --- a/src/Storage/Storage.Test/Storage.Test.csproj +++ b/src/Storage/Storage.Test/Storage.Test.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs index ce33911cf460..852493d185a1 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs @@ -134,30 +134,6 @@ public GetAzureStorageBlobCommand(IStorageBlobManagement channel) Channel = channel; } - /// - /// get the CloudBlobContainer object by name if container exists - /// - /// container name - /// return CloudBlobContianer object if specified container exists, otherwise throw an exception - internal async Task GetCloudBlobContainerByName(IStorageBlobManagement localChannel, string containerName, bool skipCheckExists = false) - { - if (!NameUtil.IsValidContainerName(containerName)) - { - throw new ArgumentException(String.Format(Resources.InvalidContainerName, containerName)); - } - - BlobRequestOptions requestOptions = RequestOptions; - CloudBlobContainer container = localChannel.GetContainerReference(containerName); - - if (!skipCheckExists && container.ServiceClient.Credentials.IsSharedKey - && !await localChannel.DoesContainerExistAsync(container, requestOptions, OperationContext, CmdletCancellationToken).ConfigureAwait(false)) - { - throw new ArgumentException(String.Format(Resources.ContainerNotFound, containerName)); - } - - return container; - } - /// /// list blobs by blob name and container name /// diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs index d2013853de69..1e2011e38c1f 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs @@ -29,7 +29,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet /// List azure storage container /// [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainer", DefaultParameterSetName = NameParameterSet),OutputType(typeof(AzureStorageContainer))] - [Alias("Get-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainerAcl")] + [Alias("Get-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainerAcl", "Get-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DatalakeGen2FileSystem")] public class GetAzureStorageContainerCommand : StorageCloudBlobCmdletBase { /// diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs index a4ce0cb15695..9a37728a09f2 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs @@ -27,6 +27,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet /// create a new azure container /// [Cmdlet("New", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainer"),OutputType(typeof(AzureStorageContainer))] + [Alias("New-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DatalakeGen2FileSystem")] public class NewAzureStorageContainerCommand : StorageCloudBlobCmdletBase { [Alias("N", "Container")] diff --git a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs index 6767a7be7eb4..96e8f86979c1 100644 --- a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs @@ -27,6 +27,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet /// remove specified azure container /// [Cmdlet("Remove", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainer", SupportsShouldProcess = true),OutputType(typeof(Boolean))] + [Alias("Remove-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DatalakeGen2FileSystem")] public class RemoveAzureStorageContainerCommand : StorageCloudBlobCmdletBase { [Alias("N", "Container")] diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs index 5de329e6ff56..7a192291af37 100644 --- a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs @@ -367,93 +367,7 @@ protected override void DoEndProcessing() } base.DoEndProcessing(); - } - - //only support the common blob properties for block blob and page blob - //http://msdn.microsoft.com/en-us/library/windowsazure/ee691966.aspx - private Dictionary> validCloudBlobProperties = - new Dictionary>(StringComparer.OrdinalIgnoreCase) - { - {"CacheControl", (p, v) => p.CacheControl = v}, - {"ContentDisposition", (p, v) => p.ContentDisposition = v}, - {"ContentEncoding", (p, v) => p.ContentEncoding = v}, - {"ContentLanguage", (p, v) => p.ContentLanguage = v}, - {"ContentMD5", (p, v) => p.ContentMD5 = v}, - {"ContentType", (p, v) => p.ContentType = v}, - }; - - /// - /// check whether the blob properties is valid - /// - /// Blob properties table - private void ValidateBlobProperties(Hashtable properties) - { - if (properties == null) - { - return; - } - - foreach (DictionaryEntry entry in properties) - { - if (!validCloudBlobProperties.ContainsKey(entry.Key.ToString())) - { - throw new ArgumentException(String.Format(Resources.InvalidBlobProperties, entry.Key.ToString(), entry.Value.ToString())); - } - } - } - - /// - /// set blob properties to a blob object - /// - /// CloudBlob object - /// blob properties hashtable - private void SetBlobProperties(StorageBlob.CloudBlob blob, Hashtable properties) - { - if (properties == null) - { - return; - } - - foreach (DictionaryEntry entry in properties) - { - string key = entry.Key.ToString(); - string value = entry.Value.ToString(); - Action action = validCloudBlobProperties[key]; - - if (action != null) - { - action(blob.Properties, value); - } - } - } - - /// - /// set blob metadata to a blob object - /// - /// CloudBlob object - /// meta data hashtable - private void SetBlobMeta(StorageBlob.CloudBlob blob, Hashtable meta) - { - if (meta == null) - { - return; - } - - foreach (DictionaryEntry entry in meta) - { - string key = entry.Key.ToString(); - string value = entry.Value.ToString(); - - if (blob.Metadata.ContainsKey(key)) - { - blob.Metadata[key] = value; - } - else - { - blob.Metadata.Add(key, value); - } - } - } + } /// /// set blob AccessTier diff --git a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs index 9b8a0b303803..e43f17c22f5a 100644 --- a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs +++ b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs @@ -23,6 +23,14 @@ namespace Microsoft.WindowsAzure.Commands.Storage using System; using System.Collections.Generic; using System.Globalization; + using System.Threading.Tasks; + using System.Collections; + using Microsoft.Azure.Commands.Common.Authentication.Abstractions; + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage; + using global::Azure; + using global::Azure.Storage.Files.DataLake.Models; /// /// Base cmdlet for storage blob/container cmdlet @@ -209,12 +217,49 @@ internal bool IsSnapshot(CloudBlob blob) /// IStorageBlobManagement channel object internal void WriteCloudBlobObject(long taskId, IStorageBlobManagement channel, CloudBlob blob, BlobContinuationToken continuationToken = null) { - AzureStorageBlob azureBlob = new AzureStorageBlob(blob); - azureBlob.Context = channel.StorageContext; + AzureStorageBlob azureBlob = new AzureStorageBlob(blob, channel.StorageContext); azureBlob.ContinuationToken = continuationToken; OutputStream.WriteObject(taskId, azureBlob); } + /// + /// Write a datalake gen2 file to output + /// + internal void WriteDataLakeGen2Item(IStorageBlobManagement channel, DataLakeFileClient fileClient, long? taskId = null) + { + AzureDataLakeGen2Item azureDataLakeGen2Item = new AzureDataLakeGen2Item(fileClient); + azureDataLakeGen2Item.Context = channel.StorageContext; + if (taskId == null) + { + WriteObject(azureDataLakeGen2Item); + } + else + { + OutputStream.WriteObject(taskId.Value, azureDataLakeGen2Item); + } + } + + /// + /// Write a datalake gen2 folder to output. + /// + internal void WriteDataLakeGen2Item(IStorageBlobManagement channel, DataLakeDirectoryClient dirClient) + { + AzureDataLakeGen2Item azureDataLakeGen2Item = new AzureDataLakeGen2Item(dirClient); + azureDataLakeGen2Item.Context = channel.StorageContext; + WriteObject(azureDataLakeGen2Item); + } + + /// + /// Write a datalake gen2 pathitem to output. + /// + internal void WriteDataLakeGen2Item(IStorageBlobManagement channel, PathItem item, DataLakeFileSystemClient fileSystem, string ContinuationToken = null, bool fetchProperties = false) + { + AzureDataLakeGen2Item azureDataLakeGen2Item = new AzureDataLakeGen2Item(item, fileSystem, fetchProperties); + azureDataLakeGen2Item.Context = channel.StorageContext; + azureDataLakeGen2Item.ContinuationToken = ContinuationToken; + WriteObject(azureDataLakeGen2Item); + } + /// /// Write CloudBlob to output using specified service channel /// @@ -269,11 +314,333 @@ protected bool ContainerIsEmpty(CloudBlobContainer container) return !(listedBlobs.MoveNext() && listedBlobs.Current != null); } } - catch(Exception) + catch (Exception) { return false; } } + /// + /// decide if a object represent a folder of datalake gen2 + /// + /// the PathProperties of the datalakeGen2 Object + /// return true if it represent a folder of datalake gen2 + public static bool isDirectory(PathProperties fileProperties) + { + if (fileProperties.Metadata.Contains(new KeyValuePair("hdi_isfolder", "true")) + && fileProperties.ContentLength == 0) + { + return true; + } + return false; + } + + /// + /// get the CloudBlobContainer object by name if container exists + /// + /// container name + /// return CloudBlobContianer object if specified container exists, otherwise throw an exception + internal async Task GetCloudBlobContainerByName(IStorageBlobManagement localChannel, string containerName, bool skipCheckExists = false) + { + if (!NameUtil.IsValidContainerName(containerName)) + { + throw new ArgumentException(String.Format(Resources.InvalidContainerName, containerName)); + } + + BlobRequestOptions requestOptions = RequestOptions; + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + + if (!skipCheckExists && container.ServiceClient.Credentials.IsSharedKey + && !await localChannel.DoesContainerExistAsync(container, requestOptions, OperationContext, CmdletCancellationToken).ConfigureAwait(false)) + { + throw new ArgumentException(String.Format(Resources.ContainerNotFound, containerName)); + } + + return container; + } + + /// + /// Get an Exist DataLakeGen2Item, return true is the item is a folder, return false if it's File + /// + /// the blob container + /// the path of the Items + /// return true if the item is a folder, else false + public static bool GetExistDataLakeGen2Item(DataLakeFileSystemClient fileSystem, string path, out DataLakeFileClient fileClient, out DataLakeDirectoryClient dirClient) + { + try + { + if (string.IsNullOrEmpty(path)) + { + dirClient = fileSystem.GetDirectoryClient(""); + fileClient = null; + return true; + } + + fileClient = fileSystem.GetFileClient(path); + PathProperties properties = fileClient.GetProperties().Value; + if (isDirectory(properties)) + { + dirClient = fileSystem.GetDirectoryClient(path); + fileClient = null; + return true; + } + else + { + dirClient = null; + return false; + } + } + catch (RequestFailedException e) when (e.Status == 404) + { + // TODO: through exception that the item not exist + throw new ArgumentException(string.Format("The Item in File System {0} on path {1} does not exist.", fileSystem.Name, path)); + } + } + + //only support the common properties for DatalakeGen2File + protected static Dictionary> validDatalakeGen2FileProperties = + new Dictionary>(StringComparer.OrdinalIgnoreCase) + { + {"CacheControl", (p, v) => p.CacheControl = v}, + {"ContentDisposition", (p, v) => p.ContentDisposition = v}, + {"ContentEncoding", (p, v) => p.ContentEncoding = v}, + {"ContentLanguage", (p, v) => p.ContentLanguage = v}, + {"ContentMD5", (p, v) => p.ContentHash = Convert.FromBase64String(v)}, + {"ContentType", (p, v) => p.ContentType = v}, + }; + + //only support the common properties for DatalakeGen2Folder + protected static Dictionary> validDatalakeGen2FolderProperties = + new Dictionary>(StringComparer.OrdinalIgnoreCase) + { + {"CacheControl", (p, v) => p.CacheControl = v}, + {"ContentDisposition", (p, v) => p.ContentDisposition = v}, + {"ContentEncoding", (p, v) => p.ContentEncoding = v}, + {"ContentLanguage", (p, v) => p.ContentLanguage = v}, + }; + + /// + /// Set properties to a datalake gen2 Datalakegen2Item + /// + /// datalake gen2 Datalakegen2Item + /// properties to set + /// True will set to server, false only set to the local Datalakegen2Item object + protected static PathHttpHeaders SetDatalakegen2ItemProperties(DataLakePathClient item, Hashtable BlobProperties, bool setToServer = true) + { + if (BlobProperties != null) + { + // Valid Blob Dir properties + foreach (DictionaryEntry entry in BlobProperties) + { + if (!validDatalakeGen2FileProperties.ContainsKey(entry.Key.ToString())) + { + throw new ArgumentException(String.Format("InvalidDataLakeFileProperties", entry.Key.ToString(), entry.Value.ToString())); + } + } + + PathHttpHeaders headers = new PathHttpHeaders(); + foreach (DictionaryEntry entry in BlobProperties) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + Action action = validDatalakeGen2FileProperties[key]; + + if (action != null) + { + action(headers, value); + } + } + if (setToServer && item != null) + { + item.SetHttpHeaders(headers); + } + return headers; + } + else + { + return null; + } + } + + /// + /// Set Metadata to a datalake gen2 item + /// + /// datalake gen2 item + /// Metadata to set + /// True will set to server, false only set to the local Datalakegen2Item object + protected static IDictionary SetDatalakegen2ItemMetaData(DataLakePathClient item, Hashtable Metadata, bool setToServer = true) + { + if (Metadata != null) + { + IDictionary metadata = GetUpdatedMetaData(Metadata, null); + if (setToServer && item != null) + { + item.SetMetadata(metadata); + } + return metadata; + } + else + { + return null; + } + } + + public static IDictionary GetUpdatedMetaData(Hashtable Metadata, IDictionary originalMetadata = null) + { + if (Metadata != null) + { + IDictionary metadata; + if (originalMetadata == null) + { + metadata = new Dictionary(); + } + else + { + metadata = originalMetadata; + metadata.Remove("hdi_isfolder"); + } + foreach (DictionaryEntry entry in Metadata) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + + if (metadata.ContainsKey(key)) + { + metadata[key] = value; + } + else + { + metadata.Add(key, value); + } + } + return metadata; + } + else + { + return originalMetadata; + } + } + + /// + /// get the DataLakeFileSystemClient object by name if DataLakeFileSystem exists + /// + /// DataLakeFileSystem name + /// return DataLakeFileSystemClient object if specified DataLakeFileSystem exists, otherwise throw an exception + internal DataLakeFileSystemClient GetFileSystemClientByName(IStorageBlobManagement localChannel, string fileSystemName, bool skipCheckExists = false) + { + if (!NameUtil.IsValidContainerName(fileSystemName)) + { + throw new ArgumentException(String.Format(Resources.InvalidContainerName, fileSystemName)); + } + + Uri fileSystemUri = localChannel.StorageContext.StorageAccount.CreateCloudBlobClient().GetContainerReference(fileSystemName).Uri; + DataLakeFileSystemClient fileSystem; + + if (localChannel.StorageContext.StorageAccount.Credentials.IsToken) //Oauth + { + fileSystem = new DataLakeFileSystemClient(fileSystemUri, localChannel.StorageContext.Track2OauthToken); + } + else if (localChannel.StorageContext.StorageAccount.Credentials.IsSAS) //SAS + { + fileSystem = new DataLakeFileSystemClient(new Uri (fileSystemUri.ToString() + localChannel.StorageContext.StorageAccount.Credentials.SASToken)); + } + else if (localChannel.StorageContext.StorageAccount.Credentials.IsSharedKey) //Shared Key + { + fileSystem = new DataLakeFileSystemClient(fileSystemUri, + new StorageSharedKeyCredential(localChannel.StorageContext.StorageAccountName, localChannel.StorageContext.StorageAccount.Credentials.ExportBase64EncodedKey())); + } + else //Anonymous + { + fileSystem = new DataLakeFileSystemClient(fileSystemUri); + } + + return fileSystem; + } + + //only support the common blob properties for block blob and page blob + //http://msdn.microsoft.com/en-us/library/windowsazure/ee691966.aspx + protected static Dictionary> validCloudBlobProperties = + new Dictionary>(StringComparer.OrdinalIgnoreCase) + { + {"CacheControl", (p, v) => p.CacheControl = v}, + {"ContentDisposition", (p, v) => p.ContentDisposition = v}, + {"ContentEncoding", (p, v) => p.ContentEncoding = v}, + {"ContentLanguage", (p, v) => p.ContentLanguage = v}, + {"ContentMD5", (p, v) => p.ContentMD5 = v}, + {"ContentType", (p, v) => p.ContentType = v}, + }; + + /// + /// check whether the blob properties is valid + /// + /// Blob properties table + protected void ValidateBlobProperties(Hashtable properties) + { + if (properties == null) + { + return; + } + + foreach (DictionaryEntry entry in properties) + { + if (!validCloudBlobProperties.ContainsKey(entry.Key.ToString())) + { + throw new ArgumentException(String.Format(Resources.InvalidBlobProperties, entry.Key.ToString(), entry.Value.ToString())); + } + } + } + + /// + /// set blob properties to a blob object + /// + /// CloudBlob object + /// blob properties hashtable + protected static void SetBlobProperties(CloudBlob blob, Hashtable properties) + { + if (properties == null) + { + return; + } + + foreach (DictionaryEntry entry in properties) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + Action action = validCloudBlobProperties[key]; + + if (action != null) + { + action(blob.Properties, value); + } + } + } + + /// + /// set blob metadata to a blob object + /// + /// CloudBlob object + /// meta data hashtable + protected static void SetBlobMeta(CloudBlob blob, Hashtable meta) + { + if (meta == null) + { + return; + } + + foreach (DictionaryEntry entry in meta) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + + if (blob.Metadata.ContainsKey(key)) + { + blob.Metadata[key] = value; + } + else + { + blob.Metadata.Add(key, value); + } + } + } } } \ No newline at end of file diff --git a/src/Storage/Storage/Common/AzureDataLakeGen2Item.cs b/src/Storage/Storage/Common/AzureDataLakeGen2Item.cs new file mode 100644 index 000000000000..faf827946bd2 --- /dev/null +++ b/src/Storage/Storage/Common/AzureDataLakeGen2Item.cs @@ -0,0 +1,188 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// --------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel +{ + using System; + using Microsoft.WindowsAzure.Commands.Common.Attributes; + using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage.Files.DataLake.Models; + + /// + /// Azure storage blob object + /// + public class AzureDataLakeGen2Item : AzureStorageBase + { + /// + /// File Properties + /// + public DataLakeFileClient File { get; set; } + + /// + /// Directory Properties + /// + public DataLakeDirectoryClient Directory { get; private set; } + + /// + /// The Path of the item + /// + [Ps1Xml(Label = "Path", Target = ViewControl.Table, Position = 0, TableColumnWidth = 20)] + public string Path { get; set; } + + /// + /// CloudBlobDirectory object + /// + [Ps1Xml(Label = "IsDirectory", Target = ViewControl.Table, Position = 1, TableColumnWidth = 12)] + public bool IsDirectory { get; private set; } + + /// + /// Datalake Gen2 Item path Permissions + /// + [Ps1Xml(Label = "Permissions", Target = ViewControl.Table, ScriptBlock = "$_.Permissions.ToSymbolicPermissions()", Position = 5, TableColumnWidth = 12)] + public PathPermissions Permissions { get; set; } + + /// + /// Datalake Gen2 Item ACL + /// + public PSPathAccessControlEntry[] ACL { get; set; } + + /// + /// Datalake Item PathProperties + /// + public PathProperties Properties { get; private set; } + + /// + /// Datalake Item PathAccessControl + /// + public PathAccessControl AccessControl { get; private set; } + + /// + /// Datalake Item list ContinuationToken + /// + public string ContinuationToken { get; set; } + + /// + /// Blob length + /// + [Ps1Xml(Label = "Length", Target = ViewControl.Table, ScriptBlock = "if ($_.IsDirectory -eq $false) {$_.Length}", Position = 2, TableColumnWidth = 15)] + public long Length { get; private set; } + + /// + /// Blob content type + /// + [Ps1Xml(Label = "ContentType", Target = ViewControl.Table, Position = 3, TableColumnWidth = 30)] + public string ContentType { get; private set; } + + /// + /// Blob last modified time + /// + [Ps1Xml(Label = "LastModified", Target = ViewControl.Table, ScriptBlock = "$_.LastModified.UtcDateTime.ToString(\"u\")", Position = 4, TableColumnWidth = 20)] + public DateTimeOffset? LastModified { get; private set; } + + /// + /// The owner of the item + /// + [Ps1Xml(Label = "Owner", Target = ViewControl.Table, Position = 6, TableColumnWidth = 10)] + public string Owner { get; set; } + + /// + /// The Group of the item + /// + [Ps1Xml(Label = "Group", Target = ViewControl.Table, Position = 7, TableColumnWidth = 10)] + public string Group { get; set; } + + /// + /// Azure DataLakeGen2 Item constructor + /// + /// CloudBlockBlob blob object + public AzureDataLakeGen2Item(DataLakeFileClient fileClient) + { + Name = fileClient.Name; + Path = fileClient.Path; + File = fileClient; + Properties = fileClient.GetProperties(); + AccessControl = File.GetAccessControl(); + Length = Properties.ContentLength; + ContentType = Properties.ContentType; + LastModified = Properties.LastModified; + IsDirectory = false; + Permissions = AccessControl.Permissions; + ACL = PSPathAccessControlEntry.ParsePSPathAccessControlEntrys(AccessControl.AccessControlList); + Owner = AccessControl.Owner; + Group = AccessControl.Group; + } + + /// + /// Azure DataLakeGen2 Item constructor + /// + /// Cloud blob Directory object + public AzureDataLakeGen2Item(DataLakeDirectoryClient directoryClient) + { + Name = directoryClient.Name; + Path = directoryClient.Path; + Directory = directoryClient; + IsDirectory = true; + if (directoryClient.Path != "/") //if root directory, GetProperties() will fail. Skip until this is fixed. + { + Properties = directoryClient.GetProperties(); + Length = Properties.ContentLength; + ContentType = Properties.ContentType; + LastModified = Properties.LastModified; + } + AccessControl = directoryClient.GetAccessControl(); + Permissions = AccessControl.Permissions; + ACL = PSPathAccessControlEntry.ParsePSPathAccessControlEntrys(AccessControl.AccessControlList); + Owner = AccessControl.Owner; + Group = AccessControl.Group; + } + + + /// + /// Azure DataLakeGen2 Item constructor + /// + /// datalake gen2 listout item + public AzureDataLakeGen2Item(PathItem item, DataLakeFileSystemClient fileSystem, bool fetchProperties = false) + { + this.Name = item.Name; + this.Path = item.Name; + this.IsDirectory = item.IsDirectory is null ? false : item.IsDirectory.Value; + DataLakePathClient pathclient = null; + if (this.IsDirectory) // Directory + { + this.Directory = fileSystem.GetDirectoryClient(item.Name); + pathclient = this.Directory; + } + else //File + { + this.File = fileSystem.GetFileClient(item.Name); + pathclient = this.File; + } + + this.Owner = item.Owner; + this.Group = item.Group; + this.Permissions = PathPermissions.ParseSymbolicPermissions(item.Permissions); + this.LastModified = item.LastModified; + this.Length = item.ContentLength is null ? 0 : item.ContentLength.Value; + + if (fetchProperties) + { + this.Properties = pathclient.GetProperties(); + this.AccessControl = pathclient.GetAccessControl(); + this.ACL = PSPathAccessControlEntry.ParsePSPathAccessControlEntrys(this.AccessControl.AccessControlList); + this.ContentType = Properties.ContentType; + } + } + } +} diff --git a/src/Storage/Storage/Common/AzureSessionCredential.cs b/src/Storage/Storage/Common/AzureSessionCredential.cs new file mode 100644 index 000000000000..ec6625a51a19 --- /dev/null +++ b/src/Storage/Storage/Common/AzureSessionCredential.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Abstractions; + +namespace Microsoft.WindowsAzure.Commands.Storage.Common +{ + public delegate void DebugLogWriter(string log); + public class AzureSessionCredential : TokenCredential + { + public AzureSessionCredential(IAzureContext DefaultContext, DebugLogWriter logWriter = null) + { + if (DefaultContext == null || DefaultContext.Account == null) + { + throw new InvalidOperationException(Resources.ContextCannotBeNull); + } + if (logWriter != null) + { + this.debugLogWriter = logWriter; + } + + IAccessToken accessToken1 = AzureSession.Instance.AuthenticationFactory.Authenticate( + DefaultContext.Account, + EnsureStorageOAuthAudienceSet(DefaultContext.Environment), + DefaultContext.Tenant.Id, + null, + ShowDialog.Never, + null, + StorageOAuthEndpointResourceKey); + accessToken = accessToken1; + } + + public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken) + { + AccessToken token; + accessToken.AuthorizeRequest((tokenType, tokenValue) => + { + token = new AccessToken(tokenValue, DateTimeOffset.UtcNow); + }); + if (this.debugLogWriter != null) + { + this.debugLogWriter("[" + DateTime.Now.ToString() + "] GetToken: " + token.Token); + } + return token; + } + + public override ValueTask GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken) + { + AccessToken token; + accessToken.AuthorizeRequest((tokenType, tokenValue) => + { + token = new AccessToken(tokenValue, DateTimeOffset.UtcNow); + }); + + if (this.debugLogWriter != null) + { + this.debugLogWriter("[" + DateTime.Now.ToString() + "] GetTokenAsync: " + token.Token); + } + return new ValueTask(token); + } + + private IAzureEnvironment EnsureStorageOAuthAudienceSet(IAzureEnvironment environment) + { + if (environment != null) + { + if (!environment.IsPropertySet(StorageOAuthEndpointResourceKey)) + { + environment.SetProperty(StorageOAuthEndpointResourceKey, StorageOAuthEndpointResourceValue); + } + } + + return environment; + } + + /// + /// The extension key to use for the storage token audience value + /// + public const string StorageOAuthEndpointResourceKey = "StorageOAuthEndpointResourceId"; + + /// + /// Default resourceId for storage OAuth tokens + /// + public const string StorageOAuthEndpointResourceValue = "https://storage.azure.com"; + + + private IAccessToken accessToken; + private DebugLogWriter debugLogWriter = null; + } + +} diff --git a/src/Storage/Storage/Common/AzureStorageBlob.cs b/src/Storage/Storage/Common/AzureStorageBlob.cs index 6785ab985d60..350d612f7226 100644 --- a/src/Storage/Storage/Common/AzureStorageBlob.cs +++ b/src/Storage/Storage/Common/AzureStorageBlob.cs @@ -17,6 +17,11 @@ namespace Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel using Microsoft.Azure.Storage.Blob; using System; using Microsoft.WindowsAzure.Commands.Common.Attributes; + using global::Azure.Storage.Blobs; + using Microsoft.WindowsAzure.Commands.Storage; + using Microsoft.Azure.Commands.Common.Authentication.Abstractions; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using global::Azure.Storage; /// /// Azure storage blob object @@ -49,6 +54,38 @@ public class AzureStorageBlob : AzureStorageBase [Ps1Xml(Label = "IsDeleted", Target = ViewControl.Table, Position = 7, TableColumnWidth = 10)] public bool IsDeleted { get; private set; } + /// + /// XSCL Track2 Blob Client, used to run blob APIs + /// + public BlobClient BlobClient + { + get + { + if (privateBlobClient == null) + { + privateBlobClient = GetTrack2BlobClient(this.ICloudBlob, (AzureStorageContext)this.Context); + } + return privateBlobClient; + } + } + private BlobClient privateBlobClient = null; + + /// + /// XSCL Track2 Blob properties, will retrieve the properties on server and return to user + /// + public global::Azure.Storage.Blobs.Models.BlobProperties BlobProperties + { + get + { + if (privateBlobProperties == null) + { + privateBlobProperties = BlobClient.GetProperties().Value; + } + return privateBlobProperties; + } + } + private global::Azure.Storage.Blobs.Models.BlobProperties privateBlobProperties = null; + /// /// Blob IsDeleted /// @@ -60,6 +97,7 @@ public class AzureStorageBlob : AzureStorageBase [Ps1Xml(Label = "ContentType", Target = ViewControl.Table, Position = 3, TableColumnWidth = 30)] public string ContentType { get; private set; } + /// /// Blob last modified time /// @@ -81,7 +119,7 @@ public class AzureStorageBlob : AzureStorageBase /// Azure storage blob constructor /// /// ICloud blob object - public AzureStorageBlob(CloudBlob blob) + public AzureStorageBlob(CloudBlob blob, AzureStorageContext storageContext) { Name = blob.Name; ICloudBlob = blob; @@ -92,6 +130,54 @@ public AzureStorageBlob(CloudBlob blob) ContentType = blob.Properties.ContentType; LastModified = blob.Properties.LastModified; SnapshotTime = blob.SnapshotTime; + this.Context = storageContext; + } + + //refresh XSCL track2 blob properties object from server + public void FetchAttributes() + { + privateBlobProperties = BlobClient.GetProperties().Value; + } + + // Convert Track1 Blob object to Track 2 blob Client + protected static BlobClient GetTrack2BlobClient(CloudBlob cloubBlob, AzureStorageContext context) + { + BlobClient blobClient; + if (cloubBlob.ServiceClient.Credentials.IsToken) //Oauth + { + if (context == null) + { + //TODO : Get Oauth context from current login user. + throw new System.Exception("Need Storage Context to convert Track1 Blob object in token credentail to Track2 Blob object."); + } + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri, context.Track2OauthToken); + + } + else if (cloubBlob.ServiceClient.Credentials.IsSAS) //SAS + { + string fullUri = cloubBlob.SnapshotQualifiedUri.ToString(); + if (cloubBlob.IsSnapshot) + { + // Since snapshot URL already has '?', need remove '?' in the first char of sas + fullUri = fullUri + "&" + cloubBlob.ServiceClient.Credentials.SASToken.Substring(1); + } + else + { + fullUri = fullUri + cloubBlob.ServiceClient.Credentials.SASToken; + } + blobClient = new BlobClient(new Uri(fullUri)); + } + else if (cloubBlob.ServiceClient.Credentials.IsSharedKey) //Shared Key + { + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri, + new StorageSharedKeyCredential(context.StorageAccountName, cloubBlob.ServiceClient.Credentials.ExportBase64EncodedKey())); + } + else //Anonymous + { + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri); + } + + return blobClient; } } } diff --git a/src/Storage/Storage/Common/AzureStorageContainer.cs b/src/Storage/Storage/Common/AzureStorageContainer.cs index 25f7f299b06a..ea0e782abb35 100644 --- a/src/Storage/Storage/Common/AzureStorageContainer.cs +++ b/src/Storage/Storage/Common/AzureStorageContainer.cs @@ -17,6 +17,9 @@ namespace Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel using Microsoft.Azure.Storage.Blob; using System; using Microsoft.WindowsAzure.Commands.Common.Attributes; + using global::Azure.Storage.Blobs; + using Microsoft.WindowsAzure.Commands.Storage; + using global::Azure.Storage; /// /// azure storage container @@ -52,6 +55,38 @@ public class AzureStorageContainer : AzureStorageBase /// public BlobContinuationToken ContinuationToken { get; set; } + /// + /// XSCL Track2 container Client, used to run blob APIs + /// + public BlobContainerClient BlobContainerClient + { + get + { + if (privateBlobContainerClient == null) + { + privateBlobContainerClient = GetTrack2BlobContainerClient(this.CloudBlobContainer, (AzureStorageContext)this.Context); + } + return privateBlobContainerClient; + } + } + private BlobContainerClient privateBlobContainerClient = null; + + /// + /// XSCL Track2 Blob properties, will retrieve the properties on server and return to user + /// + public global::Azure.Storage.Blobs.Models.BlobContainerProperties BlobContainerProperties + { + get + { + if (privateBlobContainerProperties == null) + { + privateBlobContainerProperties = BlobContainerClient.GetProperties().Value; + } + return privateBlobContainerProperties; + } + } + private global::Azure.Storage.Blobs.Models.BlobContainerProperties privateBlobContainerProperties = null; + /// /// init azure storage container using CloudBlobContainer and BlobContainerPermissions /// @@ -74,5 +109,44 @@ public AzureStorageContainer(CloudBlobContainer container, BlobContainerPermissi LastModified = container.Properties.LastModified; } + + //refresh XSCL track2 container properties object from server + public void FetchAttributes() + { + privateBlobContainerProperties = BlobContainerClient.GetProperties().Value; + } + + // Convert Track1 Container object to Track 2 Container Client + protected static BlobContainerClient GetTrack2BlobContainerClient(CloudBlobContainer cloubContainer, AzureStorageContext context) + { + BlobContainerClient blobContainerClient; + if (cloubContainer.ServiceClient.Credentials.IsToken) //Oauth + { + if (context == null) + { + //TODO : Get Oauth context from current login user. + throw new System.Exception("Need Storage Context to convert Track1 object in token credentail to Track2 object."); + } + blobContainerClient = new BlobContainerClient(cloubContainer.Uri, context.Track2OauthToken); + + } + else if (cloubContainer.ServiceClient.Credentials.IsSAS) //SAS + { + string fullUri = cloubContainer.Uri.ToString(); + fullUri = fullUri + cloubContainer.ServiceClient.Credentials.SASToken; + blobContainerClient = new BlobContainerClient(new Uri(fullUri)); + } + else if (cloubContainer.ServiceClient.Credentials.IsSharedKey) //Shared Key + { + blobContainerClient = new BlobContainerClient(cloubContainer.Uri, + new StorageSharedKeyCredential(context.StorageAccountName, cloubContainer.ServiceClient.Credentials.ExportBase64EncodedKey())); + } + else //Anonymous + { + blobContainerClient = new BlobContainerClient(cloubContainer.Uri); + } + + return blobContainerClient; + } } } diff --git a/src/Storage/Storage/Common/AzureStorageContext.cs b/src/Storage/Storage/Common/AzureStorageContext.cs index 7422247a987b..ec4da22d6aed 100644 --- a/src/Storage/Storage/Common/AzureStorageContext.cs +++ b/src/Storage/Storage/Common/AzureStorageContext.cs @@ -20,6 +20,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage using XTable = Microsoft.Azure.Cosmos.Table; using System; using System.Collections.Generic; + using Microsoft.WindowsAzure.Commands.Storage.Common; /// /// Storage context @@ -73,6 +74,11 @@ public class AzureStorageContext : IStorageContext /// public virtual XTable.CloudStorageAccount TableStorageAccount { get; protected set; } + /// + /// Storage Library Track2 Oauth credential + /// + public virtual AzureSessionCredential Track2OauthToken { get; set; } + /// /// Endpoint suffix (everything after "table.", "blob." or "queue.") /// @@ -136,7 +142,7 @@ public string ConnectionString { /// Create a storage context usign cloud storage account /// /// cloud storage account - public AzureStorageContext(CloudStorageAccount account, string accountName = null) + public AzureStorageContext(CloudStorageAccount account, string accountName = null, IAzureContext DefaultContext = null, DebugLogWriter logWriter = null) { StorageAccount = account; TableStorageAccount = XTable.CloudStorageAccount.Parse(StorageAccount.ToString(true)); @@ -180,6 +186,10 @@ public AzureStorageContext(CloudStorageAccount account, string accountName = nul StorageAccountName = "[Anonymous]"; } } + if (account.Credentials.IsToken) + { + Track2OauthToken = new AzureSessionCredential(DefaultContext, logWriter); + } } /// diff --git a/src/Storage/Storage/Common/Cmdlet/NewAzureStorageContext.cs b/src/Storage/Storage/Common/Cmdlet/NewAzureStorageContext.cs index 738c6c68b141..09d01a0b3cbe 100644 --- a/src/Storage/Storage/Common/Cmdlet/NewAzureStorageContext.cs +++ b/src/Storage/Storage/Common/Cmdlet/NewAzureStorageContext.cs @@ -580,7 +580,8 @@ public override void ExecuteCmdlet() throw new ArgumentException(Resources.DefaultStorageCredentialsNotFound); } - AzureStorageContext context = new AzureStorageContext(account, StorageAccountName); + AzureStorageContext context = new AzureStorageContext(account, StorageAccountName, DefaultContext, WriteDebug); + WriteObject(context); } } diff --git a/src/Storage/Storage/Common/StorageCloudCmdletBase.cs b/src/Storage/Storage/Common/StorageCloudCmdletBase.cs index f6dd72d377d5..6823d50dc053 100644 --- a/src/Storage/Storage/Common/StorageCloudCmdletBase.cs +++ b/src/Storage/Storage/Common/StorageCloudCmdletBase.cs @@ -281,7 +281,7 @@ internal AzureStorageContext GetCmdletStorageContext(IStorageContext inContext) var context = inContext as AzureStorageContext; if (context == null && inContext != null) { - context = new AzureStorageContext(inContext.GetCloudStorageAccount()); + context = new AzureStorageContext(inContext.GetCloudStorageAccount(), null, DefaultContext, WriteDebug); } if (context != null) @@ -313,7 +313,7 @@ internal AzureStorageContext GetCmdletStorageContext(IStorageContext inContext) } //Set the storage context and use it in pipeline - context = new AzureStorageContext(account); + context = new AzureStorageContext(account, null, DefaultContext, WriteDebug); } return context; diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs new file mode 100644 index 000000000000..2daf53cfd82a --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs @@ -0,0 +1,134 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.Azure.Storage; + using Microsoft.Azure.Storage.Blob; + using System; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using System.Collections.Generic; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage.Files.DataLake.Models; + using global::Azure; + + /// + /// list azure blobs in specified azure FileSystem + /// + [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2ChildItem"),OutputType(typeof(AzureDataLakeGen2Item))] + public class GetAzDataLakeGen2ChildItemCommand : StorageCloudBlobCmdletBase + { + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name")] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Position = 1, Mandatory = false, HelpMessage = + "The path in the specified FileSystem that should be retrieved. Can be a directory " + + "In the format 'directory1/directory2/'")] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Alias("FetchPermission")] + [Parameter(Mandatory = false, HelpMessage = "Fetch the datalake item properties and ACL.")] + [ValidateNotNullOrEmpty] + public SwitchParameter FetchProperty{ get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Indicates if will recursively get the Child Item. The default is false.")] + [ValidateNotNullOrEmpty] + public SwitchParameter Recurse { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "The max count of the blobs that can return.")] + public int? MaxCount + { + get { return InternalMaxCount; } + set + { + if (value.Value <= 0) + { + InternalMaxCount = int.MaxValue; + } + else + { + InternalMaxCount = value.Value; + } + } + } + + private int InternalMaxCount = int.MaxValue; + + [Parameter(Mandatory = false, HelpMessage = "Continuation Token.")] + public string ContinuationToken { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + [Alias("UserPrincipalName")] + [Parameter(Mandatory = false, HelpMessage = "If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Azure Active Directory Object IDs to User Principal Names. " + + "If not speicify this parameter, the values will be returned as Azure Active Directory Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names.")] + public SwitchParameter OutputUserPrincipalName { get; set; } + + // Overwrite the useless parameter + public override int? ConcurrentTaskCount { get; set; } + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the GetAzDataLakeGen2ChildItemCommand class. + /// + public GetAzDataLakeGen2ChildItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzDataLakeGen2ChildItemCommand class. + /// + /// IStorageBlobManagement channel + public GetAzDataLakeGen2ChildItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + + BlobRequestOptions requestOptions = RequestOptions; + bool useFlatBlobListing = this.Recurse.IsPresent ? true : false; + + IEnumerator> enumerator = fileSystem.GetPaths(this.Path, this.Recurse, this.OutputUserPrincipalName.IsPresent) + .AsPages(this.ContinuationToken, this.MaxCount) + .GetEnumerator(); + + Page page; + enumerator.MoveNext(); + page = enumerator.Current; + foreach (PathItem item in page.Values) + { + WriteDataLakeGen2Item(localChannel, item, fileSystem, page.ContinuationToken, this.FetchProperty.IsPresent); + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs new file mode 100644 index 000000000000..cbdfa05fb1a0 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs @@ -0,0 +1,274 @@ +// ---------------------------------------------------------------------------------- +// +// 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.WindowsAzure.Commands.Common; +using Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel; +using Microsoft.WindowsAzure.Commands.Storage.Common; +using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Storage; +using Microsoft.Azure.Storage.Blob; +using Microsoft.Azure.Storage.DataMovement; +using System; +using System.IO; +using System.Management.Automation; +using System.Security.Permissions; +using System.Threading.Tasks; +using Azure.Storage.Files.DataLake; + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2ItemContent", SupportsShouldProcess = true, DefaultParameterSetName = ManualParameterSet),OutputType(typeof(AzureDataLakeGen2Item))] + public class GetAzDataLakeGen2ItemContentCommand : StorageDataMovementCmdletBase + { + /// + /// manually set the name parameter + /// + private const string ManualParameterSet = "ReceiveManual"; + + /// + /// blob pipeline + /// + private const string BlobParameterSet = "ItemPipeline"; + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Position = 1, Mandatory = true, HelpMessage = + "The path in the specified FileSystem that should be get content from. Must be a file." + + "In the format 'directory/file.txt'", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Azure Datalake Gen2 Item Object to download.", + ValueFromPipeline = true, ParameterSetName = BlobParameterSet)] + [ValidateNotNull] + public AzureDataLakeGen2Item InputObject { get; set; } + + [Parameter(HelpMessage = "Destination local file path.")] + public string Destination + { + get { return FileName; } + set { FileName = value; } + } + public string FileName = String.Empty; + + [Parameter(HelpMessage = "check the md5sum")] + public SwitchParameter CheckMd5 + { + get { return checkMd5; } + set { checkMd5 = value; } + } + + private bool checkMd5; + + private BlobToFileSystemNameResolver fileNameResolver; + + private DataLakeFileClient fileClient; + + // Overwrite the useless parameter + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the GetAzDataLakeGen2ItemContentCommand class. + /// + public GetAzDataLakeGen2ItemContentCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzDataLakeGen2ItemContentCommand class. + /// + /// IStorageBlobManagement channel + public GetAzDataLakeGen2ItemContentCommand(IStorageBlobManagement channel) + { + Channel = channel; + fileNameResolver = new BlobToFileSystemNameResolver(() => NameUtil.WindowsMaxFileNameLength); + } + + /// + /// Download blob to local file + /// + /// Source blob object + /// Destination file path + internal virtual async Task DownloadBlob(long taskId, IStorageBlobManagement localChannel, CloudBlob blob, string filePath) + { + string activity = String.Format(Resources.ReceiveAzureBlobActivity, blob.Name, filePath); + string status = Resources.PrepareDownloadingBlob; + ProgressRecord pr = new ProgressRecord(OutputStream.GetProgressId(taskId), activity, status); + DataMovementUserData data = new DataMovementUserData() + { + Data = blob, + TaskId = taskId, + Channel = localChannel, + Record = pr, + TotalSize = blob.Properties.Length + }; + + await DataMovementTransferHelper.DoTransfer(() => + { + return this.TransferManager.DownloadAsync(blob, filePath, + new DownloadOptions() + { + DisableContentMD5Validation = !this.checkMd5 + }, + this.GetTransferContext(data), + this.CmdletCancellationToken); + }, + data.Record, + this.OutputStream).ConfigureAwait(false); + + //this.WriteCloudBlobObject(data.TaskId, data.Channel, blob); + WriteDataLakeGen2Item(localChannel, fileClient, taskId: data.TaskId); + } + + /// + /// get blob content + /// + /// source CloudBlob object + /// destination file path + /// whether the source FileSystem validated + /// the downloaded blob object + internal void GetBlobContent(CloudBlob blob, string fileName, bool isValidBlob = false) + { + if (null == blob) + { + throw new ArgumentNullException(typeof(CloudBlob).Name, String.Format(Resources.ObjectCannotBeNull, typeof(CloudBlob).Name)); + } + + ValidateBlobType(blob); + + string filePath = GetFullReceiveFilePath(fileName, blob.Name); + + if (!isValidBlob) + { + ValidatePipelineCloudBlob(blob); + } + + //create the destination directory if not exists. + String dirPath = System.IO.Path.GetDirectoryName(filePath); + + if (!Directory.Exists(dirPath)) + { + Directory.CreateDirectory(dirPath); + } + + IStorageBlobManagement localChannel = Channel; + + Func taskGenerator = (taskId) => DownloadBlob(taskId, localChannel, blob, filePath); + RunTask(taskGenerator); + } + + /// + /// get full file path according to the specified file name + /// + /// File name + /// Source blob name + /// full file path if file path is valid, otherwise throw an exception + internal string GetFullReceiveFilePath(string fileName, string blobName) + { + String filePath = fileName; + fileName = System.IO.Path.GetFileName(filePath); + String dirPath = System.IO.Path.GetDirectoryName(filePath); + + if (!String.IsNullOrEmpty(dirPath) && !Directory.Exists(dirPath)) + { + throw new ArgumentException(String.Format(Resources.DirectoryNotExists, dirPath)); + } + + if (string.IsNullOrEmpty(fileName) || Directory.Exists(filePath)) + { + fileName = fileNameResolver.ResolveFileName(blobName, null); + filePath = System.IO.Path.Combine(filePath, fileName); + } + + fileName = System.IO.Path.GetFileName(filePath); + + if (!NameUtil.IsValidFileName(fileName)) + { + throw new ArgumentException(String.Format(Resources.InvalidFileName, fileName)); + } + + //there is no need to check the read/write permission on the specified file path, the datamovement libraray will do that + + return filePath; + } + + protected override void ProcessRecord() + { + try + { + FileName = GetUnresolvedProviderPathFromPSPath(FileName); + Validate.ValidateInternetConnection(); + InitChannelCurrentSubscription(); + this.ExecuteSynchronouslyOrAsJob(); + } + catch (Exception ex) when (!IsTerminatingError(ex)) + { + WriteExceptionError(ex); + } + } + + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + BlobRequestOptions requestOptions = RequestOptions; + if (AsJob.IsPresent) + { + DoBeginProcessing(); + } + + CloudBlockBlob blob = null; + if (ParameterSetName == ManualParameterSet) + { + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + DataLakeDirectoryClient dirClient; + if (GetExistDataLakeGen2Item(fileSystem, this.Path, out fileClient, out dirClient)) + { + throw new ArgumentException(String.Format("The input FileSystem '{0}', path '{1}' point to a Directory, can't download it.", this.FileSystem, this.Path)); + } + + CloudBlobContainer container = GetCloudBlobContainerByName(Channel, this.FileSystem).ConfigureAwait(false).GetAwaiter().GetResult(); + blob = container.GetBlockBlobReference(this.Path); + } + else //BlobParameterSet + { + if (!InputObject.IsDirectory) + { + blob = new CloudBlockBlob(InputObject.File.Uri, Channel.StorageContext.StorageAccount.Credentials); + fileClient = InputObject.File; + } + else + { + throw new ArgumentException(String.Format("The InputObject is a Directory, which don't have content to get.")); + } + } + + GetBlobContent(blob, FileName, true); + + if (AsJob.IsPresent) + { + DoEndProcessing(); + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs new file mode 100644 index 000000000000..705a1b329ae1 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs @@ -0,0 +1,86 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using System.Management.Automation; + using System.Security.Permissions; + using global::Azure.Storage.Files.DataLake; + + /// + /// list azure blobs in specified azure FileSystem + /// + [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2Item"), OutputType(typeof(AzureDataLakeGen2Item))] + public class GetDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase + { + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name")] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Mandatory = false, HelpMessage = + "The path in the specified FileSystem that should be retrieved. Can be a file or directory " + + "In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter to get the root directory of the Filesystem.")] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + // Overwrite the useless parameter + public override int? ConcurrentTaskCount { get; set; } + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the GetDataLakeGen2ItemCommand class. + /// + public GetDataLakeGen2ItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetDataLakeGen2ItemCommand class. + /// + /// IStorageBlobManagement channel + public GetDataLakeGen2ItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + + DataLakeFileClient fileClient; + DataLakeDirectoryClient dirClient; + if (GetExistDataLakeGen2Item(fileSystem, this.Path, out fileClient, out dirClient)) + { + // Directory + WriteDataLakeGen2Item(localChannel, dirClient); + } + else + { + //File + WriteDataLakeGen2Item(Channel, fileClient); + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs new file mode 100644 index 000000000000..86f5dd29f576 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs @@ -0,0 +1,173 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.Azure.Storage.Blob; + using System; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using System.Collections; + using System.Collections.Generic; + using global::Azure.Storage.Files.DataLake; + using global::Azure; + + /// + /// create a new azure FileSystem + /// + [Cmdlet("Move", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2Item", DefaultParameterSetName = ManualParameterSet, SupportsShouldProcess = true),OutputType(typeof(AzureDataLakeGen2Item))] + public class MoveAzDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase + { + /// + /// manually set the name parameter + /// + private const string ManualParameterSet = "ReceiveManual"; + + /// + /// Blob or BlobDir pipeline + /// + private const string BlobParameterSet = "ItemPipeline"; + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Position = 1, Mandatory = true, HelpMessage = + "The path in the specified FileSystem that should be move from. Can be a file or directory. " + + "In the format 'directory/file.txt' or 'directory1/directory2/'", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Azure Datalake Gen2 Item Object to move from.", + ValueFromPipeline = true, ParameterSetName = BlobParameterSet)] + [ValidateNotNull] + public AzureDataLakeGen2Item InputObject { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Dest FileSystem name")] + [ValidateNotNullOrEmpty] + public string DestFileSystem { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Dest item path")] + [ValidateNotNullOrEmpty] + public string DestPath { get; set; } + + [Parameter(HelpMessage = "Force to over write the destination.")] + public SwitchParameter Force { get; set; } + + // Overwrite the useless parameter + public override int? ConcurrentTaskCount { get; set; } + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the MoveAzDataLakeGen2ItemCommand class. + /// + public MoveAzDataLakeGen2ItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the MoveAzDataLakeGen2ItemCommand class. + /// + /// IStorageBlobManagement channel + public MoveAzDataLakeGen2ItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// execute command + /// + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + BlobRequestOptions requestOptions = RequestOptions; + + bool foundAFolder = false; + DataLakeFileClient srcBlob = null; + DataLakeDirectoryClient srcBlobDir = null; + if (ParameterSetName == ManualParameterSet) + { + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + foundAFolder = GetExistDataLakeGen2Item(fileSystem, this.Path, out srcBlob, out srcBlobDir); + } + else //BlobParameterSet + { + if (!InputObject.IsDirectory) + { + srcBlob = InputObject.File; + } + else + { + srcBlobDir = InputObject.Directory; + foundAFolder = true; + } + } + + if (foundAFolder) + { + if (ShouldProcess(srcBlobDir.Uri.ToString(), "Move Directory: ")) + { + // check dest exist + bool destExist = true; + DataLakeFileSystemClient destFileSystem = GetFileSystemClientByName(localChannel, this.DestFileSystem != null ? this.DestFileSystem : this.FileSystem); + DataLakeDirectoryClient destBlobDir = destFileSystem.GetDirectoryClient(this.DestPath); + try + { + destBlobDir.GetProperties(); + } + catch (RequestFailedException e) when (e.Status == 404) + { + destExist = false; + } + + if (this.Force || !destExist || ShouldContinue(string.Format("Overwrite destination {0}", destBlobDir.Uri), "")) + { + destBlobDir = srcBlobDir.Rename(this.DestPath, this.DestFileSystem).Value; + WriteDataLakeGen2Item(localChannel, destBlobDir); + } + } + } + else + { + if (ShouldProcess(srcBlob.Uri.ToString(), "Move File: ")) + { + // check dest exist + bool destExist = true; + DataLakeFileSystemClient destFileSystem = GetFileSystemClientByName(localChannel, this.DestFileSystem != null ? this.DestFileSystem : this.FileSystem); + DataLakeFileClient destBlob = destFileSystem.GetFileClient(this.DestPath); + try + { + destBlob.GetProperties(); + } + catch (RequestFailedException e) when (e.Status == 404) + { + destExist = false; + } + + if (this.Force || !destExist || ShouldContinue(string.Format("Overwrite destination {0}", destBlob.Uri), "")) + { + destBlob = srcBlob.Rename(this.DestPath, this.DestFileSystem).Value; + WriteDataLakeGen2Item(localChannel, destBlob); + } + } + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2ACLObject.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2ACLObject.cs new file mode 100644 index 000000000000..43853a3d449f --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2ACLObject.cs @@ -0,0 +1,89 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Storage.Blob; +using Microsoft.WindowsAzure.Commands.Common; +using Microsoft.WindowsAzure.Commands.Storage; +using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; +using System.Collections.Generic; +using System.Globalization; +using System.Management.Automation; +using global::Azure.Storage.Files.DataLake; +using global::Azure; +using global::Azure.Storage.Files.DataLake.Models; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Set", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2ItemAclObject"), OutputType(typeof(PSPathAccessControlEntry))] + [Alias("New-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2ItemAclObject")] + public class SetAzDataLakeGen2ItemAclObjectCommand : AzureDataCmdlet + { + [Parameter(Mandatory = false, HelpMessage = "The user or group identifier. It is omitted for entries of AccessControlType \"mask\" and \"other\". The user or group identifier is also omitted for the owner and owning group.")] + [ValidateNotNullOrEmpty] + public string EntityId { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL.")] + [ValidateNotNullOrEmpty] + public SwitchParameter DefaultScope { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "There are four types: \"user\" grants rights to the owner or a named user, \"group\" grants rights to the owning group or a named group, \"mask\" restricts rights granted to named users and the members of groups, and \"other\" grants rights to all users not found in any of the other entries.")] + [ValidateNotNullOrEmpty] + [ValidateSet(PSAccessControlType.User, + PSAccessControlType.Group, + PSAccessControlType.Mask, + PSAccessControlType.Other, + IgnoreCase = true)] + public AccessControlType AccessControlType; + + [Parameter(Mandatory = true, HelpMessage = "The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. If access is not granted, the '-' character is used to denote that the permission is denied.")] + [ValidatePattern("[r-][w-][x-]")] + public string Permission { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "If input the PSPathAccessControlEntry[] object, will add the new ACL entry as a new element of the input PSPathAccessControlEntry[] object. If an ACL entry when same AccessControlType, EntityId, DefaultScope exist, will update permission of it.")] + [ValidateNotNullOrEmpty] + public PSPathAccessControlEntry[] InputObject { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + List psacls = new List(); + if (InputObject !=null) + { + psacls = new List(this.InputObject); + } + + // Remove the ACL entry to add if already exist, to avoid duplicated entries + PSPathAccessControlEntry entryToRemove = null; + foreach (PSPathAccessControlEntry entry in psacls) + { + if (entry.DefaultScope == this.DefaultScope.IsPresent + && entry.AccessControlType == this.AccessControlType + && entry.EntityId == this.EntityId) + { + entryToRemove = entry; + } + } + if (entryToRemove != null) + { + psacls.Remove(entryToRemove); + } + + PSPathAccessControlEntry psacl = new PSPathAccessControlEntry(this.AccessControlType, PathAccessControlExtensions.ParseSymbolicRolePermissions(this.Permission), this.DefaultScope, this.EntityId); + psacls.Add(psacl); + + WriteObject(psacls.ToArray(), true); + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs new file mode 100644 index 000000000000..d800a333cfa3 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs @@ -0,0 +1,338 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.Azure.Storage.Blob; + using System; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using System.Collections; + using System.Collections.Generic; + using Microsoft.Azure.Storage.DataMovement; + using System.IO; + using Microsoft.WindowsAzure.Commands.Common; + using Microsoft.WindowsAzure.Commands.Utilities.Common; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage.Files.DataLake.Models; + using DataLakeModels = global::Azure.Storage.Files.DataLake.Models; + + /// + /// create a new DataLakeGen2 Item + /// + [Cmdlet("New", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2Item", SupportsShouldProcess = true, DefaultParameterSetName = FileParameterSet), OutputType(typeof(AzureDataLakeGen2Item))] + public class NewAzDataLakeGen2ItemCommand : StorageDataMovementCmdletBase + { + /// + /// Create a Directory parameter + /// + private const string DirectoryParameterSet = "Directory"; + + /// + /// Create a file parameter + /// + private const string FileParameterSet = "File"; + + private const string defaultFilePermission = "rw-rw-rw-"; + private const string defaultUmask = "----w-rwx"; + + private DataLakeFileSystemClient fileSystem; + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name")] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Position = 1, Mandatory = true, HelpMessage = + "The path in the specified FileSystem that should be create. Can be a file or directory " + + "In the format 'directory/file.txt' or 'directory1/directory2/'")] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Indicates that this new item is a directory and not a file.", ParameterSetName = DirectoryParameterSet)] + public SwitchParameter Directory { get; set; } + + [Parameter(ValueFromPipeline = true, Mandatory = true, HelpMessage = "Specify the local source file path which will be upload to a Datalake Gen2 file.", ParameterSetName = FileParameterSet)] + [ValidateNotNullOrEmpty] + public string Source + { + get { return FileName; } + set { FileName = value; } + } + + private string FileName = String.Empty; + + [Parameter(Mandatory = false, + HelpMessage = "When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported.")] + [ValidateNotNullOrEmpty] + [ValidatePattern("([r-][w-][x-]){3}")] + public string Umask { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. ")] + [ValidateNotNullOrEmpty] + [ValidatePattern("([r-][w-][x-]){3}")] + public string Permission { get; set; } + + + [Parameter(HelpMessage = "Specifies properties for the created directory or file. "+ + "The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType." + + "The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.", + Mandatory = false)] + public Hashtable Property + { + get + { + return BlobProperties; + } + + set + { + BlobProperties = value; + } + } + private Hashtable BlobProperties = null; + + [Parameter(HelpMessage = "Specifies metadata for the created directory or file.", Mandatory = false)] + public Hashtable Metadata + { + get + { + return BlobMetadata; + } + + set + { + BlobMetadata = value; + } + } + private Hashtable BlobMetadata = null; + + // Overwrite the useless parameter + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the NewAzDataLakeGen2ItemCommand class. + /// + public NewAzDataLakeGen2ItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the NewAzDataLakeGen2ItemCommand class. + /// + /// IStorageBlobManagement channel + public NewAzDataLakeGen2ItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + protected override void ProcessRecord() + { + try + { + ResolvedFileName = this.GetUnresolvedProviderPathFromPSPath(string.IsNullOrWhiteSpace(this.FileName) ? "." : this.FileName); + Validate.ValidateInternetConnection(); + InitChannelCurrentSubscription(); + this.ExecuteSynchronouslyOrAsJob(); + } + catch (Exception ex) when (!IsTerminatingError(ex)) + { + WriteExceptionError(ex); + } + } + + /// + /// execute command + /// + public override void ExecuteCmdlet() + { + if (AsJob.IsPresent) + { + DoBeginProcessing(); + } + + IStorageBlobManagement localChannel = Channel; + fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + + if (this.Directory.IsPresent) + { + DataLakeDirectoryClient dirClient = fileSystem.GetDirectoryClient(this.Path); + if (ShouldProcess(dirClient.Uri.ToString(), "Create Directory: ")) + { + if (dirClient.Exists()) + { + throw new ResourceAlreadyExistException(String.Format("Folder '{0}' already exists.", dirClient.Uri)); + } + DataLakeModels.PathPermissions pathPermissions = null; + if (this.Permission != null) + { + pathPermissions = DataLakeModels.PathPermissions.ParseSymbolicPermissions(this.Permission); + } + + // Set BlobDir Properties and MetaData + PathHttpHeaders pathHttpHeaders = SetDatalakegen2ItemProperties(dirClient, BlobProperties, setToServer: false); + IDictionary metadata = SetDatalakegen2ItemMetaData(dirClient, BlobMetadata, setToServer: false); + + dirClient.Create(pathHttpHeaders, + metadata, + this.Permission, + this.Umask != null ? DataLakeModels.PathPermissions.ParseSymbolicPermissions(this.Umask).ToOctalPermissions() : null); + + WriteDataLakeGen2Item(localChannel, dirClient); + } + } + else //create File + { + CloudBlobContainer container = Channel.GetContainerReference(this.FileSystem); + CloudBlockBlob blob = container.GetBlockBlobReference(this.Path); + + if (ShouldProcess(blob.Uri.ToString(), "Create File: ")) + { + Func taskGenerator = (taskId) => Upload2Blob(taskId, Channel, ResolvedFileName, blob); + RunTask(taskGenerator); + } + } + + + if (AsJob.IsPresent) + { + DoEndProcessing(); + } + } + + /// + /// Set blob content + /// + /// Dest CloudBlob object + /// source local file path + /// whether the source FileSystem validated + /// the uploaded blob object + internal void SetBlobContent(CloudBlockBlob blob, string fileName, bool isValidBlob = false) + { + if (!isValidBlob) + { + ValidatePipelineCloudBlob(blob); + } + + //UploadBlob(taskId, localChannel, blob, filePath); + Func taskGenerator = (taskId) => Upload2Blob(taskId, Channel, fileName, blob); + RunTask(taskGenerator); + } + + /// + /// upload file to azure blob + /// + /// Task id + /// local file path + /// destination azure blob object + internal virtual async Task Upload2Blob(long taskId, IStorageBlobManagement localChannel, string filePath, CloudBlob blob) + { + string activity = String.Format(Resources.SendAzureBlobActivity, filePath, blob.Name, blob.Container.Name); + string status = Resources.PrepareUploadingBlob; + ProgressRecord pr = new ProgressRecord(OutputStream.GetProgressId(taskId), activity, status); + + FileInfo fileInfo = new FileInfo(filePath); + + DataMovementUserData data = new DataMovementUserData() + { + Data = blob, + TaskId = taskId, + Channel = localChannel, + Record = pr, + TotalSize = fileInfo.Length + }; + + SingleTransferContext transferContext = this.GetTransferContext(data); + +#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously + transferContext.SetAttributesCallbackAsync = async (destination) => +#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously + { + CloudBlob destBlob = destination as CloudBlob; + SetAzureBlobContentCommand.SetBlobProperties(destBlob, this.BlobProperties); + SetAzureBlobContentCommand.SetBlobMeta(destBlob, this.BlobMetadata); + }; + + await DataMovementTransferHelper.DoTransfer(() => + { + return this.TransferManager.UploadAsync(filePath, + blob, + null, + transferContext, + this.CmdletCancellationToken); + }, + data.Record, + this.OutputStream).ConfigureAwait(false); + + // Set blob permission with umask, since create Blob API still not support them + SetBlobPermissionWithUMask((CloudBlockBlob)blob, this.Permission, this.Umask); + + //blob.FetchAttributes(); + WriteDataLakeGen2Item(localChannel, fileSystem.GetFileClient(blob.Name), taskId: data.TaskId); + } + + /// + /// Set block blob permission with Umask after blob is created + /// Add this since XSCL don't have interface to set permission with umask in create blob + /// Won't set when both permission and umask are null/empty, and use server default behavior. + /// + /// the blob object to set permission with umask + /// permission string to set, in format "rwxrwxrwx", default value is "rwxrwxrwx" + /// umask string to set, in format "rwxrwxrwx", default value is "----w-rwx" + protected void SetBlobPermissionWithUMask(CloudBlockBlob blob, string permission, String umask) + { + // Don't need set permission when both input permission and umask are null + if (string.IsNullOrEmpty(permission) && string.IsNullOrEmpty(umask)) + { + return; + } + + //Set the default value if one of permission or Umask is null + // Confirmed with feature team: + // Default permission for files is 666 (default permission for directory is 777, this function is for file so use 666) + // default umask is 027 + if (string.IsNullOrEmpty(permission)) + { + permission = defaultFilePermission; + } + if (string.IsNullOrEmpty(umask)) + { + umask = defaultUmask; + } + + // Get the permission value to set, from input Permission and Umask + // The permission and umask string format is already checked with parameter ValidatePattern + string blobPermission = string.Empty; + for (int i = 0; i < permission.Length; i++) + { + if (umask[i] != '-') + { + blobPermission += '-'; + } + else + { + blobPermission += permission[i]; + } + } + + //Set permission to blob + fileSystem.GetFileClient(blob.Name).SetPermissions(DataLakeModels.PathPermissions.ParseSymbolicPermissions(blobPermission)); + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs new file mode 100644 index 000000000000..0ec3f2906656 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs @@ -0,0 +1,151 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.Azure.Storage.Blob; + using System; + using System.Management.Automation; + using Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel; + using global::Azure.Storage.Files.DataLake; + + /// + /// remove specified azure FileSystem + /// + [Cmdlet("Remove", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2Item", DefaultParameterSetName = ManualParameterSet, SupportsShouldProcess = true),OutputType(typeof(Boolean))] + public class RemoveAzDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase + { + /// + /// manually set the name parameter + /// + private const string ManualParameterSet = "ReceiveManual"; + + /// + /// Blob or BlobDir pipeline + /// + private const string BlobParameterSet = "ItemPipeline"; + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Position = 1, Mandatory = true, HelpMessage = + "The path in the specified FileSystem that should be removed. Can be a file or directory " + + "In the format 'directory/file.txt' or 'directory1/directory2/'", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Azure Datalake Gen2 Item Object to remove.", + ValueFromPipeline = true, ParameterSetName = BlobParameterSet)] + [ValidateNotNull] + public AzureDataLakeGen2Item InputObject { get; set; } + + [Parameter(HelpMessage = "Force to remove the Item without any prompt.")] + public SwitchParameter Force + { + get { return force; } + set { force = value; } + } + private bool force; + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Return whether the specified FileSystem is successfully removed")] + public SwitchParameter PassThru { get; set; } + + // Overwrite the useless parameter + public override int? ConcurrentTaskCount { get; set; } + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + /// + /// Initializes a new instance of the RemoveAzDataLakeGen2ItemCommand class. + /// + public RemoveAzDataLakeGen2ItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the RemoveAzDataLakeGen2ItemCommand class. + /// + /// IStorageBlobManagement channel + public RemoveAzDataLakeGen2ItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// Cmdlet begin processing + /// + protected override void BeginProcessing() + { + base.BeginProcessing(); + OutputStream.ConfirmWriter = (s1, s2, s3) => ShouldContinue(s2, s3); + } + + /// + /// execute command + /// + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + BlobRequestOptions requestOptions = RequestOptions; + + bool foundAFolder = false; + + DataLakeFileClient fileClient = null; + DataLakeDirectoryClient dirClient = null; + if (ParameterSetName == ManualParameterSet) + { + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + foundAFolder = GetExistDataLakeGen2Item(fileSystem, this.Path, out fileClient, out dirClient); + } + else //BlobParameterSet + { + if (!InputObject.IsDirectory) + { + fileClient = InputObject.File; + } + else + { + dirClient = InputObject.Directory; + foundAFolder = true; + } + } + + if (foundAFolder) + { + if (force || ShouldContinue(string.Format("Remove Directory: {0}", dirClient.Uri.ToString()), "")) + { + dirClient.Delete(true); + } + } + else + { + if (force || ShouldContinue(string.Format("Remove File: {0}", fileClient.Uri.ToString()), "")) + { + fileClient.Delete(); + } + } + + if (PassThru) + { + WriteObject(true); + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs new file mode 100644 index 000000000000..7a05a903be4d --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs @@ -0,0 +1,218 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using System.Management.Automation; + using System.Collections; + using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage.Files.DataLake.Models; + + /// + /// create a new azure FileSystem + /// + [Cmdlet("Update", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DataLakeGen2Item", DefaultParameterSetName = ManualParameterSet, SupportsShouldProcess = true),OutputType(typeof(AzureDataLakeGen2Item))] + public class SetAzDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase + { + /// + /// manually set the name parameter + /// + private const string ManualParameterSet = "ReceiveManual"; + + /// + /// Blob or BlobDir pipeline + /// + private const string BlobParameterSet = "ItemPipeline"; + + [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true, HelpMessage = "FileSystem name", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string FileSystem { get; set; } + + [Parameter(ValueFromPipeline = true, Mandatory = false, HelpMessage = + "The path in the specified FileSystem that should be updated. Can be a file or directory " + + "In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter will update the root directory of the Filesystem.", ParameterSetName = ManualParameterSet)] + [ValidateNotNullOrEmpty] + public string Path { get; set; } + + [Parameter(Mandatory = true, HelpMessage = "Azure Datalake Gen2 Item Object to update", + ValueFromPipeline = true, ParameterSetName = BlobParameterSet)] + [ValidateNotNull] + public AzureDataLakeGen2Item InputObject { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. Invalid in conjunction with ACL.")] + [ValidateNotNullOrEmpty] + [ValidatePattern("([r-][w-][x-]){3}")] + public string Permission { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Sets the owner of the item.")] + [ValidateNotNullOrEmpty] + public string Owner { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Sets the owning group of the item.")] + [ValidateNotNullOrEmpty] + public string Group { get; set; } + + [Parameter(HelpMessage = "Specifies properties for the directory or file. " + + "The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType." + + "The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.", + Mandatory = false)] + public Hashtable Property + { + get + { + return BlobProperties; + } + + set + { + BlobProperties = value; + } + } + private Hashtable BlobProperties = null; + + [Parameter(HelpMessage = "Specifies metadata for the directory or file.", + Mandatory = false)] + public Hashtable Metadata + { + get + { + return BlobMetadata; + } + + set + { + BlobMetadata = value; + } + } + private Hashtable BlobMetadata = null; + + [Parameter(HelpMessage = "Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject.", Mandatory = false)] + [ValidateNotNullOrEmpty] + public PSPathAccessControlEntry[] Acl { get; set; } + + // Overwrite the useless parameter + public override int? ConcurrentTaskCount { get; set; } + public override int? ClientTimeoutPerRequest { get; set; } + public override int? ServerTimeoutPerRequest { get; set; } + + + /// + /// Initializes a new instance of the SetAzDataLakeGen2ItemCommand class. + /// + public SetAzDataLakeGen2ItemCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the SetAzDataLakeGen2ItemCommand class. + /// + /// IStorageBlobManagement channel + public SetAzDataLakeGen2ItemCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// execute command + /// + public override void ExecuteCmdlet() + { + IStorageBlobManagement localChannel = Channel; + + bool foundAFolder = false; + + DataLakeFileClient fileClient = null; + DataLakeDirectoryClient dirClient = null; + if (ParameterSetName == ManualParameterSet) + { + DataLakeFileSystemClient fileSystem = GetFileSystemClientByName(localChannel, this.FileSystem); + foundAFolder = GetExistDataLakeGen2Item(fileSystem, this.Path, out fileClient, out dirClient); + } + else //BlobParameterSet + { + if (!InputObject.IsDirectory) + { + fileClient = InputObject.File; + } + else + { + dirClient = InputObject.Directory; + foundAFolder = true; + } + } + + if (foundAFolder) + { + if (ShouldProcess(dirClient.Uri.ToString(), "Update Directory: ")) + { + //Set Permission + if (this.Permission != null || this.Owner != null || this.Group != null) + { + //PathAccessControl originPathAccessControl = dirClient.GetAccessControl().Value; + dirClient.SetPermissions( + this.Permission != null ? PathPermissions.ParseSymbolicPermissions(this.Permission) : null, + this.Owner, + this.Group); + } + + //Set ACL + if (this.Acl != null) + { + dirClient.SetAccessControlList(PSPathAccessControlEntry.ParseAccessControls(this.Acl)); + } + + // Set Properties + SetDatalakegen2ItemProperties(dirClient, this.BlobProperties, setToServer: true); + + //Set MetaData + SetDatalakegen2ItemMetaData(dirClient, this.BlobMetadata, setToServer: true); + + WriteDataLakeGen2Item(localChannel, dirClient); + } + } + else + { + if (ShouldProcess(fileClient.Uri.ToString(), "Update File: ")) + { + //Set Permission + if (this.Permission != null || this.Owner != null || this.Group != null) + { + fileClient.SetPermissions( + this.Permission != null ? PathPermissions.ParseSymbolicPermissions(this.Permission) : null, + this.Owner, + this.Group); + } + + //Set ACL + if (this.Acl != null) + { + fileClient.SetAccessControlList(PSPathAccessControlEntry.ParseAccessControls(this.Acl)); + } + + // Set Properties + SetDatalakegen2ItemProperties(fileClient, this.BlobProperties, setToServer: true); + + //Set MetaData + SetDatalakegen2ItemMetaData(fileClient, this.BlobMetadata, setToServer: true); + + WriteDataLakeGen2Item(localChannel, fileClient); + } + } + } + } +} diff --git a/src/Storage/Storage/DatalakeGen2/GEN1_GEN2_MAPPING.md b/src/Storage/Storage/DatalakeGen2/GEN1_GEN2_MAPPING.md new file mode 100644 index 000000000000..a91427e6b8e1 --- /dev/null +++ b/src/Storage/Storage/DatalakeGen2/GEN1_GEN2_MAPPING.md @@ -0,0 +1,136 @@ +

Mapping from ADLS Gen1 Cmdlets -> ADLS Gen2 Cmdlets

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ADLS Gen1 CmdletADLS Gen2 CmdletNotes
Add-AzDataLakeStoreItemContentN/A
Export-AzDataLakeStoreChildItemPropertyN/A
Export-AzDataLakeStoreItemN/A
Get-AzDataLakeStoreChildItemGet-AzDataLakeGen2ChildItemBy default Get-AzDataLakeGen2ChildItem will only list the first level child items. With “-Recurse” will list child items recursively.
Get-AzDataLakeStoreChildItemSummaryN/A
Get-AzDataLakeStoreItemGet-AzDataLakeGen2ItemThe output items of Get-AzDataLakeGen2Item has properties: Acl, Owner, Group, Permission.
Get-AzDataLakeStoreItemAclEntry
Get-AzDataLakeStoreItemOwner
Get-AzDataLakeStoreItemPermission
Get-AzDataLakeStoreItemContentGet-AzDataLakeGen2FileContentGet-AzDataLakeGen2FileContent will download File content to local file.
Import-AzDataLakeStoreItemN/A
Join-AzDataLakeStoreItemN/A
Move-AzDataLakeStoreItemMove-AzDataLakeGen2Item
New-AzDataLakeStoreItemNew-AzDataLakeGen2ItemCreate a File with New-AzDataLakeGen2Item, will upload the new File content from a local file.
Remove-AzDataLakeStoreItemRemove-AzDataLakeGen2Item
Set-AzDataLakeStoreItemOwnerUpdate-AzDataLakeGen2ItemUpdate-AzDataLakeGen2Item only update single item, not recursively. (If want to update recursively, list items recursively with Get-AzDataLakeStoreChildItem, then pipeline to Update-AzDataLakeGen2Item.)
Set-AzDataLakeStoreItemPermission
Set-AzDataLakeStoreItemAclTo update Acl with Update-AzDataLakeGen2Item, prepare the ACL object with cmdlet New-AzDataLakeGen2ItemAclObject.
Remove-AzDataLakeStoreItemAclN/A
Remove-AzDataLakeStoreItemAclEntryN/A
Set-AzDataLakeStoreItemAclEntryN/A
Set-AzDataLakeStoreItemExpiryN/A
Test-AzDataLakeStoreItemGet-AzDataLakeGen2ItemGet-AzDataLakeGen2Item will report error when get not exist item.
N/ANew-AzDatalakeGen2FileSystemNew cmdlets in Gen2, to manage File System. They are actually cmdlet alias of blob container cmdlets.
N/AGet-AzDatalakeGen2FileSystem
N/ARemove-AzDatalakeGen2FileSystem
N/ANew-AzDataLakeGen2ItemAclObject New cmdlet in Gen2, to prepare the Acl object, which will be used in cmdlet Update-AzDataLakeGen2Item.
\ No newline at end of file diff --git a/src/Storage/Storage/Model/ResourceModel/PSPathAccessControl.cs b/src/Storage/Storage/Model/ResourceModel/PSPathAccessControl.cs new file mode 100644 index 000000000000..02adb3224c1b --- /dev/null +++ b/src/Storage/Storage/Model/ResourceModel/PSPathAccessControl.cs @@ -0,0 +1,97 @@ +// ---------------------------------------------------------------------------------- +// +// 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 System.Collections.Generic; +using System.Linq; +using Azure.Storage.Files.DataLake.Models; + +namespace Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel +{ + /// + /// Wrapper class of Microsoft.Azure.Storage.Blob.PathAccessControlEntry + /// + public class PSPathAccessControlEntry + { + + public bool DefaultScope; + public AccessControlType AccessControlType; + public string EntityId; + public RolePermissions Permissions; + + public PSPathAccessControlEntry(AccessControlType accessControlType, RolePermissions permissions, bool defaultScope = false, string entityId = null) + { + this.DefaultScope = defaultScope; + this.AccessControlType = accessControlType; + this.EntityId = entityId; + this.Permissions = permissions; + } + public PSPathAccessControlEntry(PathAccessControlItem acl) + { + this.DefaultScope = acl.DefaultScope; + this.AccessControlType = acl.AccessControlType; + this.EntityId = acl.EntityId; + this.Permissions = acl.Permissions; + } + + public static List ParseAccessControls(PSPathAccessControlEntry[] psacls) + { + if (psacls == null || psacls.Count() == 0) + { + return null; + } + List acls = new List(); + foreach (PSPathAccessControlEntry psacl in psacls) + { + acls.Add(new PathAccessControlItem() + { + AccessControlType = psacl.AccessControlType, + Permissions = psacl.Permissions, + DefaultScope = psacl.DefaultScope, + EntityId = psacl.EntityId + }); + } + return acls; + } + + public static PSPathAccessControlEntry[] ParsePSPathAccessControlEntrys(IEnumerable acls) + { + if (acls == null || acls.Count() == 0) + { + return null; + } + List psacls = new List(); + foreach (PathAccessControlItem acl in acls) + { + psacls.Add(new PSPathAccessControlEntry(acl)); + } + return psacls.ToArray(); + } + + public string GetSymbolicRolePermissions() + { + return PathAccessControlExtensions.ToSymbolicRolePermissions(this.Permissions); + } + } + + /// + /// wrapper class of Microsoft.Azure.Storage.Blob.AccessControlType + /// + public static class PSAccessControlType + { + public const string User = "User"; + public const string Group = "Group"; + public const string Mask = "Mask"; + public const string Other = "Other"; + } +} diff --git a/src/Storage/Storage/Storage.csproj b/src/Storage/Storage/Storage.csproj index 1815c677481a..9b3a077de340 100644 --- a/src/Storage/Storage/Storage.csproj +++ b/src/Storage/Storage/Storage.csproj @@ -1,4 +1,4 @@ - + Storage @@ -12,14 +12,24 @@ - - - - - + + + + + + + + + + + + + + + $(RepoSrc)lib\Microsoft.Azure.Storage.DataMovement.dll diff --git a/src/Storage/Storage/Storage.format.ps1xml b/src/Storage/Storage/Storage.format.ps1xml index c154eb08a6a2..6043deb84d8f 100644 --- a/src/Storage/Storage/Storage.format.ps1xml +++ b/src/Storage/Storage/Storage.format.ps1xml @@ -517,5 +517,111 @@ + + Microsoft.Azure.Storage.Blob.CloudBlobDirectory + + Microsoft.Azure.Storage.Blob.CloudBlobDirectory + + + $_.Container.Uri + + + + + + + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + $_.Prefix + + + $_.PathProperties.Owner + + + $_.PathProperties.Group + + + $_.PathProperties.Permissions.ToSymbolicString() + + + $_.Properties.LastModified.UtcDateTime.ToString("u") + + + + + + + + Microsoft.Azure.Storage.Blob.PathPermissions + + Microsoft.Azure.Storage.Blob.PathPermissions + + + + + + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + $_.Owner.ToSymbolicString() + + + $_.Group.ToSymbolicString() + + + $_.Other.ToSymbolicString() + + + StickyBit + + + ExtendedInfoInAcl + + + + + + diff --git a/src/Storage/Storage/Storage.generated.format.ps1xml b/src/Storage/Storage/Storage.generated.format.ps1xml index 846372c226c7..1644b31ec2e4 100644 --- a/src/Storage/Storage/Storage.generated.format.ps1xml +++ b/src/Storage/Storage/Storage.generated.format.ps1xml @@ -305,6 +305,89 @@ + + Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + + Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item + + + + + Left + + 20 + + + Left + + 12 + + + Left + + 15 + + + Left + + 20 + + + + Left + 12 + + + Left + + 20 + + + Left + + 20 + + + + + + + Left + Path + + + Left + IsDirectory + + + Left + if ($_.IsDirectory -eq $false) {$_.Length} + + + Left + $_.LastModified.UtcDateTime.ToString("u") + + + Left + $_.Permissions.ToSymbolicPermissions() + + + Left + Owner + + + Left + Group + + + + + + + if ($_.IsDirectory) {$_.Directory.FileSystemName} else {$_.File.FileSystemName} + + + Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle @@ -384,5 +467,49 @@ + + Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry + + Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry + + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + DefaultScope + + + AccessControlType + + + EntityId + + + $_.GetSymbolicRolePermissions() + + + + + + \ No newline at end of file diff --git a/src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll b/src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll new file mode 100644 index 0000000000000000000000000000000000000000..10205772c39d70f6c83a120b012e25c7a206da7b GIT binary patch literal 163464 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

RF{eI=gCp`63&yO z?j@WjN8MJMXC}s{Uq^W><@BjmWYGBN%k!Wn%n!a@6G!a@1vF z{CRTJy@d1RsM}5bGI1HslcVwNsc|O8pC?D%D^gu1#-Arg-Ag!6j=Gm{o*Z>|rg>&! z{CRTJ-IeMxG5$O`>R!Tma@4(q^W>;|WtwLu#-Arg-Ag!6j=FnOzf6ojPma3#Qe7s- zpC?D%{i!Y!8~pJT%K>m~Vj&rInTP|NiSg&jQTGzglcVldoF_-)*QAAFV*Gh>)IF5y zGBN%hcIV`eouWoF_-) z*bC*xnHYbb9Cdkw95cqm`19nbi_@)Kmx=M`$x-*lRF{eI=gCo*N60bHOpHHIj=DTT zj=D^YKTnRjmvEjOb&sWfnYaw+$v1}>{u0iUqwXb~Cr8~&I8TncTXCKoYx@$;lcVk> zoF_-!OE^!Cx|jVtIaW1~kYk@`V*Gh>)V=KI$+5hbaGo4>d4wEG#KdJdPmacUdK`^2 zvB4i7VB85#a-JM@$&b2Bj6Y9~x|eXC9Ca`Id2+P;hO|UXj6Y9~x_76#OkDgt`3$zx z2)On6G-Gi5U_BX;a#o>A5-u*Z(?%j)@PV!eueyfo_euKCmIXpk{15nyn~bEBaT{$il1|1wv&l$0 z8MnbEBdN0I*{q*s$4J{6aokW_&$g4-aLf)jzk~Pp-ydb%(VC2;lX3fMGLlZl?WxH~ zIvIDICL`%&+)0}3T8A&JO_Q~`}IvKY|CL^gbePgfK)(FDWwytno^AB-ZYjgW!mPig>>c5mo z59Lyl1u6G4rc1IQ<&MRqBnwjX%OE9LkfMVIDanGA`wFv6vLIc_r6hy&c~->GNC0BE zcJOYX)eiRt=85FsvHoLxbI_!W{!L1bN<&Gh(St1Ebxr`yJ$w)dGLsFBGbTWpVCL^gbeYLb$cWCn@ zcdPd-J<)AtVLfF`X?94$PA+2rX)=;3d!FWoY5+Z_=mYP5TKO3+njMm`lgk(ZnvA5% z^rh8eIne(SA16M6K7i>6_q01%$2_g&)<_PX>?guIb0JADWCUmVAnAn+(M(9vg!-~; zF_#zzNiJ9K!>p+Py3<*B_Mfqs*&{i4s-Fn&&V?jRsPDRpv-FNW-}C;HnMwugj=dlD z$F))KhrKR+KkPvAepvn@*i$_$RGqJ+?|yx4?7LslF5mq+ki7eqzss$5-=DtM^|i6@ zb-lItUe|R)?{(#`Z>fiu3NLJZdHf4osTX-+>$;&Aw$#fC8dtqMR=9KiO2CsJi(;;hy-H#=m1_g~{Ksx^CzlD|N$JOT9c^xY_;X@h?wVVe*%! zmWN)RQZJk?tT0a(ZexFG{A*EG7;z)7MO`=aT9mrs1f+#|qHuru%j4g7N~=uXce-xq zeJAz8DM-CMS-A21nn$|I&X!gG%w~D=VDv^@*Qtq09E@?02z9~paduc0?lJ-*Woq{fDFYP2!(q4)Q zG3t``QcR3dO4>_j6DesgolB&oy>vd2lJ?StL`vFAvqVbTOSzj0wL#iTxt|JB((WZ> z1gN9ipSvj4e*Z_EPSwf|RtEa&Hx+q`h>1A|>sm2NEf1FXav^SSIbIh$fjMj|Y3pCJ_qMS^? z{YNQjFXc{3YfJx9y_a$)6{MtHeK4-b`^W0Xyec2rzmE^i@AM@VkW$p zJE$mT!etD#n`Z1eugg7?mg(_}e6k`)xr6e$+&2X&X)k?kA|>rIg+@&?wdPg1S+W8> zEobsx%>7anGvQ35N2I3j@VeY1X`Y|B$X79flshJ87@a9KT&T#kX!v3u#!$ohm*jn> zxG4%!(q8)dL`vFa3Vk@uRN1#NFm+%2+ZZamTg>{sPqosmVv@tZi$+1KyQ&&gVcywR z%SrrE@I=S2oKc5t(;?|~{A?R_$Tl64UdPW!QHN~PA?bArqc)U>Y||m>bqWJ2=#XtX zB)v|dzXu(%O^2k{DRktZL$>LV^g4w;8g$4u9g<$B(1n5y*``AhI+w41)GwibIGqXm zhtrv`e>j~9`^QvTo(cPh^D|-paDFE2AI{H&{ln=@*gxu*v46NJZo>J)=}g!^oX&*( z!|6=eKWdlIKb)Tl`-k&0VgGP`ChQ+hXTttb{Pt3{a%SxMa3?OC8(ynHyRg#q z-#^JMl&D=;bNVk$a*H8q7gnGCW0M@guU>8CF04cSNlwV4a$!O0PjrACJQr4`{zNC! zLAkI*^(Q%Ujx|^yaWpM{^s!wTJI{4D%;K&D@R2jJ)*1{D78 zd3|M1E3510KD4La%4uXF<^gS%^}Z|Qf%oV` z9^@OS?cQ^cJs@A8k9i;}&x3v|Rr4U=Vjj*i59o2sL!?6MaGC?Q#mAWg3{vJG(xD#MANDg3-xKms(iYzf*~D!j;9?%Wk9k19V;&+M z^1!yhxX5~cDdeG~E&eiOPfXkvicWLEw)iW|1@7507m?PsU>-2wvfd{~rMg%3!#WI%l7zSfTZOp7Dp-=nKu z(QJe4_xW9E4uP-eGes2tLG#RC1813bF(p)R$1{vK8}T#f=`9_}E$Qhm-5-trI~d=o z#svZU?A!c%ali5wNd_ShujxF)Q|2FSyeh z#z~=G*x%lN@p@5lw2ONAWU$M6!9Cj0_si;q{phig^`eMqANl4Oi}iwqHT3JUdieoh zA0JsSib(Bq{6za$145rIv;QezpL}Rky(=QM|AT73R>9&`!5AH7pQR7>kN#2fOw`5M zPO0t{=yTR5*rPrgmH*I`p~q+W=o_n8*83r#It`h2IU3k!Wzuc+STj$(OUp*z98IW~ zT7|yLbm`l4+1oxEmEl{I6W^<&+l^y8v>Sa}n`pjqm^W%HP&bSP>RLZnU7Y1*y>%eU z%gok#;=#PkoW-QftS>|$S?|*$b)Qajxf(6sR_*azzZKa3ZD9X*WdH5J{*gfZ9TMFmRsIbgwrgglI*XOw3sm`0{4C*~ z6@7e$VEXvGltdpt7TBL9JNo#0WTU@S`P?VlowjMB_ac7i;K!Nx?*%5ft1g23iGT|k z`TNviM*aaMF(dzwY-aQ)gZv*+E;%aXgBB*qhrxne-?=U zfdnA`V_!PC?AtU^sT}K7&%Qk-_EgWlGbZM$XYUOO47a7_x2ROvXP(?vX)M35T08qVKpRv8 z{RC-hE&pP*wn6{Z`UagQV|Rdv$#{kDrO>u|1^&y*a~J$-Ul~^`)mPL8X*mi-n5Yecx3WB= z&83~Iy%x6X(>1xEU8RPsZClpUn=)d8Y+O53EANKwo4BSq+uDUrHwUxYw@$YPU2W+& zyhb@}Tcc+>tV93*awx~u|9bvc*LrmnW}#BO`X?Uy^v~V0B-dMSnv+6Jugm7hWZY@QKV&A?Py$D3Ey+cbYQ$)(aF)QMGd zTa!F1Ey6IIhK*P2v9-}%6DPQAU_a82nQwJ)0rIb_$DwC2w9jHu78FZvF zDK2$XGAT}V1ispbbu7KwhhsmHxfi|sKe0aiE{qla(}hM`_1K%jaOQwGb|Op=96ZNX z(iP*_Rp}~lY(5m9l^{Da**gu?h4+Cyn@&4o^>%0V2Iqgj^ReiC@R&o_!)j%V%ku8p zN2XCxtFzS_?~he`m`@wneM;Q%EXsHb;*Q>%uhLp!SHSmco0Sv|*DC?t1P&#}@&a(DF{XQ7bXQ$5G3wPf!%xy9D~>6=3xi?80@ zkfWBnz5Mqi*ujszlU+zkSae?Y_Pam!9;j*jRjvF%$j90Hz!j}E zlpAf2*0D6sDv-u3ZRwwu^rJD2BQwbF*L0<__SYr-KumwHq#q3FV;`-aML0oY*uy+t zJ&Qf7B_6Jx#Tld}-dR11o@fc2JDiFMoI8ALOyJxB8y17%+~M0|0_P5ogoO0&_b5~` zDm?QeJbn0KoH#rQ=msr;eu^{=f&Kt#+L8VL$CzpS!=VH#42KddHx4COTpmiWm^_qV z39C4iU^Q0fnj0)+b*{C+@>S>B8!TFNuCu{XRp+KRSiRM`nGF`KIyb91nVZvG%*{&< zs&fk)taj@|Kc`tiUSu-U3~30Uxsn>zoGB@p)5t+Hs9}<3QX!I0B_*p$N^X^u41>h3 zPx7o>$+pG-p%U3UHTw#Age6l&Ed=ii-+`$9R*XZ=%WMH{hxMv7fi?sZYy)kH^&T4x z2dv+Z%XIVV9Y6Qd@tfLHy`My~v(jyd{bsL;p?<3OH^{{3`y{Tt=kYVsXh~vrvEI@K zXCpEpEzYK7LYkZnx~Sbs8g;SWRu#4^6QaWAWkOU~cR_`fw^(ne3agI^QDFr#Au6oG zpu##_#O5LPL?&WaWI|L}kD`JWU`1xyAEqk5g}OYxwRJgz+WZVEQvPT<+%>NLkxzd2 z$y>g2uHLO9BW1EX>XL2U!x4RCN%}+hIsZ8sgDd*fN#Is0!d0uW{bt+syfOJuK-##o zZEaj>Y3x`V)?U)YNaRh7MBc>gGB}dr&{%9(uaG82B5z_O@+LMFY2pTs+N8mxjhV_D znW?;$O-ouC-%ZI|8Hv1=k;q$FyR){k#;`ahuAGoIMz+xbq;UEf4jJ>|=uLXB@ug@+ zOUdk%NcyhvrRy3ku2U7Cwo;Bzqx^do_`2_&2y ze+}($8~WCi^i64Jo*hp~TS}5=$5YaplEfkGEZX{;pukOQsFpQUTh>b{a9&8ZQ$Bud z1YX(zvi^N(Bgn>sO#L>rF16V(erlCJvv$+9Q`=3NP!63r5RFF?EvPH0@i;WK8Ffbb zW~z^gTD3TbTxxf$UgG$xUiR^qwqv0Q3$3@Q@pm~3JW)$={QYzE)z@N;Z@k2b zq-ibJk{~J__j_-8|YhIQnld<=|qdd0{l}7_tDU%$dbCBurI;ot`0cpqU-&7UQ zwrLbMYaT%sOXkswwPUlS4N>o#4@X+EV+xJ?4Qoe6X?c5TJFeq4iEl@u(7t+`WOxSs zhE_n^mO|tjVXdzFm)?%8F;OLorXgh*gz9$k@J0LmWm^j`HXeOD>bT?WuDCkNIMsHv z+g;j@|IsQSv?JPXOz_5i^jo%7DzD=_B&#?+$H#)Prq*$DK(K5@CwrDY%mNS;A$`RD-9jsUB*RR2C<$pbY&)Tii&;D;X zFg)|W;@IvvmIya7r=P7>18XX<4o6mf3Q9RbT#3<>1G&w9s?(^QnqI8h1X^9h|HR6n zt{y67byA#2(Ie!fqN=A$L?&3)nqpa(z{>bc5u7~1=hkkj_peZd>zh;csr6GU%=Y=u z%`R5kT7hy}^Eo+^DmZyGI$WqAG#PR2?e1SxK`!Tr1ek z)%xN@P{JN&nIQQke@CK#!xU%FY3%D*p__=p@FP6}6<{ zr={VWho+_Bo5|X=R?_U#a@a~Vo4siZm5e-g_t?@QbJLP@;#u6L1su7Qts4T}x>#WQ ziac&I+1CHUm!q`3MwFzqu|||d8)L%Kpn0n`lwHPa1((ed`}HRL#ZniaOID{UZQH10|5?M=ZV`awVfPw8QQIG+vjaaTyFSn$#g1I^Q&GV~ zs)4K&TkN)*w40yttnqWPuq*x0tVll;dW}9H%}-1P54+MF#GF5=`4zjH4|#d^vw#Y? zOU7iqcN2Of9+vtG-sYt25wzFqrLXQ4$=Ua!qGeoa4;VC*!w#U`V9+-f2ak4!L4VqK z431CFBs!;O6ZC1sm1n=5knR-D(al5C!p8`60-z9Jrh+M>HBz&5MMQWE$wlQf$7 zxqPj%8+H8#wnL9~jYk;s%0@6Q70>)(va_&j28R3L(3u+N_i z^@mp+LuF)BAZ6}w*+dksJs8Dn24$;PCMu0Y?(76usn*)O7`=>?nwgcD5$m4^N-6L7$FV`xSH~wc;PeawzT^g#U)7>3I)zsZN zR7;Y$r)})LOQSB>QBoiGI;yPieEGoF<DA^(y8GZ?Dk_2Pu4$y^rkumM0ER@UKFignvNc9F<`21$#fU z3bqu1qY;^zW?r%H?_Ld;lE7I)_aG7-=9P(SkRy@skn|7|B4Oe%5^d&{iEEM9tC6XL z%+xjJg;NQ4+ywX(V*?Oh&CXC4) zo!U(6!gOr(v_Q7FaBxmPWl{X-h zy^_qgSLLZ6orHA`7H?+ItN=wTIveX;oT75e0MfEf%Q`9Nz#8235J5IJxXvRLtSgg? zBbbRX<#VBIzoR?b-ravkcdosYFLAyDQ}}E)chfRIMSs)u&TeN%cY3KivvTJS{I!W$ z@LD^Sab&3r@ytq3xI}`n1B@L@KvJ7XG8!-eWIO9Tz59v5SNreKCrkKu2s%$|R>^)l zW__kv<4k{ugjH7oSWpzCJenZzb~c?lx)X0%cH_?@pw5X?h39IYp7IK?JMQuH=OrNP$ot3&rY?EnujVq6wEC zs*{=Kc9$LWWPRbEW1 zRc;YA6Nrk{;`x&}UB=vn4NqOVSXRGjzTR6Vat?iIsk1U$&zilPBjdu1#!mIhFH|cP zJU5utWGke<{Z38xN&4Hzds5sl>2Du*dbwRfh^Yi)Or;oPssWq@HGkdmrtzuu?ku9BdcQlzRKGhfb6?gF#6s3-Gr9tRaaE_??{=dc zlI@FE=uCu_M<*k!Lw%i)usm4|95C|%vk);EFtW7{n8kqUMhwQXF$lSI1m3#W7`6 z5DXm)MjQ)(D`Iu?vL77QJeAco7E9?T)ZRYV+1)F4$YYci{vGAam$js+u*1w+SV zMGPGaMjQ)m`RrW*x2zqDQ=^#KFYa#C<4q&B65NW>C`ar%{Q zzI-)XWw|=bYc(YJjFg0a@~gB6r5{5m!Iu0gEkZJ>DZ!2WDlI}XDP(7@*_usSgwm5C zWaq5OuhJrvE({^NX-$5W7NPWA2qkioU!_GzCVjG>)@=DFEkfzU5VBv^1t>Bt4%J#v^{Im zs@k?9WFu?)Rx4kx`1U;=J22bsbnL-wtZ?gFo9T4y!)%Ul>r@-!bnL~f@YAsyvxZN{ ze#|O89Xm4XFg(w=ee+P6Ufv=5u70#1+RZ}X^6qDI zCU|+TvpEvHytDOPy=fn_sS&umYuQu?9&1l~ludo$vCn8n>Q7Lg;RG|S&vn#nEOq*m8U>T})oIvvh-_Z2?!`doKCuqL&-UQ(ay zy3{~7ug`VYC$&D;UC-3|Tut+%B|W~ zZi;ekE4ONga;tVIw`yCtnV>d{70ayyJ(OF!WGJ@|ZYwvLxwe&CwV4B!TeU;ERolu< zX0C1JR_#!3)ehxWZ7VmKxwe&CwL`g8JCs|st=vpdn+1vG)&UgCty57bw@yMRv zT~FU=oJFdIJ3qDxh1)(h<_CVvgxfwgP3plLO-bhqH+yW{4E($pZuZy`6Ylg_=Nb5k zaNy@aJ41&fsRKR1qhG0n!A7VqsRccUdNuw?=l6WpmPVJR&*x(HPF*ka8J2ynCKG>g z-sI4EHU0>zU|yfE#vj;K_@O9K-K+73RKu(B$E)!Nqg7qSUyVQh3yDAe4DlELrK|B8 z4@J_g<{Iy4gfN-`;o9egkw8aci8E$vmN_T*q$&} zJNDkNxnVeY?7^@%U?9vdBxs1uUw$D$gKGZr3ki&ib(haCBxrZ$FTarRh{*V>Ur5mR zjs6@t<3Cpie?00*pXa~mzJM=G z@M!?~!UTyPp7ND1Ot6nMD+}BFHzwYUhr#zP#E(oc+zKCxz(*$7Z9);+ z93(M4Q$5E%6VtQRbL=%SJy$*VNSdCno@383xqbnI{pR!N#Qay4d)D$13$23iZ3~t^ z&@6nQS@J-$*nwu51I+>ln!`WPENP%w%0RP(foACf&5{NBk%VT6l#l1^7Ai0+|Kyey ze)3On$nz%W-vejM@5Tplr}RkxK0n3}P4Gdhv(kO%pUf3eOXbT-dpEQMc&ER$Mx2EXOZ`!_369yZZm!QaJ}2ocjW`PtuM<5aEJF) z`G^P~1mXJ~Ek5qS=S604#j_s`dG=!#4|3rVkr~|2>fkzhar*5vkqGeN!Ia-xBNW_4rGyYy$ZrMTd{% z;U2HteP=u0bW^pu+>o5uvwzLrKSaIhgL2JNYBqUVFd-3H(XeGJl02P~gjQ`N2lzsJ znRnr}v@-B4oZ$HkMmx116Ew;MyH|T~2G2F}*a78k$aC$t^ZqkFzflMOaAM2~Cwaw# zcQI3NNK4&%vms}*gH}U!>Ud_WA;;OMX*@W}5kBYx!{JQ~hqhoit`);kEf_i40*1p` zFdWN@;Ybz?hcWGN2n*(sh~elR^sQtZ1IIB2-pX?QXLnycX`n9d#Y(HNlXsVrCc-m! zS77wuF*XbyJi&&$z+hmgEa9OvGH}Zm3_Pf~gh$cH!2MlqR;@%nYmDcj8#}XZ|y9ns9;a$r$L|3o7dvJs&mtJHI46V$KlgocJAZ>V&kxsIu{k(v4015=I8B} zclBdKMEzW{gK)1Kop!ih;t)J`(q%Wc&#`Nb&)nAX(ZqO^!>J~}X*`M{Fv<@;pA?Oo zJ=V~%P`;uc1bnF<4fwcjf1ml$y1J$+Q=eMw{U{n{bvTELk*U^Pv!PIQ(Uln^&C<2T zFJ@`jFv73d5Pp&99p+@UB=1|@ht@1%N{PGf?*?Q)k^2IF{Qe%_e z*T7hQ&S8ElVr;d4f>XLa%onKhC(o?X?eFRf3c}{Mu-^yEn!q=y_)Lx_@DMT|$wA`$ zNol|5u!75*4fPGG;7d{jbAcyr`JZ4xXLTt?d$a;|X;rj=kvEQ;lel(J_VCIC&0`pf zdHH4k7ccV56n*LMppRDwntX-e>zAl6?;dUG!)6URoXD3+Ey8ZZNDc7l3Bz#5L=cG_5 z%F9co`FT6?ga2oI*tv3YFx}K|7vm{5G$B9EBE2VZ!eO8I_<$zWMLR8Pz48J~;?r~b zB-}|nCzdtDIwCXuP_jAY9~M)$xQbtUv6X*9Oayr3t)(v?Pc62ysn(!5$PiudgNeUVNc|QdIXodH$9sm zmYF^NGYBiv?7ZRAa1$8J*c;fH;P5ysRjiySdyE=OH?TlHi%b*kH7 zEiq!#^7k{mn4+1JtY%YrrWmVf9t0IKl~g8`nW>fUwknafiy4rbkt*pn)q3+(x5W(P zHu~5R#M((c#)dLY8&gnD+KtN0Kr_sI8V}mcsZT+MnNy#H3^S)bQ^~Leb4|Ungj&6q z9d;#M76JfegS5pKWhlKZg+<(<`$vbsA!HuqnJr!{)>IvMk&1q<~{m1VZ$6 zj8ed+6oC+Z9jFwrE=3@Ojn*lvqfeub@HtAKO4JXTC)JWotDdzzRpXwg1j(4v$tXi>};v}mx~YN21X(dE{=ZOq(wvjP)& zx6=ftg(Pd{}O^14S~ zmTzh3Dyhn+(a%|x%%9MB#GZK+8V}i1n~)A(GRCOkdri|E7J2|S!-2u^ga_?8jyNVT zYT7*R;;506G8+xD1Y^{IhbQhaLS{mr#48MZZ;`y&&?oh+s=2(oNWA>&xY4!z)p3Jv z`RceCKW_eyG;ZNNMUHbF?YyU$&(%D`$!7{V1NaY47dPS(-Th7%=Q63Tp3C4Igu5HL z4Mn2&=5P+ul)u55o`d{-oP+F+x1cyvgj+Yb1x2?ZiCa+2b4cPA6dhYq@8kTk#usun zqRQcB2{i*vH9J1R+}*_om2ft}d|^#~`HFeux3PSe1cCCSe-11%@Eu_J`(R|)W=R=h zt6JHQYm;;MIsT~{@zZHk&pihwN^L9-*%+m~4F5bwLJ=$2-B~_%pk6*A-W!sO;6nZD9~4^0(Z3W? zez8$$4cc6y@V=X7S?s1yG4Nr5e^!qy;kFt+_O@R7I0mB_2KfE;kFH3qfbcfgg@i_5p!(m$t! z=1>>x!)s0axh1yS0J~}yEi#!HtebP5S-r=6t8%BIe|PH$_I^gh@pwIBEk&eP& zsIk8c6A&0LIRXO(7VS^M1jA)^c?=Ql^2mW&yvc)1%E;5ZO2IQv3y9$DAItEc24G1R zgQz5LnyIKOwqlB16&44QN9@F1OE#Y3kE566n;=7wNP0PERq_9`F2ptq!l9Mgo z$;7UU6(K#F?_J`1H(DDwN5d!aR0_IpYz5W@XjR0&r}<$H9TFVtLVPq3-x&z@c@ceA zAY{Pdk4v5<1Ao1>){|MAx2I)}s&BAIP_oqf05P0ju-wSM+V#`DE~dIOH(}a*uD*1% zQLp{L<45;A`){#W^)g86&tH$P$@OLlI!+Me_4S=MF7*}*Qk?TbYLns%HT-#at%Mhr zKNi}F8R8?oe`Q|^Q!lQ`XX=DW(UMXE-iZbd@#;f)Kr+#FFI%UJ^ zmNmJltY(E&+d+s`(0s~NtHSR|^Xj^*~u6X+2==}Sj@Zv$P`&UbjeQqxuX2K2{s5HQ}!V+b7lNesdJIgRCq zq(kRF^4LSpwc9p1*P;n1*xwoutii;LV(G8SzuRVU#*=8(7-#S_T@n^&RL^~&z+vRU z3|iztQf`#_$m6eYOvK1TQuJG|{7v{B8+*tZ|MN#ML~8YC-i{G)(Evp5woQg)K}wJ% z@e0oIk~I?X3Ja;fachV4gq}%v_LZg>y}&N#3C2VG*Lwk7d=;@w z!9G@AHp&Es^}g~WuyrcN4UB7k9M#`x=%2R8;~E;(yKjtZ*wlLeZ5;xcR;l+Af3r!mN(5#F%_&(7Ycxe;5NRz64kAqnFqBqs z>*j=g{xc{S9^|k(<66X9{+(K*_Y=5sz^(~3U2RIsxmtur&6)VHj-@Sy2V}IS10g(N?Yzjkez$x?Er(QIk%74d)nmvgPe}s16lfHi#SN;pFZn2YE z(-o3Rh3uft8kK3BNg`-{#c|>meB(n4ARR`(^kH?&4}3^K$qpbN{a`(_ z$tYoX$x2Z@`Tj>}27U!3LisI_U=SY!37DuxsMZW80O_72{(tt~1U#x@2^;QnX3b>Q z47&t|MRt;zED#VRAqfyjLP)|Y0$C;@kd2uMyAnW91O#OfP&6#c4kD;1ppgrRhzf{; zYyyI!fCA!zBK%d=eI^5l*X#Z7cklN+U*J^tTU}jUy?3APnZc2omY%B=54K?9tWi8` z6%P%AuqwsxVQB&Tepr@L`%H&R6}WKY3mr9Q4uG{PW&(cF3+;!C7??l4WUW92G#A1B zN&5S{Yu4I-wr0iT#hMjO0B*uB!h zu)EWFfg4LJWNw@Aq9}Q}J&GJ(H)9$!YjczN5}F#zZ3Pe2fs))N|LB66MPt29TFe_< zTFf2XWHEo-CVhJ~1s3Q4ZZR&EpNE#%jM{!1nShF;+cb$8oTn?Mah|T2%l(?Dt3)(= z6twaizb$qIwtz@@`&gA<{1^acm8r6M+b$J98z!Au9)jA)`Sf-2U(5TT)PI2r(gE&QmDRWx& z&XUI2UXT|4HLDP7{yWlwwaVX0gs)9htPFH#`PW6b2RKPN&^E)IRP6yU5q^;s_W)Gn zL~##5WlI$H06Z7`0xR5uzimqZ_tiD<78LJK;b^1SkPSA#6R~hTsNaD*3HD?spGmC ztq|*G^y0c1U9oN^7B>-oVvtOAs)BHljaHlBbQawRWO1(v7TG~ndC}q;oBnuSxY^v# z7t3f4w~uFlb1_|R2)C4Tt16S5LwACOXo@3l|;pg=JXYz~P=JxzzTlMD`*I)n9J=Yy&gEvI~XUYcq z(d}h}&D&o#*t-2?gR)A)Kq(&2-!Mp4>_s&nHpb2v<#>v=KfN z7+0)Hsy>EP6;)Y`^66c9$Esl??-={h5ZvFQi~C!20}aA3G!Mh5vI5M*Fia7{&rIUN&IZy==g+yKUIZGbuLFs8@JVjqqYDzO|-?t3=^j zYl_0X6oq>!3VL}?zYVM>sCkUUa{&OOakE96;C6~h>$a${%dUzFpeiZ=Op{0L{|Bkw z-Z}!Kiq$KRDweRgg+2iNgm-Azj3W@;`!g*n3_osq6~$k8yEgjjNC#u`1!*cNd0 z)xe+O^Ar^4dr_hi)yYjsI!KRxMzl83 zYQ%RDjnbzZv@C^UO%FZ<8v5#x&eMKm*Rofv7`ohqn#XD}#qTu8$uT0QJH-trnGIUx zPbbbdB(sL}uVKiqN1T2p^p7&l4AHU+#*tvv{c7YC1R?E9^b;fcyK@bsZ86a=WaNKG zG)6*yAEG0PGnZ%u#fm4|hVT}gBX(RYdd45?#jHo=01QkPh{WM%DD8f%Ilxm4+f zD%75kjI{=m`A`-`OwDRSY%B9ZjUcK;=!9vfIR#K{Se;o}Tk}ry2tbWl5TGp#Q5QfH z0lf-gDR5UQm%?^Q7}f)ROAIA9$%xX~X+m#n5aqyckYLy=21IVwf=~s;D`3flnozvq z>`_8%2os7$faiK;2?aiZ->{%xXd zSuCWojOYXj{rAblA^I`V--()4$ge@P9#M&6^&+aGxW|aLBl+z_>#}%=^#su(3H?Db z(nUmf6TL=Mqe6Zt>jHEd(P9bx1{vvdMBgL&BT=o2LRk`ojwG5Zp`Xb}gV}keVxx$< zCG<-&QaekA&BCmP10!M}*;ND2KRGSd5@PpR0`Kq0s0Aj!qLgq&wC7HYZx z^q>amqm~OWCZs@IExSc@5K$}W(Zc-|q_x2BV!zsZgFjI6Fv&ziTKIMVDUWrY_+5x! zr9sOs6F-&s#UwwFIKL3>1AI)SKj?WT=wYDY(4w?#7}1$TR}k%b7yoXVyEz!E4co24 zlAHo1pklA+O_CPAZywXSO0-f!emp~1I5giohXFZ}X1PW3kx+qYr714DNCfv_gX@lF%Hz z$AYK>p{H3JigyU7Ys&jF2x}9rpqCA`S*#xolIpM>4`A42D5bfox@?~x9hO4b#!eVE z5yE~@)o1Szn##@^Up6?{K0g{HHDKk*C^=Q1WY{1#Vl8_Dkan|OmUV{4ECCVwO4?=7 zsP1PS;H3;>yV(VGxT*WW6?VbkJ}> z6U~MQl&M~&YQySo=3yO7t5h-Uh(Jkz+OxT@L6|gOZw@)2>A;obYvb8zKkBGWVBh;u4{aj*-H(=Qy0GBa6`lRHU0H2E zdR5bnHT9!BO%jXtqgk5nECG=;2Wn-Nss~HMmxzF-LP?~sfuC{Y1Jsk{e}yT`VHH8E zRK3`Efi?lkU{4G5hSjI(%~lFjX+EIo$4bBB@#cY+{;X0hk(Ns#t5gp$D}0d+>O5dQ zrFodmZp_gTD8a#Oh6|ANG<(NlQ4L{hBRMKJSX9|;Uo=O>fO6Tzwj6C!O;_cy!uA|3 zu})VFWfwbelwhB(8paAcadc8WT~){~#&Ptz{!Mi;+Y-;w4nmJ40%CmBC}x`p&1bU= zuNsP3OcxA8^qye^+vZ2d4L%mzRSCOd7{zw_kv4cN>()&PyD#_=w$G28!R0J1iHCg^ zk{CRht@NY5!Bd#NyAoCq{5TuxN8^I0u}VLh89bdidMJ`F2G3;WezY-o7CR--6PkYn zKh5gGZ9mMz6Po?O&#-|4wbYylp2HUS(YL{K*%5&{Nk0eAW7Sf4Jcpz<&Sz-?JtEtT z&$1Z;4U+2_7qC5uU^IQh+S0g?9rmNn#^>2re$?OiBD*ZmE=!qlDZB1R(~ZlSE|qK9 zWm#-|nOXg4gK;IR=SS}vSF@%9=?tG3*D|L-&)PpRu4kD7O*NDmUttgX(RAahY`7mS zHg0Af;Jd;vuXl;4k_$m9RwpqjYdplB7w96S@EO}F(0EAU2)iUu1?1r<`^k@{8;>(}8n?3|XtD7mGx^cG z##5|@A8jz6VT}d)2c&S8B@2`RDSSn11|0dmSB)^7XJsO+(tOrsWVhaQs5^~n~J*yCC2Ye;mWwuJ771lE2Rrabt-R)(@Yiz3@X-z+| zoqkly^b7k?ptI^SSnl0~3p`W7awR8ydN`gSIrR9~ROayOG+YAVoIa$i%B6fTfc$}<_HwgRO} zWu{=MlR(AtVbk0;u+9%M@>T{+#Qr!$L z`Lp_>sjgJ+M<-47r6Ydyqsbwq!6$)mT>4pk)6`I^@FTUkk)(zXnPAxNkaMQ{r6GQF z(bQDhC(xkao2C}h%066jP_WwEQd-*=(NuQJW;C~!_7R%TCWcr6ZRy7)!%Vf!;gYXE zM-8=&%n{NNfp(}`m?Nbj19;d9YYTI*0(*B2dSa*A*xt$a3M;U1-CGFkQzVC!xjO0P+BWc3}}g!<__XvF`%WhbVHye_6N)f(vZPCY#pF3(jG#% zdWtu9lUfeJFut-%k`e^M)l+wAr$D%}>MqrSPh2UpT6d{4A#4Rn=I&B5A>InQOC7UO za;pAILn?&z5$Fd)2B7gAK`ZEQ?jh-OND@$y`5|c^q4{jK+G`#t)pBFld{(9|HxH3+ z(q>iOmZsb7JDUN9F*9fm1rmbp~24p-1h^9ZS0p@KG= zz0wgsdc*9KwiWTPB-KXqNNGl~g5EHXk{&DJs1U-&NSUPydc!|-q(b=22Ig;Z$b06A(#kT9j_KbsPmwmmrF;z2oA;ZiNk>L;v`Y1! zd6rZ$nxl)R{pLB+Xt;onlB2B0%nPOQV>#-kK4yMi8a6a%s8e*t! zSu0ge=g6w9XIU>*%-|@@biZYTRQ?o44I%7RsdN@cJ5=G8O;Y7-j#gO1Ew4$|XE^F^ z54XG_vH1#$vAij?sAt(KT^8tAaJXfg6uXdzEdunmG}=v<}d2X~q&n*gLve_DD0ABI3Q{eQBjY*gN)0JD2e=>>Ych*~<~} zHQ!$8XF|ABOttKlEH7agqCS?7r22mJuw}oLj0jdbUz>9*2c+_sIl81Twj7d1ui$8i zq0I8Bl(teqk6I2(bKy1_#_JvOxaD){yg;3_vnT$3sUiZt!F{3Pw% z#KXb>U6*oS<0w*l)N(^=^*TolA-$WDPoN#Dqn2CJA%Rv{k6I)-3YsX|+1-BBqLOd; z(U%sD+-(aFJF7lw(aE{cd_fZ0?rKYryjGxN!AC6y+4vR@TLj1`7YY;uI?Zwv+(N^6 zG4?MlR=HfD-G-x<5P2b71;Vf;_6wG3@}~l=15`tVVcq^AIzk{Fy*2G>EoTEbhJjw5C4Np?ogSm(Q=+ZDSB$PpBJd1R%?xymm}gMiZwxA??(?=6Xmx_65pz1S-Z-6co?93 zYd5+5PK<|bqS)G99)O6(keiks@+g7k8BEp``E`LVg_x{86ljUvXU&#>5@;QuTv@#v^M`GByfsg*BhU&BBBwyvDnwlbnnGxxKra&V z5#n!@^5j<$iI$uv?-gO#lJn)`gm_ENmoF0HEqSOs`#p@uTk)+>Lm-N%D#qxN8np6eh}=k9b&j z`)uoE+3ZJ^)+usLKiXq`Ty_X_Rz2G~O>XW-mDcHUgg_0o)2uV)_J~B=eM(OBqy5%d z@&G?NY<*fDLGgG?o-2>{qkQW;`8r8rOFn6RR&M$+x3hQ1MC$@M6A_Hb^9-}Ci{x!0 z>{7^V>+^EM{amurJk9!o++Cm{A=9ic${voOCC|22$Q1%D0<={ANT3)fiRJPQKdQ98 zEE^7xP8gy0SXaum1lkR$ua>*`QKfaQoGH*j!!+x9o(FjAx5R$dx1Jo*!i$J_NA@>zkfUB4kG9KtXhp|4oqkoO35Ky}6XrX2Gr54)tl zZrv*H5vZ|=*|y1ZKjUFxreNDUGCRx>tSW6g(=A)DMX@`pO7#5QL5#n9DG6v%e9@6BmJn4<(xbO z5tJ^D-e1dwew1%LFJB``Z1aV-Z)N96o}=C&SF9K0LV@NPde|<>mj${M(!=(>?D>LA zR+_I{ugEV6G$iD@^{RY?BWUwIY(L2MQzQv*!F$+#lv4$YfpYm-p5{lHw(Ih2RziF{JR@3nA#|^5e*!-EbN$u|;4N zr!pH#oTH#YW?zw>d->54nfWLcq_VIrP@Y>G$hnvQ&n0>2-=p_R@vrc|rgB3`l_-rr zw=+=ZUzZGw^;i6d)zI45nGhMQ%B6bzKgl@*tw{{Q9wS8Mj}dig7yzf!jUPv*~i z{eQZA{(7(Z>ym%P=0Df=S3Q324@w1!Ut|HRRh0<4FkWH)ukDsHC$_x zm<6cJYLj23LB9d0#H#!%=AdzYIL#4AWx=UMl1LR!f0*55HlF6VD!-y(A8A0U$k(^y z$ny)$3qO<1xWrYlR7#QO{axZePB#A)|KE#sFU@>LwXA4FwtpfV3;*MM(i>A*L^4KBvaYzS~H>;_OP8vuM|M#f8rGP?rvg^I0) z*-*_U(aadg-vA}a`S4kH3ca&VRjkn+HLGH_yXqG?>VKh@@2(v0!;+L)1z4qG?Pv|N71EX1Lb7}i*r{R(#Mwu2cT!rsg#@;0?ysf6xwR-* z2Ft61Jg;RLIOwlWE3W_j_K&MpzAjZUHLO(C>}9I8g;Z$$LGzL7-nAK+>%bBY z^#9*gn^<>B%lvyik=H)&iM&+#D19&gz1rd5a7jb zz?uWK!aZ`N?TE$^O(NQhXn&$vL<@+H09u`m0a^#{%NLs+aK9OKt|Iy_(E~u6uy24` zSpy00UN?}gS&D#OCi;xY1O5XcNEaHA|3nDVVc=f^u|@;!0(V)P!#lvofi5x30{WO0 z&PgS_FOBqhqDzUcVjI~&%|`Y)rM{48GToR@rW^CgbYni5Zp>%W4f15VRi8=s$TzYj zcDwYngw`fAyg!@_8U{%ViL*rTi_M3Df7UoiS_Pas@OcX^k2iOd;clo#l}z_A<0L#8 zOd{HgXn&$vL<@+HAUcNVM55D(+N2*ek)Q`}?goK=Eqhb?K%Jy|Q|fI_2Tr!SkLtPz z%~n6GT1cnX$qa9GqRn%G;+@W9hIcuUvkWNS?oDQRpEH@^eduI{w|_T_oZ`(~hy}N9 zw}Jc*s+~mP_8j;R5j{@yEYXWZHxs=^^afE(>j%(-cTd4j6z|I>GrSp_%LSQKtqdkBfJZuQ8-&iEbu( zgQ!}jCVGRY8fx$WIwS>3H)e_z!S4-F`)DpH6wS@P>)e^Q$%#j@=FWMRq z4JX=>Xb+;7=W!kA~OAXb> z^+wpO%nWMECbLEMFc?t}*ur2@cNFM->^jg!Ob!WSEtv^uB+&A@0#W-vF< zhu9*ZIczP^;Vc=nd09HqVxo`Pv)FV4{IYf@r0FID64vN&ZvhKSh2PM3O-m z>L7nC(ILbcLjH216+|nEo+8Q&6qjf$(IG_3iB=G;BzlS{3nqD@Pm!OQC@#@hqC-rmVF>xl$zM+X3i4NwzmoiwLH(NjcO80jGzOLPd) za-tPPD~X;W%EC#WXn7?1D~Ylw;uDP}I)rFB(F&rKL{AZA(Iihamgo?orb+kvB zSfZ6gPZ4DgP+X$1M28S9Ct5+YlISU-tOLmtjU`$^R1a&IXJBuLZwn-#8r)3*4_*<% z_hG^719(pcF9l%jq6KQe@5qAQ2}^lc@nAF)@bEnuyeNS+54@Ct6%V|QfmIGHb74IM zFO_g}27lE^e|6GdgY?%V{k2GcZPH(d^xsGN>yrLZ(qE7C*C+iB(%*peHzfUyNPlC} zd_U=ILfV>=o@S(>ImK;3v09RRE0S+b@?j(&PV!EYcaeMq$w!iW6iG&tOdASqOZ*t( zwOEBpb-H?-db)b8`fc?d^+EM<^;hc4>R;7rjZsrg zQ&-bi(@GPi>7a?%bl3FK^wSL1RBGPWhV*JzNAv>;6}JO}g#)e@jr>@NZR-o6@W zQ1E)@ACnx{fKjp#C> z@j&tO%PMGHR_aYQXwx$Egdm`HC<_^Sf(dAKC<_@rqih3uKZMBexiRb=P2uy-GVBRz z1FeABPiEWTv#~O?iTXg_W(}ZZ-vKJK(>N=_CoS&>`X$7Z*jb=5d}6sd(3Vn5pvh8e zpea%~&{W9_3av{rsi-Xd?6-UWFUtwdY zRU6eI>RRf0>c;BDnrC$Caz5tZ7=t6v1-*?<%fT!D&gcs;kp57jB@8BZD938hnyORJ zsRiZQ5r(Q-P7DZ=e3++M=X5N>bb_7!e_;XWkXhlM*>xLLx@5w2Uf`NAy_?r`B2 z3AaSJBZTV}ZkcdLftxL*s3rK^x(tsB9yL4~c(m~7;L*bq1djopV0eu1nBXzPV}ZvC zj}4v>co|H&%;fXIP9_jY@GD~_VVezmyFHc!OfAH<0 z9Hm5o4tPXvxd$={N%FiYX-Du}M6jU|0lA1^r4b^ZAV9f^P;vudn41X94H!$gi5v~d zkqm$gU_wdlYDo z0`1_!lM)FoJSkD&!s9OHNvj&(>W$t^2%KL}rg3aJn60w45b8R_sNO!;o# z;NHarzP>EpLh>r6nE=NOh0uT2_$DI;6Y3C1su* zH%dG>eDL7TSvkX@t#m1H7v>7{`j&XWUs5`_bAfMEf!7^ZoXg@$OWoiUyM1U_E+j34 zq4vE#PgX&(JGXN|VPSSjRZtbqEAfD(7(L6AR+v@nR`SR4?qqaz`;tH-W}b0NMF}Mo zj4a4?GYIdN->3vkFDv#H z6jAAPgM5NwND#}ai>IVWaCoxFh#Ottjl;o|WfApvg$(L`e&qsUz4a`1v$0)7uG!dB zr9@aMmJ66ylnrIcyn{=CVuZj7V|{R(L~|%8zRcr+aXY@O&{yVhvjlfeNl|Hu*Ud6L z&}hk*gaaRNQr-E`Krr{i$`oG?aEg(eP~wX(De>eM5Q_79-9_1jV^Z9{tXvqX<9sm6 zW|x5+bUgT~BX2=Y6$|VwEr8b7)m_Y+U{z3WOu8Vi0LOZ)uBs5fueUcVKY*X=E`z32 zsN~q245eCjn?!;;yDUE+HTrcxA#-~(3w(dX?gHlZfii&pe0Q9rVrZJsHXtyo@Ghwg zcTSn7z&9q%?I|ko-mU?9PGL#T@N{=xAq?t&s64^#&G8hJ-X56X&dY-ON`WGFd+s(! z1jiK?WO=JXc`1{b>F&a;(c}vVSBfCb10!6HuPUMv5MNR{##4|#G$1HGIRn)~Ld5~x zv@B0nQJlwH&ByC ze_UZ93^?8lw~w=EO(6O>)PT1X%XuU;WvsEng0Z|0;AodxR#*sb87^Yb50%0)#&~`1 zqOeq8dJ1y9VK`_&r^JMm_Qk)ri)EGw4+IHcF0UkkN(+2BL)lO$KAJb!sDfPIP%$L4 zlI&r;yJ17(reS{)zGAYKb){*=lQ}f2xTgmfK!p(9>kY(ri$HnYDTS;6!9WT0lV&ga z?#w-}32#^~gjEe+{j)};Vcyb9fbBt&k24FDn^3^AOMJePqN)tC%&cND9tYSVI7*gS zUl^#1SxNzj!czoKcUW=+B;3ot$O~90;f#ZWJoYp6_b$%zjG=K08E6>|YlYPKnfDIN za}_87LrJk$NMmelDPpDTO)AcySun{PkPYasJ{$rux!eFhSFJ1xprH8bKq=&|@O^IB z9(hD%%!s2w0rQbjmJOzGDC(tZ)DVRdz$nCSno!{3qY5g3wLt+Hl~Yoz__Cl`XQh>R zc>pv*5ck8;e%~0sZ>--}s>BLhAS8~?anne}L~P=)Q*jXG zvpX@eXpl(9nxFPgc1Yt_^ zfLR`~6jL}QzM;SugC>k`-Q0zxz@QZt4AKguu_SN_*)uOM9!5SCrLcg(vMLB?@-$rd zgP0qZEzr{Q)7|;t0ftBM^egeOTN;BN0FgL(cJY^T1|?YHg{aDkE)y(;6+O=l43Dt#F3Za+$SI(S6gyYX zJY~pay|Mo*h1bJ9MyZeFl9J(ZK5VA2poFHxSM9u4iXJ0!sEmZHC$$WW!pF0$!VK8L zt!tB4$^0|r|^m?aqB zc&3+t7u!GVUa~ws@iv3Jw9P;{V2fUr=^pK4W3oowJt)y$vu9qP0{1AEhx<<9=c8A~ zaA2pEDDg6eX5|7XgeNu2;{hinYc#we8O>mm=z%5xGYZ2|c67k-pv=|$C4+dM0^Jgp zwf+VQEf`BG1q!gBv~Y}QqJ9{#E)Yw$xZ*K)t;c{BAQ&itez6_{AI>Yd?1Kd|`jd*? z3QF?wiFu?OX0QUN5wL_WU6r0sHI@V`Djxb!`toAaE|O|FgLOS_@&=s_=#2}ej+P` z5GA&kB|&Hg$drM8jFSYX&RxL|`(KFd245x{N}3Y@c}Zh2g$d2!isn?%Q3(I;v{2!v zL;O6(nk({|a1*E$c&U&&G%<)>3jazVMNBuBu{cE%ZS+ET9{ei+D+?eT^NyN};C?(> zi6wAn-k515SXu~DXgRBn)@PA^)R+t0(Qu)(D`Vx8$FXrx%t%w<2*btNgU<<9pB#iE z2)h8|KSeG=$VCXb2>3Bgj2C%_T%?eT5^|A3F4`}LT3JoZoEyx|rOfmpGzz|5xEQ!- zb{d3X6~pcx!gywisnS@3yniM!vF%^YBF}OpWkt!Fi$(om)|4VpvZfRPW)1a3Kw)5! zwDDuEr>#HhyvUUziV<>35w-JUuE*uClt^I_R@Uv+5+#b;1*vl@qC|nasA|xzC}9`o zOOfH0x!{+86n#`J&Cx<^qaJ8$*qW-EMgsYj^cj_Kzku-m{%{AJHDNq%QD5>a&4dLP zRJBHSkgeGsZyDNS!{owlkJ*dXFttOH^eP9FG~lt>5So$58iy>I&BTo(>NZpl86#D< zHJ0p5i(XqR?l`#<#hn=Lbl^@bcM{Z0G8%!HOmLEJ0t!il^jGO9F|%3ckY%&2e4&=f zW^-s=kTFBrNbACxJJ7mt=#CD!5YJY=7@}(6QNyEyM+;97JbHM7;W5BtgvX@i2FqH# zPI%2aO?6u`WWu7c!0!zK7lBG^bI4kaY{z3sIi!C`{|9yTESf~CMsHCkTGe`sF43yf zTeOK*t=4c1!>iB^N&VobCe^%hg2)r23I)kC(VP`K+-s*Ct{ zR8d^Af{Y*=$ON*0450KWc}iUi30ow6x~>^!l4nB6hLRB_D@taR>?j#hvZQ2+XKSpk zLnx{Y)#yXjpfXgg57mLnP@O(h3o1jk`p_Uy85*Py#S#kD>qCPvejqK1i?E2kQ-bquvA^MGx0LLdvH> z)tb#A_1vtAGFvit-vK*X$d0GOiUj=71hIy5v3HX&#~(0Cwk&}^X1K!btS zqUUMr86|CJ*f*f^bfT{zw8P<`Fp&!@Q5g4FuuWsfv_N@*UP1;qNWU!-aW!C-WVJa6 zsEP8(TJi@Gq*epbYJuqS7KFiI(HWsG zHENwUNFQu4njBble^yLJouNt^PQc;JTL%%K)#&x)gLWf)&~k(i+LQ31L0k??i2I;b z>Ge9e!GR+IxuA<&&_pi$NHMvfg62!wVxg%%7& zP9#9JZdVdl^GG60cN-Gpst60ZEi9NLwGL+soyykAXw>U8=)iQKlZ{4=4!X)TXp`8P z;C=`?FardGP^{4w3;&#Eolfxs%Za+2PzN?A=s=y|qE3WHXjB1zHYWraAr8$wG9)I0 z-vDt@F{n1_3_Ko1Ld`M3kXjT$o712Z>TJ$hx*7qB1H3JC%>vM$dK>Gi$rf8|qSY2_ z0jn}C0BlZM8aP2gK@b%m6`ld{EXb!ueP(bWp%2l|6x2F1dyTNev0 z#%RPc1jh)4;Fkl2F33o1WMkCY`GJ`sV!a!!FKx{5RFe!pX@CpQ-oi179!t{L|y_o>+9SjlF?9JJ{3VdilHwJ5P_Y z&f2XT)wB8e2=g=FYA&8V-=OlP@6TV!9hhvK^X{63%^uEfwc6b(^w-Zi`W`N6eeTMm zgEm-p&hOZy?vo+$?pltb$~jRf0}jqnAG0LImM;mD${)XDM;G`mCrsJqRlVQwzn*F3 z2sm$T540jiI%*kn+?TXCH%gK$% z&CQK=RhKelYsT;bc>9J2bMU$bUUf^d)~M2k^n#~9+?AH0aAp*_P&4r&NW86v@_ozR0Hvo^y6ztF%m@TlRzA1%?s69i8%Jn%aM%m|MO zrz}`U!MaqgTaBq`IMi5iXwh-1FgXk&W{|?0UGV~f7 zsz#-`1B54*{sFv$71yc1@L8|d8C}wa)n2NY6l=4&sshF!EWvL2MkyJq{<$5@BL0@w~ zpK>r;2MzQSTZbTr7B*Y>r)4nh!Z6HaTPv6(8O^`84zSWhHppYR5f;5bZ5==j$jAV! zwpK6|gADu=N?P$qz#wrR4b`-QM8QQvoM=QW84+uDScMT}2@wiu1s`dENsmv!v1SGn zw*p`m1A_qSAaN%|fhmhzTP&tda%i%XOm@QDfVKb|%;thd1A}pgr)WSWTs2o4qbP~u zIEpgsw89DlepJi`o>;3b1}K+v+G4nz6U)Mh|FC$tk0(rq5QhrEsdK0)(^}YmfmM`W z__V#s7FA_Olnv7bP86(8geL~n8G(@?T+A1VklH9LTe2m_hLW}z(2YfelQ)_e1M4AF z0KsS~I1q%o$;V^BypB47LpoznX9tP}?Esa4gHgb-bwHEJ1C2@Xl0sy*QpCu7EeT&BK<;HI3@n3CqZT*9Mm;5ssZu&<0_K#Kd1wN(3DiwZ15FTZ1Wh0>nSee@ z89kITcqnCDFJeMqh}NOPilFp(VS*5*$4fZDmVoJjgUNt{|1cTyP%;USFG?msNe{yW z2eOQYVvz78RCzE7R75r<7$He8hL%0pQ81K(VNQg-gjx@CB9i_pJbn6nLI_#MLK3j%qLSUgJgbsp2+kz1IR-8vzmPe#waNvUyN6P?lRAQTSt zbB4ADwT131uRA;<%;kv9@Z{j-qV|rVK3}P~eRz02921pghvk$Mh3A&|U;!1LQ{r*w zjSlyD-0tv5XI3_tke8Dk6&W2B9UYOK8x_;e)yCB>%bA^<8{=|2-PyU>@akEEB@UlQ zVAZhz{P|aI)IeERmsqekXv7;y>P%0Wn{(43LANKVIJ;!D;KJ2nQpuwg0>bJHN-BmU z-vYd#2Q_$W0))bEbTKtu!2o|PST23E_xrao^3(7XiuzPe;k;prFWsF52hFVkeof9_jx z)32`H{CrVv$Xhof-@9%!?2oD-0mu(zBp&?d;AsGHA5>o2bN639r~ozn6cu;A&;NJN zD(ZmpSVj5YJyd}9z`_(I%Gt)9nN|4w%wriuX{JQ^XU87&t1z|b5X><7>rq}uL9v6M&^q|xyQ9GC$mjQy96q?91jOwKxc=gxV>78k zoX>&X&gU5Cd_>XK%-bA--46F?yqx9EMdcVBZweIQiKL_9IM*W$!z5QGaDg+lB$w>W zffI8O9|e8Yk>x0cJ6k*%p!^zFm{dOlbiytL#C&k!5zQ; zhGXBw&xSRH=Xj>fj<=Cvo0^dE*3pNf1~>dMar=(>wO)Mip|&WO*nVK#z`;1o4vcI! z&^wTiTm#`o=s>tkF%ZraduD_IjZf6K zZo@?Jy!N{&9xUb^&E}3D*y6{ZSKQEVYT3K0h!fH8_~UG}4UmH$afX>Lp|CIo?&UBV zD&20n6Gw4x-49CO(>edQ{Yhjr{9$m&F%@tU&@SM|zwPSpZ(_^VGBrGN@`(wAfA$YQ@r2)ka{FHbKnb*F z!P!_BIFiJZWgJ%X;Is_?8dI!H2*qPdFCAa{PozoW74>7FSOS~i<^yQJ^Xt1c4IvpP z76~RA#CJg7iplu8tkK#FZm^dZIGh#eD_5!C5$mT$bc&3N) z$?%CDMNcW&ItF58kxn!-g<`^0GLSBT-1(qUVX7W+UX3T^;xwG~Bb$^w@H6uqN;}{* z{%_dW9$)nO%La3RwkxT^5)Sg!2A&9@(QpD94Spy1@vk3zGD)JE;V1fdeqR`n!+)*3 z!r*`!&-odf#KJ*uGT4$&8nH}Dq3p4w^WoNj4`fzBS^f3$3j=8f+#o>xjsQJgLU@Xg z`5p;07xIUHLnv=Og)Fup%$rjFh_Ge+t8JnxkD2i4E(wm_vG#M}CIPmaKW`iB!B%W_ ziEwkm0hVCvM;k^_i-FZP{5I{vyL8@JqxY&$2a9E$!4B+gKJbl!vt$R=NEY;p)^If- zfqHvS)|dKs9Ngwegq9Eu-_ye5^4^#O^@B0-rU&-hEGpY@Xg^`ldQdV0!g8pc<4p;a z#TxZN4SNBF!@qp60F|f0ep!LB0JqW>@ zA%##r4(jiLy#>qG1rNG7j{Hyj!D<6Ph2Agvf5MvoXT<;E5_sZ4NKlrUbJBz3v_UPV zcANUMNz%y`lO8Mt)=>DlGgq)PNULdSR>^fV%$ck;wA4y!X;NERQdd0a?BJ{!z_B=k zR1$p4`wSf^4@B_-O!hRFvABQ z__R9B$kf?&>F(SjxE$)L=d6nygZ+tndeUaRVLL?(QGt96DCZhJe@;^Un4 zYMNYaob8-#U2UUdqS_7s7!v@U6JPz0SY~t@(6V5=Dz0a|tEuyTj_MW17nH)D-;t1! z=t#^+ZSPD-jAwae=o}s#bm?81H!8u847+AoPhN&h=7HAKWL7pT@ zY|9Vl+FsppCHC01m`kOLJLNS${r&Y@U+!A*N%iqpe(W{o+N5`0{N;mpChi&ZMVPns z-Wk>QoqhIKOVa+iPc`V?>dW#_s~7mS9`3FVe*1g(+>SKHCKAM;qQjm-x#sG-P0E~KQrj5N1h%!t9;kN)3tbaHrQ$GrBlTYUa$X~zX)cYT@v(%@=0mwr92 z$?uJ>tL={B2XqSN;*b$>Pk! z`1RE(&K}OBimnxjQ{(Yv6TEB6@f3y?DR0r}l~d{P0_295@=s!U!~NBW&5~LrG|Dg# zarV>dp;Kz$bW>6%JG(o(DcC7b?I02uHEPr!B>=bI@2%PAw4=TEtFZ}+Bvksq<^uf@ znv29rcXWu4zY_P*6}RKZM<0mX^5DFhzs|~wSUBs`>8a7n+#Q$yG;sIcYtz5GvAyY= z`Fkqu>)w3x<)h_~9BtaRS@6)>o6o*~q2Vu<`zLMt**K?B3SCm{4)?)axzkjSf_MoBZt|jZgYSbZmL7ZoJ{Bz?TtTEv5ffr_fx$a4Q zy=$GHkcRe8Tj>1p`WIb_o~ZtaW56ey63bGig!-;MwrIqr5u>_SD}JnBy@Fwt!#?_W zeWw$S6Yahn_uvB`RQ8`U_1l^a_YI%PZp6SSb_qtYPpd{TY0UVrzNzV__kIRz1162R zqtu*Z{v%^WBWDBN>8swm!b{a$w~!s&9kqWL&h1)UQo|3_>y zIfK!*V7oe{XIi>4Agk^%Apg^WX=U@9hpc;U^)|e)kg3vV9e?GW>uY}Lb#vg1%pFZX zN^Uv-!m){UKbYEb%-*s`x8zT5GIjfB;dLK;uixrfCG&n8aAU>p``-P>`Q)0Z4LiQ^ zP@jPl4iEUT^;=tC4thsB{<{S?W3M~648Iv$;@h<4vzVm!_dl)+cYX2tw$x?&Uw9*X zT%Xdip84-+_AOigHhX5reQ8Uw9nGH z*|F*J^L^5v__+VVCG4>_&+Tt_u!Sl7EA^Ro?DL*8P*KMKP;Coaju)&TUh}P_(?OGtqTN{X{tcN&TneN|HM*I$u_F_5*w0y3PB?41POt&C84SUT^-whcO?&xkvL> ztKW9s|ISd;7nX6I>&$y^*7gCzX9xHC_3#^C&w6!JWHYa7;DlveCOyCI^){nMKJJ{P z*#-mNaz5Z0vLc({TW-c&cNCU$FfGswLC-XqHs@-qT&Z>q6&$FzYU8>wfEnbU{9LV_ zEwSOL?2Y|1o&!HH;)utOYSCpAwn#s%cf`bjC!wA|l|tAp%CT2mvDy{x=8O zf3~)I)zg1qZD;N~p^Jt%9Gw@A%qV>DzRybbeQ@R5;WwYHVLkOld*9?bZ-iGwT)cI1 zN9WW=pL*D_=)Q(&d)GUXu3a9wHl@eRm$r}TG2*$dx}(3}|Hb06Cq7>7O_*?a;;|pL zUv0De{eg+cH>~S;s@c$I>#TUmIBt|=BU}~R9&01(8-so|-XU^9LTW4QM?D+LsJ^QK4k{1py0&Jp;Ud!1oIAEbg|k%)EBekk~#=pFMZK{YHz^hKzar&n|bS@v$t)3BzYad_~;U zPJewY^S5^oH0>N{*))n}Dx(&RV%?lwoCyksQ7q=Kjbi*D7CQ{~7tnh5_$5oMf4c`K zH0iS8LP_k#h}VW)FozefO#1o4;Id1}541iUzb^RZ2j8@IEo-!IeAT_z#lRf%go!9yKD?fby-Ir7AM|IfJXVK-1MpIfWpHz3wnYp^qt7lSwnXzQ=dHYLG zr|!A$;4II)79)zDtMg0U%Nd{L?`wE#VCaWSXKZi!>X@892}^r@c>SAY{ra4EPEJe+ zAAIfT`a_caTm;M^kB*+~z_sZD%-M1b%-RJ!N z(erB!d_TIz;1hE~lb&k*_PVHqy5Cu=*I^Hzh<>QSM+@Ey`fiGOM$aO%J+{MPD=`cJ;F*6^FXY3#bQ*H5pS&}FM`NLTle z*wj}#UrfEUY2=tAhNz&Ty5+9=XUv%=&Mo=vTvzM5+y%GNYJ`n{N7G>JnR#(d3;r=@ z*1Y#;9(k_8degw?FE3p`b?9W{u-02g4rihB*IlhK?xz})8^8I)$HP{3b%ifF{^f{{ zhuNdqT@QTp#QR%n{c85ie0N#L4RY+TTLsU}KVw~K-P|@!|Jgq}Iwxs$Fn)ipjNdhe z;`@3yclvLP-_EwqC?^cy(UHz}IDWebMmiDx_qO~0Z1jF{N#VvXj&*yc#rWZ2wNGz9 z^X0CEy&9#h`{+ci)W(+Y4y-tkyw2xz*e>Wk&74;~Y3_ZUpIN_PptH$QHvIg!?H8x% zEI*so3ocLFSO0^^#*Z()dM&?hs~h9Kej@bSuTz&TdACu<-kHB9ejK!a(1!i5bXG6D z{&L}*{KL(Tcgc8V>i%=hx`Z`dJGE!;bmLi7tKWvrp6x7t{D=O|#lJrK*|VF@H+c5Z zUk=)T(7%yUl)gD}_KV$E_pW)irp@zKK6~~P?Zoa&uRpfJ*0oyDq!%B%)O++zX;EmJ zehRZXyIgwXWTP%ycec)aaYMb)ajsGOp8Mi~$#a%u$*+Z)Hs1L8xmTr+8urM%bzSq1 z9gbjS^j-s__liFoz5j40eB0=4^$)@@dc%0moD&z|*xE=vakg{f%<^h~H2f~fS)TPD zUtUbIj#*b@N%xAE)+KxUUDMga-2c~%`hRKf4rOh9_Q`(?R3)@I@y+ISqmF$vrdNuz zG0ZpOp(3Mw%|~yKo3$nEP{`65McG^W${(aU>}d;6jEz0hck70Ji|U>Zm8P!UI{NDL z{TCmQzB}{wEQ4mx%x-5cXH-AYbImhnzn(el)ADz}ntN3nK1KD-(=8e|EdA}L8)ru^ z3^V<#J5#!?R_fxXh8sNdwk&D)e17X)z0BWc5A0N9!E{HbGrBqv*Y~-)k92ix=?UKR zZE43_Qw;Vmb{Mjrx_o#`%?qj1C+v!DIcV8C7q&eT++r9yPno)}SD*8XOXn7@ZI^uLr!nuWt~EBh`S(koYaXQ?RVVxX zj`fP_Pr4lZUaPGi$8S1!{o*69eYt$4FM3Prt`Utwnv4wYkUnF?fG+XXwr$$Lf&3t|1u#VG~jLh0xyu|+UJFB~14k`Kl$%w*NZ+_8h z&x}Uz=WSmc`glmL+_CkB{3$(`8E87PGP-k41eFg?046sX64RF&BnvKUMF<7|K5uUdi#6Vdy}e{&lMAw z;&M&Aqz+QKi~+Bn)$o3|>eY0x%j^sct&WR9C8F8|i@}JXlQ%QgEp9cIt?BqpwR4Yt zTB`Zg**QRk(FHr;ifZK{cb_9JsZ(C-UW>87`4e8IswctitPe~BM;j}exQ88Tb;5Hr zMU$5P`x`HAeKF|uu0Kuhar9u^{OZn5uU&k+`SMrCJsZ4p($o&GonQX&m6@X#&N^`Y zz^d*28a6zY(8F{j@8Xzxr=PELF22pyr$1mj!%nRk{K(7uSJ_Ngpg7=$rcF z%`3*Y-alQx#r*FhPK6%dU1w2i)2UtGZJn?)amCe7_ViycVdIx=`YbN4Xp^X)c4kq= z`si(`zTE>KKB)fqm#d9eKDzPbnLWp{uHG8hD)HQyk2@yq|2Xl5v*nt_*9K^duFU`N z^{dl&kF7i9iLS3b_3Jm&&a6G1^!AIbto18D*N>jDdPrql16_k!sZWL5;^Q|qyu5qC zs64lV13;(WPcX*OWiG^6Aaj3LL919h_~5IWg|s)^0J4y2M8p z)T*C+=8UG#;n4i#w^#HYP~l3P{npDXnk|z?)HwLU<=OY0|9r{v&bwTi^SjfQZa&j( zRhN*-uYElwaoyQ<^B0BdUODpQ#s9Cm^Ny#o|Nl6SJtC65$qLsw9DDDPk!;D{A$vre zV`LSwsgRYdB;__jW=2Mll${yb5#o0prPO_QfA7cl`@J9c_xF#-`CP{}Tt1)c{dzy& zulG5)s~7#~=12qH6}1l{@H8ofb>+M(C_`fV`zS96K`_q91&1oZ?_9yd#ec`?%Ns*N zifI&DxqR_aalD^GT)K#xkIRSS;cXd4se6mlInjF#`Qrl*UtOgXx3)60i+*2KxKA*v z_qhd!z%AFHZQ^>w?MPQYr20Fq_x`y#|dhay=f z!EK}8?lr15#nJICNwlo)jj&BBz?ts$5g;Bo`bf8QCbPoY52FY8kWsN%@Jn2c;w zRtkx+vt7RvZ=%8?(`%Ze%n&u+5{194m z`v(fT>F9rz0KB9te+y0J08W7l38W+p-zmw@q?Zu|cn<){SKJE&U;;;Q@4*o8_*<^; zYrXB?#=GH>m8^|8F=;`*ZM)bkT%z_j zh7yb9y5^9w*ph)#?iV^c@S!f(8`Jdr3$BhGfw*2CVlQF*B^5s5Bv z4mf)_1`)|2OaAo<4(nZiataSnIUJHG4AA*?r2GsnX9yCM%-AOx-snHoYGcv7bJpk8 z;@0P`+Wz{LPc(Xq=i2O*u=<-i7AAI6jT23e3v<+CDUgk&`G(in6uzl`kD<%*Sc1hz z#;Ig$1?$RvswGJ=t2NWW2#G5S0;QAk?TqTgu!{(lv-ADS$7RFt^39 z<{_d+*=gU|&_zh{?(0L;8=QkPVecQ7^J(dsV3(0cx6xTXb|;)1@H<7!m86gl3zkfh z)K~FliP$S6X^ou1B|qEDZ3HzIaY(wG6YiMA;j+?HGGD7e(P^Q9sL-KSx}K8jRPW5* zvc=BOw#ZmOP`2`%AT43S;g)@Hmf$NV#=X$~{l>~eV=!@ z%rr;N@tIF|S+!$K@Wrcc_vUkVGKQ%KM0Ty7IZ5J9`3IL3*JM{+?oQIn@iXWkRkG+~ zTG|zFf)Z@d|dtL;_uH@8!o+M+vLl*a3M6Bf%p-Upl( z98~VkC3&^g;x_GxZIrkRVL#C8rg~Yuk3F|(AY0p)1;2iqo< ze7?7AQ4$w=76jzu=xX8!y^xYiO@lmHm>AcUKP?SobVKd{NE|ZP>{3;!@w4ZFPug2Ulw|LO`9+E^|plbDz0aJ!74VUAbk=DIRY+-6lm8!r-Li%AL z#}?8-f@R^Sso3}1MEcQBKxJP<5cyhNy^>(Yda?Aj%FQ{u3w@*M=N{mnZY+IWz+K{p zSNbZ+u-%LrYtF`N7N&iQly9aGSF5{R{;|nm6EDQG&~B~6X-)Ke*2#6nsxe`!B4;bO zPhO@aG0zL>_^rti9HRd7zPT!#Gel1^$-JK=NG$D4avPB_sOxdu@pBs^6@9F7VQ_I# zE-v`>SVB71s~}<5Hcgj%wCkc1uGZ8ud9ayMay;r}=MZK~5m6QF z_Ak3pLd%k0V6$M(;4sdia?3P)g3aUwlbWP6?1;@>-ggx@t2bS;TWJDm9dq^8O0%8XDdF#@uFDN9z<*o0p!_>c0uTwxF&8 z07j@^V88?;5ull=o~ah5^4F^X;PM66EePttde*mKXA1C}!e9r%?!sYk z1B0D5pap0gj=^9j`>Pa`@4z~880r4x_#OZv19kC?n22NmkpLj#zHvBS2xtQUqz+Gq zfqs(z&rXL5-c~M_?x0)6-UG-(ija1pBfIeTs z*amA;-qVs>jc&b8!Fx}nX7Ss_>XZty*X-X|)-l6#lTEBcVgsTSwR8swZ}|67tI@8B z%SLJU-2d!2DT%|&nLaH+ll!uQ&O1S5V$SNByo8S*%NkigUaUv(we^lu7>Zm^BT1@r z3a|*%7wxv~coQ?Zq_`XnR4f_r?46BLlHLWc*T<|Wa*yna_0+^1IyOg zw?+gd%DmBv2am7Co2!NgK#(irFFRY`1b>|X3LPlgju%*`v7-?q?T zJ{gs1J;w22#F}p*`D51kq(QWSEX7*Gwd7npHD!|2Ach_^&gQc8Tqy-_dU#9UojVzR ze$3m-i4281N-RMex3}sXAFCx#y!Z5>UYHk3^`%tXA1G(B^PDc--i>-s5HxQuR=Nu; zVxGA^I_l|U87I+uOHV_yE=Zp_%jYM=vve3)01p!X>A>}cA^brOcqFyVL^OadMf^hm zMTH3kAvgNJ53~5brNelbP-aZVm87{_wz$O?VWu*pW=RF%w??lAJ_r}{l^k0(;=;kJ z{+qxSG_!m-hh!6D*?a7%o|Uk@TrWa6SDDfM{$7O$X_G#cd5sxDFwfLwRNlQH@7*Vu zM-^6ZH}rVF7DXuggunYMv1lgzCs(m*{P-g&A7qnH4kcl8k2aq=yDZS>cZF@Luxm0W z-gSb0SYm2((sK+d)Fmhw$a(VNg}^E}8=7x6AY*+j|Jf4WN*`@hz{7`gCPwqI52Y2K z3~h#w;OV!!O`V?1DY2hC>swhJHJQUb$|7~TBZ$`7Ca3bA5C%d-Fl0*ELsqfb=t6~7 zfN^Y&Lc|13$c;ir_1Aa(lV@xTM%$yfVymeNbe*0SlUD`uSxjJy*|JqM+JBsrcMIsV z1)Q^xWQqWi>^n7tKtNzY1_QV8e)|uhfCU-IzsP7X&>_DE7D#k)Y=XmyK>{)hBsw<; zg4n?*#{$lgujyWhAwC2hw7UFAJ1`kl4C15EaU+7-S_#E7xLehz8h9k8p06u1#3z_Z zN5E$>u#HB{(PJ-Cf)@pvRS)@;2(OTckP(0bo*)PVeLWLVnS-eKr~RuiD8CR7zmN>* zEs~Lu`HTM5Oyse45XrcL20X(jYF{43 z!O=s9q(2uQ4H>$#=x?WX+O)ZG%KWLzoCTas$(^S8JH=q8YqRqLg+orZR1Q4 zI%VDQXKpk!<(c%FlR0y=P=5*wsvb4pRcv6VW3?r9qh^XMRkMoFvM4k8?9CvttnXP= z8!4+UeYThQCbpz);D${-BuW0tQjgka=c%;zvb(E(T=>xCAr0)fN8z~eSs&W_bE#e8 zGko$@`Ri}3YID#V81dqLx^`>opUInCIC&EtOOsjs5Y9}4cWUBKwP?Sk==n%!?3&zV ze?^*RemkR3C*42uocwhy+W%3nBWCu_c?-Kf-V3LAjkvb zKhUB71$W&qjty$i%mWRIGX5YE0mKae5%Yr#MF0}tR3!RI=r3icmYT{J4JxN~j_>RD zF8l=%ss(lmeHWpqj=;YpLUE?U&k{|vjHO5+Tp<#-va^_6%HQX8Za|-OV@(w7ZRt>{pUY*j?GU;#6Q|zDr zbb$h%!m6j{u_Q~61XZ9U?fGmn(C_>r;S!BOiZ!C=Zmm@T~OipuJ!rHc0V*1 zH9($~S-g7@lA9D`$XWB~Gv@fE445kWXWdf1y+>2m`Kv8V)86Py&#gR9wTX@1cd!T? zZdN6TJ2fG)K&9$xdFwKhQ{&C-JL21c0Z9(AK6y@k<2OIi?FtVjtheOiCxzwI-li_W zlnt(|2uf!bW~=}y`NHOU-4#niHex?s5q+;auJ^Dbi6c%{ndcwxNEiPibyvA?bHwe6xuc7B0iq)x zuSleNp`~LG`OvM4ZoM)Tojz!XCW1>x*8bchFWd(1N9^}j3dDcxOqdpe)i7PGpxDD{4+5@IGYI%7hHIk2}m8sOQqU5c- zc(Ru3tE|3e-AVfq{f6EVp#F2`wE7NFor&h$EqW?pzM5_WEZ!xeOfC4(5*|BkfB6+S zJ#N*I;F}kwF(V$~Dx_e*c@5S98jjQfO5rj4FPIg))DEIg>Ce&UpM9hsZC(+C3x25r zeCcID4gX&T|9=^$;%BA9j!}2GE<=d&Vsd88NqfxaV;vIpsvc*mt8rQlo=p=ov5hYd z{~-5r*yQCBscVLl)W&==SDWZ#-QzFw`71o+)l<~R{c>A}3r=^2GvK;Nu5^b?jb9|5 zY5X99h~ngDH{8;Eo|}FR8&WdzQstb*q#^spEdH6AmN5qX;okIp4V<2fW+};t67yrR zzV8S)IzH8sIEpv8A1ApmF{%Ag%G~drLaC=ru^M5;oB;K4p-Y)kvqjtwapIqp1V4K{ z;SqPq{64v#{CY?n(e4{oejBt-#;6Ysb`q`(836=SeRk|&x9uO?E2mYZ(D{U8zvu1J zD%EncZ$(?Hur*mY`!G(?fOm@Gh@UcmUbh7rIb=qFZFB#`Ylq#-q#wtB;Q4Ei9Ynd6%aSTzl-5*Rrp6+=rO+3&twj&eQ zif_$)O?5ePSwSQGnz&=^HM9vw7L_7jTgDk{{*vu?%nhUG91-#Nsn4t|OX*a0Yq`u?z^;RZAlU|^w*@Bl===b2#5{WQP@;D0>;NZwI-BG@B}$^G>OHT=uF zd6!?J-W5EuF9sB>OMi3T9AvGT_y8_yf5^#6v#i6{^dUh%UGG6xg|rPJW3(#m+Hlsi zOCZ7P-ITXwV!?c__fjpyT%0u|PzIH}-|L_FKDLeIi^VvX0S3HQxcEh%t z$!A+d=A^Spyc?!GM!o0J@)|HL%=*q;h8tC^KLc)*CAnzV2OD*-@z#h$t9oJwyCds% zR-w|1)W^|y;>pfoEwM%A*B`r{D7*hwmTHW}u}83_vct~QLA%%(w8du%*>-Npa2 zN#GZ*^#_{fDAz)w!vN}Ur~|ZQ5&Zx&fS*AXc1IkE9G#RB7Noi@L-}f zXw7A}6U2}~05Ngo02qW&L?3|Y1`wS9q73uIA1z(bDGDHha<2R@-Yn2&=CmQg&P?ZO zXsmXTT#kp3;`Sv=$)htLj5sLUk8xYDnC|FFzb&*fj~XwuRSIUdY^tSfRl<1g_%x#8 zkInqPHN}~E865G2ue`*V{8GtSYPI$W&*0%eT2|^}#&OBot(V&dC=1^?4KnY1kc*Xt zkvI5LkJzAbk!z4!K_s>c-v>rK*BUx)L}x%!7jz6em|_c8xbBk!=8z^Ih2(AK1u@ub z8S`shYnAoQW#=JE(Vk&76_1bI{eY&B)tJu5Iw});(&nS8;nkIyP~38YwrVo}MB>2! zJ3f!0V|dIRTE?F=?YPS%l7mF0TQ_TGJT&@EGfMV0rP)Q2-8$wdDAN_F29mr;*fqKz aok~A<-HE?W^)_`9L%-_>s-#m5X#WSf38Nzb literal 0 HcmV?d00001 diff --git a/src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..be64036f12fe7cba2ad12805e011cea81b2320f8 GIT binary patch literal 18808 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�Q`Ssy68Q3pJ*Q4?78tE6iEZ%EU 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 literal 0 HcmV?d00001 diff --git a/src/lib/Azure.Core/PreloadAssemblies/System.Diagnostics.DiagnosticSource.4.0.4.0.dll b/src/lib/Azure.Core/PreloadAssemblies/System.Diagnostics.DiagnosticSource.4.0.4.0.dll new file mode 100644 index 0000000000000000000000000000000000000000..a2b54fb042deaf5d73a734ff42aa9f50f3ba264d GIT binary patch literal 49528 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 iq^omxm8lvdyZ6!8uVmM2y8i*}vNhU_)mSsO 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 IXGb{$00BiQzyJUM literal 0 HcmV?d00001 diff --git a/src/lib/Azure.Core/PreloadAssemblies/System.Numerics.Vectors.dll b/src/lib/Azure.Core/PreloadAssemblies/System.Numerics.Vectors.dll new file mode 100644 index 0000000000000000000000000000000000000000..a808165accf4b28833d22169931d4c879defd96d GIT binary patch literal 163712 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�q8Bzlv}ROx-}ptnKD&8tasR$2=E({1 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 literal 0 HcmV?d00001 diff --git a/src/lib/Azure.Core/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.4.0.5.0.dll b/src/lib/Azure.Core/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.4.0.5.0.dll new file mode 100644 index 0000000000000000000000000000000000000000..0c27a0e21c7ea37e109b34ae8fdb80d298890785 GIT binary patch literal 16760 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 z zJ{!$4*N^^~H;dooLd4x!px1|Iqu00bmQzt=v-zbjlB(=ryb!D~mn=9OHCd5wB z{JQ#g^<7$%eP&NdZ|WW!y|M51i0$K^zZv?AaF^eu=wCi-MLzn?to*>N;Zb8QZN4;q z2hBE(eQKBXvGJ2vJ5L;O<@&vmhxbqKnRbo)_Dl(1`^E^nuqfr;6?AUwm*nV@xDCXY zoqVNp2HVDUA+in@v<(>VoIQERu6Xq(rETe|58{^VoMJ`3L-wpZ_T=E3=lU+ZVZCC= zo-aKkt0oPzB#3~Lq%qIO+wE09(sbmSSC6kt9c+7?yz6?Tv}E4qcebnjJ*?JcZESk& z6wu^a{-vR-`j;h9y|-d+%FOV+>WP!DpT1gZc_ZYH(u$`{rUoHhQx9YF(zWSnex`$tPzu9Bn zr;YgaY=Pe7b=AvS2ANy-^j~bOaiDIQy6%>Wjc-=BeTvU{TxxMKxOq$F{i&f2QwWJl zF1UdtsS8kNYtOkvxh>i^#zGWM{~y^}Vf!YRB+bC8bL$Tiz|Wa{z`iq5Gm;^s$neS% zr$Zc4oYUz9ScD7VYEL-15pJXtaHdceL8AY5CndqZcLzA>4sdV>u;wQp2+F?dtuHY`w9;rYcu$>+cIko=P-QdXhT6**>hV zzTM+Zs-fq1`0k0new0be+LYdQn%6d9RC%}8{`(tUQ#SKcoF=R*OV+Wy>^blKgS#qP zS4ZWn4X}Ewb+F7J``~={mX8l?Vs%Y}qbyhF3LEtY>rE8zXZo{0Sa;6 zA@w=ibj&@=fE5YT@ArwnY!)~;?C7p&kKVM_i@9-jS1lf7#_Npm&))GK-K*J*OA>A! z>bm1V&nuCEkKM|3o>&Cb81D6*(=F9IJ2SXCNWuB*&TD`=XLG$CQTUD5B+%SY8_TUx$+!8>9( zyZ>xYmyo)9Q+-R0ss+_wS?gmbUht0pegY$=zd?NBf~A8)9Exsko8JBI%HgjUZmaPx z<1W6`cy0Qx8gh5|0^H#fLRVQ$cFOCD(cvJ56#U;0ol%dD3SDrzrinU4II`fL<%7Hk z4RX8Jp_9!N6FMDxzY;+M7w{)HC$t@av*!5h>!LLL-qXtCtcw;Ujzlb3!;}u5hzKbQ zE(W*~YDS~8? zU8XRD#}?)!XNs8VVjkhy(Ev_3n%Fap6@nHCR3L~;g^6+?@J0rw$WR!00hWfXm<;1@ zHdM;{roAd&ySOnT$B23Px;V{znZ`oBd sycgzO%F&!t$4OxJAN>A^@FH)@mxCV7 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 OyIXQg_#$)@0sTLk9O=pc literal 0 HcmV?d00001 diff --git a/src/lib/Azure.Core/PreloadAssemblies/System.Security.AccessControl.dll b/src/lib/Azure.Core/PreloadAssemblies/System.Security.AccessControl.dll new file mode 100644 index 0000000000000000000000000000000000000000..e8074324cd13a2975924f15066bc6c9168289a43 GIT binary patch literal 54416 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≤=~>Kxe(a#Ni{0FDZd{=!XHnFyf5Dj zb8G*{%Tjt~dz`KLo)G?+m3sK@Jgpv@meug#x6=@wo4%?M9ZU@+Fk6 zuiRkn8)~PJE%e{A$@{QXvG$P$_Dvq#@CDS@!3|6LeOi;uGw+XHd!|6Sap?wj0zi00yLi^sd|k&Fd>!vDlwh6xa4 z{`VUqrEj79jZDq|J(E0ovsg!5zeGLxjg&>mCbScufHT>%O|GFxTajE$!2%)#JCKmrpG!)_*=i{=l#+8w4**h|57i}=bJlih{)lc4fY zr*ULslf_}>&CVa`3l~~cBp@G;uThKTqH?^2^RmOReZ$Y#nX+*nHeBdN6`)5pO*lhH z)h9c^b8b$mw$xrGyhp-R9%~bB42F*>*!pxy)EK_nC z_DS*b6=>!#$p-Cy6h$&H@c}Pxzf>3>sEN{uRF87e94ktVVa?A(mrC85?1Ya5-qR#m z={5DJtRQO#%9_Vt{vlVNpUqXOondv2vckonBcN}VX>8>Vkgo|Yl=}dO^m-!` zy@nv%6hG9OIb6yuRebWJv@ipPje82CBRy#>8#BMgso z)2lWxNE4l6waGsWwT#3BV;W`6%M0VrQBk}!JA`06JaPI{>Q%<5+Bn<7%WjXmX#Nk2>ZaK=^WJ+089f~W!i%ifKPWVe00X*&ONlJIA&yjPS2#H!>MIO0hqAp zl^Eedokyn(7us=GgqaO*1>)slIv3y9WkQI$3ck~Y$7=EJ2bz(oIktCW=F57_WQDKWbANlL&{0VU#?JXsW+9aXZTNx~`3VvS*f zjZNZfp=85z%CEZ;TN?uDsUXz2C|npJ-VegP8*$Oqofci8m=&9t;!=_@_o81hgYvQLtwLk?$VrGW&nCQE5Lv+~bM7~LBwF0}-NerhQmf-FM zc^LAFmu>#OkCa5_BMv~fIMJ}s0*{nyrsoo{#IWVS%VptpOg4IBi0GWeCUMt~tRMHa z_-BRZu6ge-8fNYFTbmn~+xjfL8|?SR&Nt0{4p*MOFtP99FOw=AKN#)!njM-yKJxgW zE!{q?%9@?K&K4AWbf6@5>a8oTd%q7^buD93*w*fw|AcLp8mNl1M^@wrLwcDmE~?T@|Zy_WR%Qc9QDW^ml# zbh_I&IJ)&<=V0*$+F(p%gJJZ8@fMDrso|jUDSdD!irs7N{6Qy;_-II zyu2P*<}!Zk&T8ea8Q^&yG=va3VDw-92)q#dVUOa{1@Zfyct>n`KBeo5Z~xu6KZdO} z`IDxPL9j0_tt0IXwC_;JMQHmZS}*5ap*VXe(X(Y|?FoU;#SO(>S@{ z=TsnRHcw+ly~TeqczOYCfK#Wnk(X|21zO-61saR@p~fO?MwmWXcsr`V&+b!OIZ#(RFYT`F zf8LJakj+nCNch6SQ(j`i$aMH5~f)6&9D1S+=Ji*3Tx^5l;#fqSkb#z7tx$4N9Tjv0xO1 zVKX&>dxxGlaZUap4sVW5goVW7-PU4W(ubZF8On1y(6034iiNjx1neptRz)dOp?M}B z3t5P#QmA)b=xrxZ1pZOm(@Ek&luUmufW~bEbg_d=XOmq(#HBK_@r+9ZI25)b6b+q7 zW6_GUkuC%8#EyoZG5E$pj|@nP!JGYCL!TD-wnln0=VpN$2`OfLDOCof)29`V@d&6f zJu5`MA_Fxmg5DLiZ6vQJjh+9}XDP!w%^6$$)PG6-{}ucH>K2&Y9_nfE{`Zph&l^0O zPVPGSCXPRAmX@@)gEd?u2$7Y{o(6q0AFZZ_o|(HFyqXzsZn~tUM$j#7Z*FT2QgN!7 zJ+%T`s#~rpX6Cx8e7dS{-yZf)+XjEM+!`8Cr&-Gf_Zq(=n`;rrE1=>tZjp7(btqmN5bQq1mWK6ySgOmCUtmg! zk2BW}@{Vj_Zf$NE*)q0OY~(<|Rw`&7zvaK8S!J^qX;vvf8`m>Fvaz|Lh-%y7a|>wq zH6b<8l$e^_CLt=iMObvpgt)NQEn7rJHZ<24D^#n(3Q4Eb%q2oSbps1}rY#Ywz#arI zO$lC=zPwfbrpndCWCg zhZHsOpE+=0XyC{{MpaqXd+qGD!_wajp7+_DZ#v#>oVWFzFE%b6zclXo$+nk0+E!bz z_qn4>`@FftXdOOsUSj9VANC(Kc-#69L(UFj*WdQ*I-|MAVYc_U$FmU!&n_G@CoN)c z?gvY^{q$G(%?Bwzx&HiSNakGcD&xBN*RcE=G3VfsHScHd9GJZS;|)dML@u228(ZTF z`sbrgE7Mb-o2fA^AJV^iJ?$)y;hIe%l_nGCDrj`3 z?=}7Cy6?_Bd(Hgkq!)u$a}x@wuM0K@7FVqwbL*SloeR8v>v(tM-FKR8+8g^$6>}Qp zucPZ>?q*I}+GT0tBB(vmJ38M^0 z5_5lp5ra~%_YeeKck|Qct}-@jCbyLe7&U5CMFrr}|KXBd<^a;Sp^i*YDne^in+wJx z%mpvz|MAeNvBL%#rVMm;jh!`Zf#uk_Ds5j}`FYFE6YsuN{hJy;>JwYtXmH`6_o|ZX zYZkraYsnb2{eYvHI|2pb@yzqnH4!)7sVZw-Yp~t=( z7dK_r>8}dbZTo9?-(HLA&geKfJ?3tw$%lT5Zm{+I&F5YBg>UP3a{kctkGJ1g_MTs1 zFZ+?69fKP;=sz}R)nAK-jJf!1==oQ6jXGu+ygSTu<=LdrL+gLu{_>~G-}<4&%;-%I zKD(XOW@$jf-Wxmo_?_wg&J7*nYWMvzWAxq4?X9<`Er09tg`?iS<<&0Y!{qhPgzm^Y zv7y<_+5SsczJ0Cp)gN~HcJuam5OezEdu{#U#eRbqJL&dfLeaSJe#yPh9Xf@%o(V-| zTFqSaU-1?7&2_~=?>?@J{T%GJr{?C^Xsb!~V=c|CA|s>Bk&%(Hq91cZ^Y{t>72Uke zl}NWr0lFSNQ+mq|S^E%&{I8B_b(8xid=EV6sz8hcb@Z@GihYFwHo-?7*6mJKImSN;-J#MURNcGw<$9UUBU8_cF%z zEhy}nvrGTkiVYvJIUm(^Vu}l10A647e zuJOuCeS1$iI$$yW4qJ;?kF`GD)H~v5-T7Ss3#Lq1)2n50+)L+gPkL>pwMIK_)@Psm zkW%o>^-7c0%-WoIY1D%WuX*lpoc+14asKN63e_C)Af6lLamHOhp4# ztMXR2E<8V@R^~Xi_A@7Y`pfJ2t=1kHZ|+Tl+fN5qw6cpiF|thm#F(R~yYvCgqM};2 zGDkOyv}9zrw#H_MWm>b$VKGtG7Gahau~}hRt)pYjtz%nf-H~mKl=QsDzDzwJKBbHK6hzJ`xcw+v1{H; zNqgbkiGJ;#sy$}#ETO}w4$nFp_q+3!`Qi!3#%X6p)ca@Z**j;$&ZJ-eVN}+cZ#Nm3 z=eo|bSKPQiesc4<%?dyD3;pV+spo4oUbk@iEBnrSRR8jNR?y~Vr~fpL8J#l85LK&n z%8Db?3Vtx29Bc31;gw5;`4tt z-e;1h9LZMDTQU~qMF z)~=9OhL}v97LQELYhUw}{jqqleHYu$ z>!m{*Oi6$JG4$;o-Da%%u&CRJSG#z8`%l9&uN6)?y4IQS!dK(J`}4!=Emj^JocR65 z_3h4v4qaH|tyK$n@Hy5+_V*6?n`!NdG}j?-{GMptY94Uw_>7Ey4j)YK9GUWd>Rj%!Y{RG-4 zh-Y!7e3{SNB||#)ZM^WOh5`4Qp7TnbKj6YjbBgH8lFV?QOXHWuP44jczD%)q2TVH? zmd(9bn(VdU#k!h1n-gRVFV^buyqNg>4hO%-y>l^K7D*=!Nt|y%eAZep4~pRTfgh`J1x2P z=hfeToLncS?e@N}{E=FJQqz?swdS6m=Mi%KeDba7%MM)%SoL!9fttr>Ip#MVk^gFq zTebd3J(crWy$6Fsjx3-4VdE`DnSB$M_d0U>mlgf{o_Hn8~bK9Jf+r78Uhz_*Y_L+Lx_lK;%?4Nf& z@nz62Mf-GHzr5T0Or5E(zwLE5pmE3b7jBzzzGfBpK^5A>MoHHuYCXGh<0DG=QFx|@%fa4+k@}; zIA-iw(Qc!rci8ONX4{K@4luuV=lN3$-?>zG;q$kS2mEP#FEzjS*2LLw zbY)L>$@Xj9BzyJ33tt+>KfV0+#JBvqRP`)*W8!apM&B1+2}v)^fLdX)FB z@JhIp_x4qsFuXVXIWv!6M837YZv1TX_!-4jD{{ZfGFMvu>&uH0-=g(_%bs4kYJGQS z|Gzu}!maBi+c4CHix@L49c$@ukdE<~98_KwllrycwCDdG3?AI&fw(NW)Amq z%-_DO^^%;hPkQ-W&KTSwaM3hVhw~maqHcc{`Si%hcFi1>4qPs1_h6D&z?qM|EHnT3 zYJ1R?S>+A-QXc#sg}Rn_PCw^bM2X#0M4|98S7 zF5aFr`LkYqFTGYUFYoQv-B0{ov}#_T*1S)c0>RvQpdL(?<;K9A9K4CV&76Iy zlmD|d4!mBk?y>k^n*FlludbgpKk;=`arZ_|yEaH4c)9P@H-A|C+Mzb~563rl8T@`9 zS$Ef~C3_mDy}Nl>yO)-Yv~0C43wU$a+Ae?i+y9vwmAB>onO+B`*FTv3;cFo;`e$j{ zg>4)#Yx{+|KW*D|D0A!RH2sOV@RYabZCW*Y-8)Mc6xR4=&Wizs^&+BH8*NJmO>eks z>D7sc>Yln%yXV1Ieos1kQ?S}!s`T7}+yg(`F2A+#^T;L-d_Ea8`0E}umwkOF;`I*U zeFBFc3|R3`WJ%}*b4ln6*y}Z8xc%>KOz_>`a{DIk&F7`#m(y}h+NAc>MpjmBJ?pT) z>)x8K6zOAD$5x}opqx<`iN&Dzs0K}rZ))k^vRTKiXTJJqcJILnoz0z8A}UAX3V3PN zV*m2@2$$6;4u05TOg(>MGgVh2Fvmn&(dQ@re9iZB!;IeJ#ztP*v~KmFSGwhC)=bq0 z2-m07|MQnl=JWeH%;`61M085ZhW;b}e*XK-4L%9D#P)k^`0LWgu|Kp4nS- zcx}JM3&Ym?$9!{cts}J7!5d!fTNO|FNZ)0|U)8n^8{K70-PR{f@gX(QlK%^GQ2UaArjf2zCI`r7yXG`RSGe@*{ab9YDeOQ~nSQ{DTuzfw9mURiQ{LEFuL zcN*08?$#Awr(eAI>^J>RUR<(wV~y0pQ*(~I{OU7dXKK9V=YQzCBZHTfG^%GV(KK-P zfFZI(Qw=OXZgVsL*XH<&?>DF{?iq8iTWf7(B?Wj0us6k`^pREg%>X>ejtz-c<`x6X z+1v5dz$vLq0fg`e{XxG_%G^axTfa~{&LpzFYH-=%?n>QbMAs$UuhykX51fl ze{t;>&y0PuMctQ%pZwNygKp*4l|PTzn}0GWZ~n-{sdoyhRsY-h#@0nkukBg3^G@g0 zL4_|T?|AO3}Va%SbdKb&+NPTVyszW?znLg-p&?S2<_hQ;*kGwHL&o$7})8NX-Axqyuywx5{Z z=y!8T{lDFVP$xu|)c+a0^GaLOy{Yo=-TTGaFusbvEPtiuu zL+?-VtqN6Mo#~kM*u0vp(e%pV%y*p*<_6B=BX1!8eRPA1)A@>|pn&0_r#lk5II={E# zaQaITZKA_#zdZWRxHWZ3gl%IE*Vw5&)cMLMi*Mf5gU!cDJJ7ZJ3Xj;I26+E7Zpne42mUze#;I4T)S3C_g^59X zP91t9MA-jN*S7-ZL@%t{HR{&K4VJSlAEh3eU~4jH{MA;r;y-u%8c^wqyt*#N>Ux~G z715AxEGhQg-6+VL16uV~@8MG!6ORsQefdGo$Aga_*s<=ty#b3Jf2%jzY>td-mf6Z2 zlM!pRgvGSZh{0BGbgQsd(Ji9FvT)lo+Y%KO80m4mz!rNPNB)$L~tXKe|V%!a@^-}U=AbG0}9Qp9%?rXPe z_WdpOKyDZP$$f`^J%4ZUp!w;3twML}69dk^QZ!{}_PXzOT+#HY|6aTLqvP^7+`7gF z&RaaS)@PpckG)bW!MtWw;QkM~47$-QX4)IG`nTMhTx(;!L%v78F7aIx`^ScQ2WB;R zbNsY3jcZ-V4tc44_=A4h9(!yPmPTFK`c6bj-)9V)t4%);lKGyq@{gy+G^)~cLE>9c z6WT9m-!ExY{g>`<_T4}ACu6lHegX5B6?f*uwLEyQ+H@ zRb8`t@@H2|_N?pEAU=3o*GZ!%AG>}0wGP$4sru5z8E*`2FlFddYxWl>H@ax7+dcE2 zC3CCwh~CzBNYAgHe!tbs2jQnTr>~43esJ{B%{zwAnvnORW9{Wtci%W&<5cT=SqJmm z8-E%%Ve|T(D?S)|bV1*hWBMQV?~-x6?$vv3_eEB^8PPs#RZIJjln(DD%6aGM#2-*V|W5YmRD{n@c>#UrUh$%wC3?$>aL<%5KM6Ll}?oMe3>;lt-r-MEM0imyY-JkAIE##nG&DoRzm zGkNiB7dBa^1S-@}^e$hp(37O-ZJf~y3r2!Tn`;vYZ60dacmc6id#UnMv)*SScvlN9 zF1~bFlr~MLTT(3_lstdm@jTK!C(VjN`1SGVuOkCQWZkA7*=qdbWYuXjZq+fev+E;* z#+0n;`g|FlE`!w4Pu0%$&dex9UVrCR;uXa7POkWt*+i&j0OLYB%;;l;jBuf-VdGP| zO~mU`JlW!sq9{qd(BzJ<;De-pi;;6!-oVocn)0V7uLwsr}<{`t}X0O>%a@x-x8_09v z&2@U3z`8j{oXsfCsJfMY#Tlx+55buC)zX$$F}=}4jZ39dOmeDKGL$KMt9-0$aPb^; z8Rx>*s3tbf)*m(KyMB9GT@A=B2*XaB+%5X{;i1iNT|C-rre_8iZB{b`X0+mCbk(_RPldS}Eja_m4>ds~;L}O+V znn2+#!}qFO4YPW30;FdA-DG9CUBh{cM|w@V)P4|@tb1w2RZ+DQPi(i zA-1ugJ*LA&SQ-M4Q2OaGfyU5OZZo`-GgJ&P-adg9A52Q6sT7ClhLZ;?Ke&(WWpH&S9GCSVP zIv~R5rmB`+@1ZE~E=JVR#bb&$wL2be*pJ8&iSQ?n$uecXdCcq7czvlhd{I?! z;G0ZG6>`>*yKuCKcc$aRB6(3FUwnc(xh&}dacB=~1A<|Au2J}vN$MjtDQFY4zUe{X zXvw=i+K@9UhLVWOyo`RuOT1qPgrwPQ6H1IiFFHEqK6Pz4PC%H0E5Ij*k*86&A+0S{ zUmgngJL*L1qmp}V^tga^W`mjbxu6DSEAjXs?EA&93v}s8yhCl-@g1MdtQ1B}i0%Z- z5xNm}5*A-&JzQ;R`FO6si3z_NtI$l&_j$k?HXZ*Z-88Njrzc&t%4jh@n*?=|GSQ#4 z1Bbt{I5}Hh#f=5o)RmEO*VB_@?PM%#!TJeK|K-%LHTF+Y@x!04x-(8sNhEqOptgES zIWJxvD_Z+@^AoB6l&wtBH(&<;bQl(U)xj!KwlhUvL$k);fFs?V3c>CP)DT5WI)Z5M!{eYF!F#QxL5 zwVNUQMh$qNv`j=g>Pa>)>oadZ=`WD+2CkOY)h$F%9l-E9d5R!pD0Q+iJa+}BAv|e(3BOWt{a45 zcFgzXvR)g~Egj7dwr$R!a`eW`jJON%Cx1*D+VaMFt#934X)#b>A=ZBGrstzw4zUZ} ztbTqktcl~41@w{I`@35(;@*+E>=y~lT#~O;Quz4C$E@2; z6&!|FStW)=vpT<7^is&!5ivMi2><-$?y0JR$IM7$_mw+)A zR}PH@G{1ZtMez*Ae1&e~9uJdBI)+9Kz|g4d*JOBjU|>Om1dqY@f1&Nbf(FdLXjmY) zc)t!TFu2DEN%t-cN-(p);0l645HF~5oZvO`^UwiCP&`}^b@@K+z-LoW5OJqXX^}Ut z3zO+Q=`mMbOc|V4}k>TIJhgey$g8%Ep-DAz_nX9F#l3Fd=EKq*9ri5?fu$| zAB2MQnaL{MsBTEJO@E__UtaUGjj?ytrR>gz;$Q;TXS^?>gv=WoMlI{FJ(aT&G?}B- z;l+ouDljp|GQT3B3G=oDjEVteig}BW09~a+Z`I2riAxnfMBneZ0vPaMGF8Yrrj}2j z+iJKh5QY}23x+3x5CJT%mKP$;(YnR$(Wj&8p5>TzTGBZ3H8HLR`Bz{qzp2*oGIL#^ zc41_{QG_}ls&%f|Y{QLJcFy4H{i+*^>c`J?QrsbwyWqEMQ;Qd;>^s|m+Hf3AdQqIW z;3)uw&%M_mjC>M8jGS;k`fxI_?btX>xjc8N|9n*zZXFv*w0qmP%GwrXv$J$}a0xUy z)c3*}Fq*_2{zEU?Z6$4b10J!cCc?nS%5=)Vk~$S^&3u~RlC z!sP9%B!*}IDP6bk6}LkdKo}4gMu_hC(EkEm_d8>Q9yD#ogKmRA=vV+91)#&fv!Q4} zcHc$f(!qb%hH9bIc0H()mJaOaC%OLx6RHJv{`_J>w>tv=k_jam3pqnJ+%%XVkG_m2 zo06H%?o|3Ir*#=#-A*u^zqw}Ma0Do=Z?tK#!!D1{xmPvkrE-s~R?gV#8W0Pf!6;L& z|DmOn*0_de2nFfE+l%Kiqys_ zlBA$thIyc^-{n8H|JeNM%L`8&ClsK}#c`~C1}{4<+=##O$p-$A^IgO#-VMDX*yfYb zFwu&0=1F}9$0z4sCE7&X+Oj+6_o49=X(Z3E)bx>4m#tE~*c}?~WM&*&^Ye+bi*V0z z=o-4S%KS~TH)g3R8yXjsRh7zEh_86P?6H3`ha}r$?$PtpD@!%LRz}^@~OZ76Tm;6MMe`7~mZpW<8^|>LL%OqGc*8~n?%l8kpSe&Znhj6gtaH6be z=@sh}?h{}0P8O^TxcFMyJGtefU*?kBm#UaV)Fhu znO>r2@D&;2u>|3%+k>Ja)cnh}FkN2umFM?0-t(0e=l8{x#DW9}HR*NXn$L z0bWujRxWFs5eqBBRHJ{mRGUwJyI+?`qT=u^lj|>l^@TH(JNk*U4(kG$&J7 zj!42P+YJdsX35gDknd+nc#n3M`XX6~%ioLly*3XYa1Bx0CcfW+>i~5J)&a6l(!21k zI#*lms89Bf>hsV3r5|iw5k~^Ms{p&bEZe*Pm*W4YI`!y%)SIf)XXpA1h_FVMXlb4& zuNg{h8#dNkIi0%5T3<8i)3s`;S2s|voA%U+mDWqOJX&X8L%g-T1cjb;)U1Za!#W>8 zJ`Q!v+M@5WBAV0#cs7Q;^13*Lj?K3UN+DpIOw*~FP8&Cybr%Cud@(3(>afogR}hIW*_F_+dD^_Om5&`y@V`nLaC9-9tZ^O2{A z^{#razkqO%r=!q|566re8M8^zFX$n1c8#QAHFZz-bczZ5rsxmwl*2RysD+tgi!%55 zz_c@)F5|_ptnc#t-;}NY5Zwli2H3T-jc)IX3z+D`|6AhnJ7fPC<^LHHvy<fP$!6%GUYx8xf2g~1@{m(8cwdiT%^}vorI?~b=2G7-7RdJ zo4zAx6phg-kEA*ZO>I8MXq?$i_fj}#s&?VgmWS^;`JCvK22-Kw`z0-r2~^&NBZLLb z*g79e0uI3PRdzycErid<7S5l@=9ncuJ{;2(aH*e+QLSZpL|o6oVWr!I>Wx%64mPKg z>!ljJlG`6+k@e}w7(2!mb~36&tC4~{MFPuGxmo7&DOzdMq=}X3Y}!S$0rJBiIo{aO z>VKRV9)A%2f>-jKP0yu1FyJJ)-dO0YFf7FqAWT|38|uuXjgOc-b_g%^(xtDC=@>jW zFnBfJsj!FB|9{Ja3~ne`XaBOGk4KA>T#x*)Ucw{Dco=T21!LBUvBfxT*XQW!EOZ5c zF8f=I_n-CfY3S(@EH_v>sryLVqv2XB}Kb^t1E z-}dI9+<-6vgaBtCTObACV4&D5{QxO3Bmg(wKLGYJ?i>KzK!>%<&VY3$xaJN6tsnH~ z0l?%P+y*cr$OGAb#NG5IDFry$|2)6s~DdfOz|5cyuEc z>3iEm>1;oI5SGHEF1rzh8lJaec83*WUK>A~B-FF&@g(-E#wNV(X7spzUWQC&R0@|Yqb&?B0$|)vJ3uOn?7KVz_%W-} zkfXz0tK5uyM#aP3xA^H$e=}~L2D8X>=rn^x&a9U+fF3?D0OSxH-36fA0dy;XF2+Cn zTeBC0MFF&bmhb=Kmj#k$?ot9Nh8b51313C{!E=SqRo-h3IC$lQqO(o@_ymPLq#OvH z?@%BLJL^oaFqtNd=g=?Y)*l>vb?KXz6SWM@mP9o521VJFm7|ol+F@(DRjJb~e61#2 z5D{}P8b2*FH*DVXCWgyXvDq6!W?y8b=Ot9kk#A)Y0b{`wa@}kLPE9gp__tN)sjy!! zWt_<|7!Rb zq*w7=MUw_3z6O>~z^I`xovq6^6J;OjK$R)de$zv<@JwKsZiQeF)9A{DRE@fid`zz( zYb}QYU1#6c`xh9VgvJ=E1;By>J422aK z@2dW2C!k%7&j8_UYtwFWQ2Y6(3e(YlVGE7@3NE5h`d{}fXrf^tmU|xASZ;clIO(aY zf?M1^D(4 z06%*HHWn%<#=#B8{#S_apPriQbgVg$VLxXXo{4KLFeeb5VgAP(zH~lT?rPa4A~n4s zfM=!~gIZGKT^WIx3~18c0$L~Nh=>lP<8XR(nFnJ6pIfP)gOyoNd*aKy=*ZMoh9^Vu zJZoqW4i=7sy35K;OvjFRG9&d2EM&Sx6i5%CWN3?q6rVHJnwU5aX?zm~s+KW&ZOd4T zQ#cfh3uJ6Efz3ED?v%imja^Q#E4@BN?=;bg936jJbjvt*T@H6TF7rS}{CpfcS4P$h z?9=pUYNrPQXQU2rLD#|7Q1~(wTC0$-siE*-9Te=r>NE{~pn@yLNy8!J$-_!LG+8V- z8T6lLF9`=O!UWC5Np)qQV;&orjs>9YAz%7@GHi$aj4@6Drt}z71=oX7rz{?-k?X~T zNUF0g3&wL!lDdC(0pw|$9*cdL8IAeoP@RpWXEF2~nrLUo%$S2K8LrbCqp4%&;l#V} z373j1V-%JWce;D5wp{7)r~4P%;R(T*sEYI^6yY)jx=n$&wxim+pucP=DhH1-0d39r z7-wk@9+%AQlr=-|{e&jFHRI&j(z&6{^<4Xz+MjXA)kbBw)0<-{Wi3!rPqD2t_*`WP z6qmv6Gsgyqn3;&afJdh%IR)u-9AET|L%oq2=t(bT2aYzn$DZo;l<@%nz0b*5oau5% zK_R`zV*sX8mqSYYTe@?=an=kOr~OaTG3g7iQMd}vYT)Q$>&?Pu10A?%jDrnRE-k8M zR2DDu+sMKMdkNalvUhkHV~(=xC5{)cDd?=Ll?pCfNg3Lv<6)_FSsIQ6)xc|*O1nc! zqk_yPjX7m)Q_O0oMxwP2g{=3Gc8Bha|JQc>d|Zt#>`(q2){h=yMGvVv z0GTn1Z{Ug^5;DCq3w-#%jMz8Y!2jcOs=enZ($0)E;7FMRhLp<#e%gTHxs&HSGy?{m z68yg|7c+ACb$QjtW!z-2* zKhsYguKP!QBahQZlaDevF8jQ3mN7D8PTOW~w%sf?(9y|uuz`-wwu23Hbg><5nC|A- zJ~pVar%a|<96UvohIu&KsV5%0_4cz23$3fUxpw(%G>^FvPt!^Ug^uS6(1F*U5D^J~ zHNwl4CLWxOGyA0lr|$32y&h^)u+yOEj8q*Ro!+Q!1)83i-loc|;01JDC(oP#OZ>6cl4koMwbRSD{?UqI#qV=x%h&@oJQCnx4pqkh_tM3&g|A;a@`== zYjti5h>ylNG1zvnafS_m1A+bj@29@VE|`t~elGrpbHU$_ z1;g#?*!XXTnP0tN7x`H>m01^53hg;VbQNg7n7PodjSU>eF}8yZbl}yj8E7`lAf8ea z#*DLL*ud>)s^VHtuXDT|%?4(lU_012V-==TcIWDz=T5ZqvVnzNVmsL2gNiwJ;@Xm( zgKNkh3wva2rp;-O&2+mYHn8Z+YzG_Ym|;8EK*vnm!3H|YZ3i3Zm}NWIK*!~_gAH_C zVLRAB$86id20E^^9c-LoywK&$0H5leDaRDYb_^_Xj$I@h=$LCe*g(fswu23H%(ESA zpku!6U;`aj+YUC+QDHmSKu4wRU;`c3*bX+(fv;Q4@?(ShI`>xcVcJr8#@8dRj2Y%q z7GIZBGQQ@dRPCO}iC|uH;?acftC&!0MzV(KWq3Up2xw1c1J8_}$W7AQprf^lG38h@ z`rARKL~F)*j-#$@3retTyk!(IV2#vHR8Phanu~4YYB3&LDP`3+&t);D?ITRKOmtIr$IU07ZRp`c!QYNd zyTl)|yQ*kpaZk)+1BZN#?O=m;4=uIOU9;AXU<0$PvmI>I75?`vJ@-Be#0>Y-v)P!Y z0<6RQue%h)Vl;L&WRu8^b=zxuyBTtz9F$%)x$IY|d=D8chztJhg?ojAZK0&E8`fOk^PudPP z(D9V*U;`ab+YUC+@r>l-B>XhW)#9=>gC{J6}-N?>c>R6 zJUlc}?wBY~>&X%B2+v(n-Uu&u+t1qZJVYL^rhfCBXP(7fmW$P9W+3tSVGuvZnP+jE zAa`t(t9642Pwa>&PlPAJjiY%}gp0<&7dxV!&wKNvo)b=j{f)E zm)?4v zGf#f(A+3?9KulDa3`u5l4Cf(hB!(oIVQ6lLQC)J+OB$Vkw`B^jR3h4Zw0~1EUjXyP1WX;cUs^}dX7Tv>6g(neFV?KD@J$XABo#;D`#!f| z{xHm+UWnxcJZ-}0^{8iNFQhpp7;kCU6+N7aHaiXdp0eH;SJnq5Ge@>toH+ZU)40s# zO=hfYwFcNSUKsr-n{qZ&)_oyWW8b{67~6)&i-;MEoa>tz_o5l*nQ;Q2y!?)j99-}v zW1wsR$v~7ANiEXK2BDFT*I(uu$1}rk!Soq%DCU}nk0hCCrf;~nTF01;h0FJOTDN$~ z9BstDdu@b8dX9Enl{bELp?B_ zFuK^6lZeG_GM9sN(U#fRV;abL!|1&jJF;vDRWQ@y=d$w&CWHV^yY})*fTWiHhF))9^54egM%p6oBtLw#Ef&-f###ukW(Y$!y?B`YqeR20Grh9cdTtn>}WPH`|q}c4RrirJJ>+SpSFVybeymqY@p*W+rb7pPTCGO z(19;kO(WSjb4SAL7&b6dJ=?(sI_ldFHbRH{w2j-q4rK%LHnbgVpd;LNuwj~{@z}(# z0vnNma~C7evGR;3Ab#;C&vPT}Lf8mxQQdUb-HC~`quIbVMA;5D&NwWmt+`k`4;xrW zW81;TncGlzr!3BnW&^Xw+YUC)*oL_&b_^RBbM__M(hgD)_ytu_f1JL(kG{5XDX8u|0aJg>+furU6+kE=YLze z-Mq8qwQK#iadte8OLrO6XuAceOPB&zV zW71P8-PB|s*T&ebV1rXx&ba=t)nn~=Hn>CR9cO#lU@wX(o_$p+78-2vfjJua~`v4Nev$ab)Sj#Asf20AXb9c-9_pIis>quPhz;~{)t z+W=qc!XhlQ2ze4dR^np(;#{-k{ zYSTP$XVi!`9!Sq3eWH-Gbqe_hwkK`Uad9UP?2Nw<)oM(hm~_%X9Y`m&r_}sJvLB2h zUBz}ns}X%YP#q+_F>z3?2M)F&jo`fF<9B#MQoi&9^nBVf^mLB*>QTZp@Q_C;u zOP&$Y)WT=8DDU+ge+#$pwj}CrX|F`o$=Q2xv^zF=9^)IwlRlV0<2fynv_+Htox;?j z&NL$@;%PhwHK8*5B#_QwElMQ&HMW0cy_I7gV~yl7Ul&g?2ji(F>w1vhkw99?@w1vx zUAfo>n)`ARTqpQBRD7}bAOv&WObY4KzO`wFOqwAd#)m@`wz~&@9wQDYvO42nZZ=Xp zQ&qErx&4unn4()x=y9KN;k^rm%k7PB6M786b=Vqf35UkbC-mr#tJBc-J`;MlkvekP z@U|0r6d~n6B}U%RdPHAJ>kBF&95&*(mmrPg$Q~Ujtv-};4aHqY^c{jU4c1^w3;K+} zLuVtQY+PwXWt^7L($Hnx&iI}q`VPaiSzKm6Bsavu0xt9NSSm9X$A@}bQ%Gq|nE;-S zq_n2+1XN;LKDVU>5w?0vJVhqLt6YkUOG$(spc2F36YfJg5$1ce-SS>;NQYfaSM^!m z>mH;Jn0}SC&zOc5nzTbqacwDI8@y9NrF@WW$ggOu=cg?1H3ZWdAcR9^4@zr~L@isL zMU)MVFftt0MiS*h2Tse5BkBtMIjt{7u0R^dR3tQ<>0C{1=?bHn+HpI(LJ89&SUaUn zW?CU>vlPwBQ0yN-cUZ*qHTHpMF-Okk8oI;vOdm#2DS2>*qIo~ketEAFq*a{OF_qex z2Wy!ipQtB1kA$D>PNcr)!|R+jq$8EmN9Yr7OCQ+HX^Y}1tuK7abQP!dg#%1)L{nNn zILg$A)B3@29?xAk4{jI;K27!AjWh&?KnzkiOyWKi3B8g=r4&IEPJ5M0DS{-Xda;x? z9NIEn%xS}+GgEErLAa|ffC3~uo_8OVI|S)mPW!R>AlzdY3JuAi$Z;^7BOmWZk;PEL zk@3waa=cJxD~g;56FIUKM^1wI9QjofikvRgK9eHnzzR+q(1OzDz&%WD6AZ25Qg%jC zeG36^HDlk~L=VDa$gN1!>hOF@TMjRBzE83C!KzAVZPP)y!;oIlv?4ch%c@`-(|Anl zkN0(V={2}s?!YwsR6p$HQrh#l+z0P4`TA0Q55PXA$J!D-3g0t%I}vSw6HGmL%$@*k zQOlmnp_V-h;Yhfrxks-u0h|+0X|F>wPMe9N>xMUla(Fyv)*T7Uxi{vs7A<-zE8%MKp z1m;<^rJ=Tpg!TWfr@I6Q2UuK=2?kQhnN=dSVyX3NC3OJ%xLv1r?uePV};)3 zRTrl`E{c35oW`Yzs>js47f}nQaCn&8k|MO5+tO0SU}QLya$2g2XS#*c(o_o5yw=O| zvLRiiGu_{OSzdpn_AVO1Uoj1jyDAIQ@J4U9WqCuOmCE7B7dc<1O`NZd>cx>qV=1zY zI+r7-wxSw33UzKuHFQ*CIPI4V)sfOBG97NFI#OC0my#T-Iu1d)jMMJR$ZnI3zg}W! zZnNw*{gJNZ$YI@M+6+OO%aPY+#9(B1p`vCn7}-ND=E%+6d#4V8Jas)sx?A^7&4vOY zXx=-uKNPClIIVR?R!TO~T}=C%W~KCpUg~}>#haRyG6Z_7hd3=SqkpIS)Bq;D>g?9P z(-1r#JkBHdSJVET`osA`kM-%_$qhr*)0~#wwtuH07^a@(Qu?;0QiiD=T*Eh9$}sgN zM~-PurHmFj#HC!Q-sQAPE@h1RkV|>1^|iq&Jw_d3`k?u>!TXTDVcOYhS}+^Ns3S~E znobM$hq3B7)0kGds!A6tmz&m0v!=P~KBNHC+*Xr0tpU?HO(%0&l$&;3k5;)Ivhf$0 z8ZlW-b362h5|!$XfYu$Ku{uDZ=Q-Sqi(M~S9?u(4Z4Iy38}lmawQ;1~(q6TOR6NpX z9}KBj$@+2IYAX@)!d^oyLA7(O%-MzUcSn#eiX`n*NZKxy^qF3ydt-1{!j*x2c#U$m zdmq?&C#3Je)bcpeH)2RzW$$rH9+&%WBBC#1FOdVYkdcd_PXlYKab zw1-978&$zK4L?JDsD2IV*1$p3+X644c4%1F>+sye81HU%*y;?EV)j92=u}XRb_Q!9 zdK7H(AHiIv{lfx3piR9{klTPtZi}r_Q0d2`1jPCN#JoMYoOI6nSpaY~TvX4EdVT$X z%kKN+RJUt*MQ#%5;FhGpWQw`V+W_@juRT@@mNkq*&u{+5sC)cW*8m^sXASJWpr>Io zObrkJ%o)A1)Mi-b{tl$Ik(4^cPi40BeB{Km=$3@38@iLet4QyNPr}HC9C_TLchG`QDf`jBK4w8l6Pi7*#T9?XMg>XRCX-%NK)N@E^jKrkmYjMbiR^mur0=&OT>-Q&CgMs+gllo! z5@AuuI^P@90sDBcBk3QkG1+8a&HhcScd$<6)CX7>vTkSnIkE$e&o-+w>V2+L?L?Sg zFV~d_>%;OewF|GDCwP69c&f42yV>4nk!>O$X+V4V6>jY-4GyBctU)1`FbeH|Q-VFG zM{;tp7sujATc?v=7SCEhx{7ra`#;Sm&-#|^XI+VTaR+hR=J9NrJ=K7B(*_(vyOzB% z{V=b`>WA@H^*RTY#@XJ3G|u*}nauWitXJ|l%&#{TDm}vR&-)v>6(*l1HHbSRCnw?xgQ3(mUcuU|nW?nzi~Yx52Dxvxd#Or9Fiu z_aPn7lG=X^+nfkJ!l_?Z^N|_qjlmgtyB^KdJ3c%oV=qcj&5^4(^AN#wZ-|p{`oC(PdQS9BG$)(!DXHcf{X|WxieSUS2=< zhU8ky@uXeyN%zK(zN<*@h+oUO)^aYg8@Xu}8T}*h;NLtO`MhBKE3v186YvEOR5tF| z$&c%K1k+-qBBWv`4bLYq)uj2}i!Q}GD$|AXFhRXq)#0(mkBE9L6NK!n;tP30;)e0%LF?;LmcnD6buU3MJE_PI!NGltbO2 zA>3rhR~Y+@D+*Q!<;Kr}C|DzOZ;i+9 zjIU6m;7_KdjdMFakG0oNqE^!g`Z2AMLt8Md8Pg7k>vIA>;E*8naOz+c4M{>v^0vDg zK}(@wNl7XO=yx>%4k?$Ftzx0Iq&=Cs%M}Z4g>FjUj?{sPY99!Vp{pU^ex0r2pg`zH zU5+$R^7%7P;C-}noqT?z;SOza#ltv<_PUzDM29|hHHR`ozUt03t`;!ENgD_)V6LRy zi|Zu;<_kR*U4&F26zp~o*X;tKqHbT)juE;H^CiI&p-Rk`1lKd|0BUtI++@;ttdn7- zLwjAxaIfT}+EbxQi0Vs)bwX4_Dm=infJ;e*$0cod+V>dwgwRK6zqr!iDMPSNop7~+ zO+s-|AG3Lh{XQorW=@&1_k z+2N)&*cCpKw8`O=_K8q~K17F@b^zp#3du*SwHq9jw67w^;hi+QOj^5jL~FMP{3>Ps z*4vNw&a7mLy$!~vKJUr{x6rYCBCn9I50PK!$KFI?Oy>BK=hR0#AP=HUnxY+$2Qf@$ z|Mi4Shl-#l6go5!f-u^l40i!kFwvMP=ne0iG~Y*^I=TD8e}qyy6CGr#gnr50kP=d; zIi_U;pj@b-!fShYgUPgI5bQN+{!e=qx(C5~LX|oFkv=q}1{9u)^oh_V5o6rv!GDB; zkrUj5p+@MrUYEJghXX>D5m&m0!Xcp%k(KUY@RiVlE;qP`!?!{Yby+j6CsWtEM>=V=dPX@!>!prpz0?uS^e8yW^-7eS6mL)wYd zP10y3mqITgTFDnfA0b-F^2otq)3(`o3_P8fNiHY>D$RCIIH!l|YqIb5! zyPZOp;qiJRTq?9Ge=|l-Wm*i^x7zNS2$wT$Qv=hsyDot%naoa|1al>FLvFUhd!|gc zL4MB<+>@Y^X@{cTPJx9&?yN`feZs{|hZN1xG*}`;b2JTBm`L8!)8JmoMb5kZrz9VZ(sX!%X)#o_-sheU+az*E+CKMX@S3D8$vfnp0Xu~<`(>+{ z@Rrc9q$BQ`ut$i_YUS`Q(;-ExryTZ4T71SncR3tp+NQ=}4YS}IrrUsy8kfTniF~~E zcBEev>EYDYU=C2`pv2 zP>)_-&pfzH$m&Nl&yerw9#6RD!9t<8deq0X8--G_hWW5usH?8;nGbgx0$N7|0J0XJUkVfjE3&r)B;kgT9nRf85x(gB{jds=DkmS&6_dSpzk+hFi zL8cI0HLrqfiKG>|3c5J7-n|OCGErNKU^NsN@=fbg3RTeC5FYC`BlTl4ZK;AGLR8-x z7%4>ct$`AgkH>5cOky(qTLV*ssDEpLzOsVOadiA#3$rDS`nL||IJDY*A6zAoRNn)z zP>AY#0B)2>>fZx!i$m+(55O`eGu98nT@KCmJP2zYn(tW;4;%7b-S zy&yEY=Tgrj@TyQ*&)bo93DwKmjPKXHClsHx4Cy~YD>|?8JO(vF4|m8`kHKM~*E^IW z9TSQ!%vO)XZ$b%$v<9qh2o;Nc%Fh}hjw_LhL%E4;8o=_kS65L zddu?+v=Ukp{(uMM-w4piz!8#z;qk@(be+40+WRHBfSb!n9RD~2D5}{?QVy8OmyrC zc(=nMljfhFTnewj5~jtz_UX~y*Wgy69_jH&cM8$<%j>X4h^}8=hlhnuww;0Z?w=Hj zZI|eMgO(2d?5KZ_Dutc!f~3)v&Q5q$h^};Y!Y-yA{#P26;=6>qCGBulJKS@-_VIoU(28&|o?mvk zJ^{<2_3lr=V~CGZpF#tN&hvf>F%Dhe{SP#EXsq{hNM$<2d#napnKU0=pVdI7q|uJ6 zfp(G>j<1qypo>rwe3e`SL5ZXtR}1}28Z79&3~7K+X5^*b{V+)ASj45?129%72Huf0I(Hm_Plaf`d>5!U}d9C*sXvnmK&v?H=V|Igo}j~(?p>nrc0S_gTDAK)=8Ku6hHzsU8opIshK7ptV>zz)#`GlLyBJQT52AX zxxRL*MJ5v4^03#fZZhOMoc5I0t5ypAp7tElDxtR%S9*Qw0in+ltC2P^nep_iCxvJ{ z1L_$jGe-fnMbc z3DGK#QOAU6$Hl0hOg?DRV~00J{bJI1|20;>F`50>Sp6YsRC~N~wWg*mhM`^F_BK&o zrX4`z(nK|6+6J^6o2Uqh% zrY?Jl^|jq=gP0^R`lpg?8s{bZ4j~LI?AXdt0j;m~Mj~T7s{Qx>?d_?Y2?33dQ!^ z>29l*3-!wOLp!xn=vAz*ox0tjW8U`aPNBc@JiZR<9*1_iv(#!Kx_auU)(FvTc2xHX z(QIa`2ZiYP(n&pR2Ul%H5jiow9QBIO#GIx`Zwk@5BUimG^hn-z zcdq(C=%u_pNc#-oDp>02s`fLPJ>6A(!(^_gyQw1%t#)@;MUW3M zyYtiuCfZ}kzMcwi$I=e)ZHmkA1(nYb*1j2nDvZgT1A?jnlW9x7iWQ>z3RDXr+QkJb zjmgwdpxPPY8VXexp&fC_zCsmbGRL!Cs!)iI6TMX*CR1N;b)KZrn&_j3IJDZ`R}Ga& zYD<4LT8P@xUzJKEjYNMn!J+l;{%R5vwX+BYsLKrb=o)jNDmTObQ^3=YwsI~ z=R_JaGcJSFJSNl5bJSuXYRkFmW+7_Jx#~71Q{TC2l_B5k_)<7eJs?yWUxc)Q$&AZj z^`sDu%MkSplc{fr+9GK*F6XOihgQ3Xs#heE+ES!;3Q=2%)H@PM<5HyFcWAx4NPWaa z?d;+ku4)YNxQtW>gnsN*;2Wt93B8%#59upIJZ2-+w@hY~MyjJsrq!d=aUp6M{z69^ z8c%bq8?AgyruNY)+z{73Ry7u)EB~=7QHa_yPPGzJz0XC;5~7wBtFA&HrWYXQ#cH@jQXeL$u|hPu6VwEWq|u$ACONd;JwZ)j zqW<||qAGXjLf=Gn71Iv?^7L$ViCQSMA-x>wCZT3Yc>hza6l$GRjYks!6R6QW{ zc78e11|fQlK3P30M6b~&t7@UE3rl@d)aybw6<&z6S7-y?S(vIm7TS$>7N)BGOw@;f zcbfXvr1ACVbam7au7Y;n>FNg|I<`(%KMT>Z^)hvwiApJg8TbJtS_O-JPbQYaOl2A3 zwKP+Cn9N$5sr*c4j>=V}5Y59Z6)!~dFiRydnHpxP3`4&4X{B(v$`aa`R)o}z$*hSh zRGtv6iPX59uuN*S*SKLnfey0=Om5BWs!Qpq1Eoi>LrP! zwk%QGg{Un{)LRlss>L8POFZpJ5 zScuwkv-(;hUoKeSyG0$5G$ApeRr!Op%1%Wk2IFajM6=-M2JQS zud0P;T<%p9glJq=sYy&`Tvn?ol13x3TG2N=(9xSlVzrvVL^C!Js?=OVzUFv5TcZ{T zrQz{xjk-}tO4f%4ryzF~i?GftJWjoTxLX9wOgQ^uu!?X?RYeTrsZuf0e-#WC~_oVuc z$&BaI>X;C{ws>0oE<~gIjQUfEcEBcuZ*AkxVtBb=mv58uGVK5w`Dax?h(><1s?TIb z{y7yc`QF5~Jf|WZTJ3v5MN2-Km6uek5Y5UL8P z^a1XbZK^`(JKQVV)OA9%kG89&LbQ*ztGk3+_AbSDt=0;4>0N~Mh!D;6Yw9T>n(5cn zi$XNhud8iBG}EuEx0uYTdqeFpX*gznctd^U&=%JlszxH|Qv*BI0U?^{o$8SyC9H~I)c6`78T{S@H{!Z`t-c>_| z-f5hz-czH6jx;Vux>(4CZFyf!5lY0iysu^neUAJ612s?RH{9SiHd zd^ytXLNB$+Rv)R=LVMekBdr&@4zkt9YNODtP>%E*lbOv=)Qe0Dd^hTB^@-XhbPc}$ z{fXKol#N&ZpQ!f?;pl$q`$YZZ&|vi+H8_h#egWT^{an4oWbPMyu6}2t`P<_9Tv;6{ z(i|1{DUT4Xf*R!)q7_oB>IuEJK@h_Uk>Iwsp<=zgZWOX7@?~aebrlY zp(Sb>QkoErpwjJxZpbsB)xHLbv0Q zHdbFGv>JaOGgeP#GVN@vri>i`m-)n${|HZhD1Fj*AN{Ul5|u4 zn4sAm$$FR&?T!?^nCTFH^5_K83L*NeQHpNg&6GmNkQBX5h>jsC`Xl~eptHSh{X3)C1Gfbt01)>sC6& zq~Yi$`&#KthqkyfbhhN9JA$oscOkl8*IM^xGS|DAx}OmBC{qs*q7iJP&k>^0ZL0?h z(MYt@LxpH`+v(v_Z1VQ78fX&_PcZ`VX$%EInK3TU@(Yx>D$7{QPxC zeVx$SxFV!wOs4PIdZkI@m6fgUb!e);lfGZ_RpylYJL|`UZpfL6w28^|y^DTMi2B|| zzaT_?&(T|isPDOYE0bAuUG+9eqmk&UUlXE{=&E-znUUzG-!o0^} z?VhcA=x>GI>t2rZv(P&|vsIoxA#|{3Ig*DzEV|ft5cBoa4TPXaIZ~|9cbVBLs9OkW zyv_>hbS5)``MR}9;}Oi)9UYqEFVNi_TIBDo3k~6Gr$zq0y0=4f{QY%bCNrLc^Z+3m z&p~>SM7~^blm8rjo}|&}o~zFnqR~B17crU99jr%4zBjSH!FrTL(paCb#|Y6_pRbEe zB=%t-4Aqki`RJ9#FnyU2z0w$_=Lpd&lp=kN5WPYv(l-e0$5l66FBdw3t8TcyM~Gf! zU7+t1qE}fL=*NWU710R&j1avd8lkrc(JPygdWR6bvKgs&3(>2yQTjt6dUZBR*D#qm z8m$j7(bbwCM(b}J+Tt3me`Hz;*F~-HU#Nd!s`SmoGth zYpF51A=5(NGqL+&jE)t08{bDCqZ5QCb-BwwR;LSH-eomX2SadaxBLC$bVnh&N+{Ny zn9M3D);W^)LFY&P#k!lM(V8gMJ%nf#l<1%kt%8emA(L4JrMeH(LYR;BmFj*HNvq&u zJy3{N!NvMqCUea&UJrNZDgSsq){rmQ4L{MUCkSm!xywIMPje!-xF+h$9eUn>iJmW! zl{s7elk{St8*-jUx`oN~_ENn}i28S_ULi#No2+jaqW(?McQKj%P1W~G8ue(Zt`edi zP1Wm|s7G5|)AS<_6+xMP$`HTfFkQbOMDI9E*V~v(%P!Ne2~o=~({Bh-%Vy|ZLe#RE zdbbd@rCh%wL~SY8?=zX>*)09JA+G&$eMpFEzg!=ceDuoZ3jKqVZ;R^+{kuc2`Dbe# zq!qaskBV>muhapd8**MliefUOG)KoUnO9(Qbes^idaiCNL_NAnw-BOp_&l8?L_M0P zTME%g%+qO1rbqL2dqdoot96bLwdHD^FH|32C0FSFLe211a)mx$s12r7>QO>HFs)LT z3ccMWTV10k3+?Yxj#Mr*3-c||R|ze^d<*mQbC2+_MVH|iro^e)X!`ez|}m*yt@7n50$H*1v-__G6O9&Xl_5Y68$+9O1Bd#m;f z(flpd^@M0eF4Ya0%=|6WjSca8OUreF5Vd-_ZYA_1UJI|#9fTAfg;(gVLT{#*!b)8r zgsnyz$YjRsHhr#1!!fJ&-lm638r>hfU5^u@>&QFwL?OB-eupk|@@;Y5p|5c0J^!8h zYD2i{KK0+FuNAr>=RKrbnar5ot(ObYnBA>c3elL|qwf%+F}qja&181YD!oe5Xara3 zH9|CktMq+LW&~I3#|&{>s`N8L)Rro}MQAEsYpl^bgl@)blr?%clNqJ8`W=(TD{HO( z#GzXMI=$ba!~Xm9*A5-^->-i#vfn=RIkHG z(M)EP9@4QwG)fQYI3XIPhjmjS8l^{c3nnv4kLn~zqfvTPw-lmLdQ_(~nNfO7cQC~5 zd|c-WQ9B>k1wz!$4SIkOwR3|W%49}qqaJS3c$7Bku?`i%6MBN=qj$ER)YF9MovkPJ z6-=hLPw6>A)Z3@@RYKI;r}foB)Z1tDHA2+CO?r_K^>342!esjQtX^t}-&fnL?-Zii zH|w>MkB;om>HD30TU^iS#~hmEdtN^y`RHA*7xYU)^e)s3dIyu~!;AV2A?m}6`b{C~ z!%O;YA?m{xy;q3(@UnhSi2Crd{*cM^p<34%@_m4{Z`Fr|_Qgy>Iwtw353lH-oP1kc zujoG|jm{mf>XSm$vRAb#G{-Dz**5JGqLyvfUM91acIbelQ9F0&`a;ys9Xg!JwDUC` zCu!7{*L71S^ZB0Fb&84fh2tlEU)O0u^eN!ib%xOF0(anboyBBc(Y~%b3DJ@04V_~m zah-()-q1mZwz%HX{S5j3D7YWq)&qsUVLI0k{w7aY;B7sa$;{Y0dZ-YM%R9PAh{okz zJwk}a zKGL&9U2 zhhhVt>J<*P2>eIio*Pg9>G!iO1~|% zDZdD5kI;e+rSP?WS7;@E!uxCezR>hM{9LU5Na(7(BBW1*#$dj0^?&S0%=fL{$7DwL zh~96~_{euee=TXW7zo__oMm;A?o}0`e!E7_hb6Fq*33G=|6<1@5l6C zOs4NYXm2mGi)qLGr~^!tw#D_Mj+8WN%TKzI5Vhqe9Vw%{}hgsuUu(skwcvWmUWXuTU;({r6DY{N5E~}YY6+-8EG|>>5<1;D@5(| zSoaB0kG$4{LewLl^)Qne7r*tGq*0Ij)B1Aokw0>hUJ&Lk)Z(8$k!`2wK^NZ-;^&7#94Vx+CYf2`brx8u6n#RK!|=*KHeH6 z6zn!3(8L-hRMc$>(ikSwvZhwCNyC;64m7nckw_}DxiwjcN@;G*WHM*b=GI(E+nqKO z)8-3(lr|^O!m2QY?{{1iNVFCR#YJ5gNU|0=G$N2}T`T0xy)}?xT`%O$x;@a+x>0Cc z(lvoJ>lUG}^XCN8t))!nH{LU>b4DOKa-iUZq`AQhOK@u(9Jp`kyKxv^}P_) zkZ1iUL}lh#e=wQ(%d@OLX6^1ydlS<u8|26)iL_>61WTD^}?1{C5KVtT-k!e*>&0LNtE^tY$(qe}k+R zLNtHpT8T_Ff5!tutYkwxf9G474sCIrZ*_9$WMHV3$Fu``a#B(&!+U^kE5wzZR=w#p$>qA4ncd|<1QtK0;eOX0FpD~&7oNVoL@(qN^ z*5QzRQ><@7@=dXhNIsg)sn+*SK0nfL4sCHwwRB(J57^F=foWD4lUXm*t@=W=US?Y1 zPUJwOI7y=#%B`kM=6-UymEusduyQNYp_H&$R<=W1T$fwj9Xc7f!s^Aem}m1!YmgAl z=9N|v(+))|d5(2~$p>_oc%C(qX`31p(K>9Nb)kvGPekJVI%}K|t-*O#i4d*9`PRik zv<9!XCNh~dSYcf%X|x6_tf@k@1}m)TOy;u=mDZI^rq$P2l|t0&Ypm;qXbmo~mI=`s zTwvWTL~C%NwN8lE;6m$BAzFirtfz%&4KA`?GQ_KHu~jWZt8TGH-xhr&nzSo^-b4f7 zdHYm54v&T!Qc}oI@3Cn3Bd5-$4-(mavMv0+=QDX+_zi;OpBzuRCrG*+@5G*}Kj9~M z70@^S*pY?!{-lPNu!R;Z<#wLHf)s>Cns}q9$B*J3k!mS9G(Oa(D?$w>-uOdv{j5iS{7iNvHiS*LPz6tyM}kD*$cJ2@96%Bf}{BUudSi8b`*~)8gAn?FOeahv*jAY zYbn2g$_!Q0_ZE0S(eN#==hIsl>UoGqnA&Ww;j@h%eOHu*0X*ZOqiRYxeeNQ7#_vK^ zU{XUprVR^m)7hye#&|-<$M`+m7t=5LWP*Y-x7qGRXnR6OBh+tf)8A10Y%9m?`XRXc z6n;}b=~UKg9GO$sA$iVp%>3tC%pMFqo0#KCXq(Nkk$R+HFt33j|K(`VonH;3ThdN6 zyDzlH(4#ATp4C35JjnJu?r+`kO#{7CtK>LrcGj6APn~5`0;z_}`J5QKCe4hPBO$3h zr)D$`=-v<+rmovo*_eC|7a#Ed_*oU z%{nF3ctZPP%K7Kg%=nmAnbwB3?QCuM=U#`_`_J~jxrRL3*#2|Lp{eg_8c8~mTW}tq z0nNHHwTJfC*rvwNSu>@XQ98XnCh})KZjfrA_l!} z)aEg-vn~8v64WZH-M*3xodvVH%n`s`b)T(9bEFNOseiw}Oz%uy+R^rz<@6H%{c1O* znO#$e$8$@LEyfeNe?#riooo7gww-8l{rmQW&S2;$h5GyO3Nb4)bQX-?c+6|DH~3ie zZ$`}IGLfNYvD3%aM261q>E(yE%Gjp0p}9hP^v|{_|KFSq%~9g?+Rs*RLw*%zcHil} zIDLdq@4IQa$xGiDtKcz5HGhY!y-H2wzZuWaGXHmT5qehrH#M5}|8sxM?l${kMFH)U zkMOwXg4eRB*QSKCrT%ltXPbRf+OlLS-`MnC)Twoyp8CJ5%e4QW*U!I?q1KuK`wS)!NWK)mK z$eT#h{?lXrZ`O8b?WX+Dx&HSpJeOamtWT_4b*AJj?$_B`eztpYp=~gEZN=A?cnvi| z)rWli8+0S_F$fyLmH3#4k6HK_iH||}x8$yaW@tBqe)xD1znyy|KKkL~MMyw95%VNs zo+MZVsc5I7jo)dFufIp)qaQwAgiNff4VKx4pGV?zKYY9h?J%Yt+S&M=jnADiUl+8y zpxp)2bC7e9bCGkAyCQc(?uOhAxhHZEIf!-;efh`*$OXs+$c5OyKKSU5k74+@03Rc< zjU%y*qp-c>FvmEgap=cSm#Yc*n1qkX_?U)|a(rBYkE`*q03VC-u>>DC;Nxa|EXBui ze5}RCdVECS_dqG^BYn1|18Y8OE^2-3L3~OSePLa0WBi+#6w?a753mJlFs~IVeRn-+ zJJwFD-Jw4`7u5^fOz}%m2f{;a<994dEk#%(eNNKP-^S$UZ_?k&sigQD$EXwG4LII& z8r%3cYvAj|nfN!oX2#5cy-*oGpLHQBmH7sj@CNrK4qi;W9=?J{@OyBTYTNHFRQley zV?f_5_ZyJyS4;4>%BVd>xK>srnm)dUw(-0azZ>nQvG3!zDVScj?Y9rEL%Rt3cpzmQ zw){){oP2*6)b~qN`YQpHx*Jm=_b62IyBEW_ZA-a?VfYT4#_u2?9R`bfg`rKV@OO(E zsY;;tFxIH+TBfUqxRyKBjJ|Ev6KW&=M(Y!bK6!hm>Jxnw>lzlFqn=Zj_s&zbTyHDr z6;Y^YM*6Gk@Y@dut2elW>+sv_u~pDMeYk3+=$o5c@i_STH{&AsTYQgU0(GiNM8%%6c3{nA#oq@(e}C2?tRq=VSSO*D<0r~#9IiyYQeB6NYXG$f?qpqq zTCRNf7Xe<=KK$1HU8qg*Z_hQro%sQ33jBedbbJ?|{yJqcYIjIS4MH2#UXX>_k8=&e zcddOen9C`K?r2}k{!2K13j51hXR~Js$K1&Ft?XX``Izet&UFu$znN2C%ZAjNeXlH85)n1Q6&DPYy98In5uE(Jc=Ez~3cZ9we zJr{Chv7UtX#azNAdK%hO^i0(0dNyjgo`*VHUxRv;z81BH%lU#!KFqaz%dPsJOa6(= zJkD+VQ{Ra3U@b*;S+}A3th-TDEN-(!ZM(#(LY-n!Yp1in+@e0twx};xam+%FS;GDs zIp$XOufSXl;A!iAs{w4b)?>WSMJ3mBQOV&ho+B5P*4RZO*3?BKli;GUO2PN6aok*w zpbq0)BRJP|&Q;Ey+3cxs(Y!BY&l2|B$T91=gh#owjV@X_n>q4Dj;ZFDZLF`eXAhU~ z9@`&rZkeu>H*eo zSbx;6`fYJfwm`M4o~U6~Ick)(7`2I&+Mq4&(oEKVtYaJGLo)8864rIl+PXgS0P6C{ zWYrPpF$F(3n{E}V*4AT@C5j>|Sr@2o)_ak!szU4Y$Qt%on&Q`JirLD#z@pSzi#*Cj zn(U%ntz37b-Ji9X{S~arO)-hA$?nmrT~t2XC9IXk?;(Gohf1#WQ2ZL!bsnmHE8DfK z%FCs(=ChWtPV(aST19VV`&G2tMb)ycd=$UHN9C;Z;Rr-+Wlt^Z0ro3D#aMnyO=LTt zwa`zwiv85D684mGOeNcESl6*l)UF(BCz3E8B0N{ZKT-(wHQ$23d<)D_E;o zt66JU>CeSuJZq4(q%pOsl64L1R@PeMkE7HztXo-YSyeob0Bb&L32PwXCWM z#pgE}t=31ZLG?z~qGDf~lE0Q!H6uHLHIX&Qn$KFyTEbevTFF|)TFqL^3eBk;#hSpH z$QoqLXDwzeVXb6c!@8BVmQ}T&auQkdSxZ`WvyjZ2^8;79BBO~+MoE8ULDbj z?N)4;BvNW6>l)UrthKBviR)s`XDwl^VXb9_WQtL&39N~%LDqcMV%7@QYStRogcQmf zWUXXf!@8BVmQ}UnnAFj#yaA+r3{DmGShVmM0&9@9n6-kniZx*@#RSK3 zX{=SO)y7jy{tDJA)@s%oRw&`}S%a*_tQD+PtktXu7jZ4D#jF*qRjk#lHLOs|WwHiY zYsQlYCa|A1$Xd)=!3q;O)#xQ;2U&|*D_E;ot677SD5jXT;!?7!SgToUSYa}k$r@xW zX02eYVy&J^F*U3(jpJE^ti`MqtW~VltTn7q#__B{)?!we&VJS)YcXpDYZYs?@ywve zDpr`uxmb(K$*wRui(^<5E+;$4T6_h^uvW2Fv(~V}Y)VaF4YC%qR)_HET@; zmr%(ium)MHS!;}5!!ZlE1lB5}3&~T>TD6$$s#{2FZY71K>|w1~&NgfH3XWl|T1j@o zZKOfgYF4<5{jAkS@8w*q39C7twTiXcc&g}}Ud$R?M=`~$HTRJX_md{D23d<)D_E;o zt66LAr*hx{(h9Xu-K3VO+wuDzpHrWzgZO=5zbKcE)E3^^#$O@=FW$fPK?4Zj-?R*a zNc=mOjgVrH8bbvBUB+l=f}Uo0=PwbOLo(hUNn-`Keb9)nWYhyNiID z2-uBAW9+@g7JE#LCHBN#qtQg8u|!QY_Sp6Now<8=7k2f@`~Sbs_x#`Qdrdfd=FH5Q zcIM2PGjs3djQFNV0e6-w#& zZVbLf@hNwgo5bCNm-Rks^ML!Ddx-BmJ;FB!AERb}bF=WxhS}V6ZVvZ?o5#IGE#Kga zN<6&3QppldCRxfkOUN6#f^(6q;_t@ePSbvgqs>O$~_ z4?$Heg0eOQzX>Kdum!=j96?8E1mO8LF@PJY6Su&Q-2q22+?H~oSr5cs2<{Eoq7A`I zk^KShhNu7+dt?Fn1`r?DngnNtX#sCWQ7Hwiti@q^;3q=|19svGj)|s}zr+jyG;|&g zSTB&$%xp6X@JImVZ5%;R;3n|7&}=d&7n;og6nIVun-4sk@sAFta&uW7${G>>9zII} zO?6YO0=`gUspt2sKe;d}-L}s4c`98fMc^jn6>W1blY6H z?Y4nFhru!iXSSgle$|9(H7S(vIf1(XFSjC!wD$LaIU$Du1#VqC6Nf|ZoiszC&qvj< zw96stC&X55ei2ZJwWe(Hp?3Ki^e<3aGS0Ob=l9z_A_{}nDNEfcZx9=OIph3*aT9oUh@x2QynVY+4gDGs zOb;g*%_Q)CZNi(d*jKE?%5{ix#+Tq!j^Ot^!OjJo|Hl?q}WMfV(lBgaGpCBPzNO_@|J5pLprYMcIKo_L(pYZWvwdxf~B?=?;TtanT z!s;y4U!cFwQVQeVnBn(4Dc2WF8{7@?M!5oX3ndP>Iun#J+>!N((8EG+-)FgmaS=vA z=y_o@$Flae>Pj3=)oKLJL)!WP26m(#_^L7CcSC#u1*sF@-H_IdPOt$RoiGM}Z%cf} zFnlS48V18dh;A#NB86I4wK>7NA?+Avf>SzDt{d*1fwzc^0<^{jS+$nf%1mynGo2vl zhw&?DMY z-L3{&;JZ@tY_+F*`3^YWcE-BTV~wu_=#F(Cckp2c@L2z=0(v6EW99b*tbzY{*aNiy zYrzWOVFT2K?a&yIhaKPz*a~O5^nro;!2MtyNMIW@0Ion<39Nudz=L5a@UQ}!0k(yu zz{3h?iP-jlJoh1T^RNc|0oBOC0kz1-;|#McQVs#+u^zVrJ`9k@Icx{O(Of9t z7+4TIHx~8-kJUZ`X*L4#+$LBO67DNN+)jmE!eh;j1?3Mw9&2|u;I{#J?hY3R{4YQr z>v;m;J+22R_W^mV>dC+#0`lAwSRXvr^xlBaV14jd+xr2&fc3#+4Nn7fl_&wLN>qUE z5)EKYNhV+|NjCV@2IRT-a9%9I7jkld*OlY}_X6bc?He6nJ;@+Y>I3qeTw(xhASnQ) zAt3q_=ga6%Nikqs$xy%$$w!E72gq~naq`S_-EpGHb8(Upfbo)1fW0MS0CRCdiEpdp zG#WiDnFu&oG6{JL0eP+nr_&Oy7?9^a!6`M*O^{3joG6(AI7>1Ma5la&$#Zig^8lAf z762}lECO5xdxqz}fHfoGmILzK3dwT7m9T4gZo6bP=sN&;?mK+hkjJ~Q*MYJNkjML< zHvpcHYy#yZAkSTpYzDk0`398hfEW?Uw}AI0+W;R(b^tz;>_qHyK=i+4H}IE$Jl^lR z7x-&Hj0nFUxGNx!w}}1#yb2(XH-jDoUKJ2y#2*G;4G^<{KMLFv5VL?k4!i~+#*RM; z=*6D~Y{Z`dy)huq`SU*kw&l-*5(0>On*1-o69IXy2Y(TG5+LrC@Rxw60P=VX-EY7@ z0OYxJ{wi=4AmpFF4qO9>k>YOv&jZ9r@wb5M0C{dW|0nPgKs>3#-vM3*$a5q3yTC^R zVs`NNfsY2n?BE{)9}CEHJ4{pLYPh91x?=;{#sYNA`TD?50P@@!z5(D_z7gORz6t180U=#{GvL<&dG2?~^Z3~)C<=x1pxa1TJ}XK6R!)d8WO zrE$P(0zy8e3BYRuLbphJ0IvfG`IIIDR{-){fV3y@KtP^rE$t0F2oTys`T_8EfIQCQ z`vDIJ7|2!8vuDc8EXJu00>PbEdX8!2u&p| z1YQitb3>%Xz=s0zT#0lj@KQjYE0cZ%I6^ucl#zg#7t&JTqXBtts&oY4H0db7nbI+! z&jN%_la2$v6cDm1{RH?LK&&j%iNH4k^4vD*B;eZt@hqnFGvMC=LZ?YT2fhoC=XOh{ z0pA12b9<#TfbRo@^h##|{~i$1E1d)U03dXrbRO_SfIN3hx&ZibKxjqjBH$+hdG3^S z3GmZ^cv?}q4EO~=p1UYr4*XX@p1UMn3H&l3Bw4x|_$@%_Oz9fn4*_}Zk#rsK$AFMq z=?3600U^E8O~79RLP}+ufja|2O7YzUNGTvRr|etcRRJM&vTeX?141|AI|vfa8<6Lk z$aVs63J6J)?FI~z?F9^$?FVcx`vI^6-t!N+k{w3MXh5EeksSrz6_Dp*WygWP56E-f zWG8`l2gI|XveSUcvNM1m%6-0z#w8egUomghrKJ1g-((xsPO*0LRFF z17$2A^d8>q&T}(l*Fl*H$a8aLH-OIrgf^4i0=^uO=hn#n1Y9S(1Il_p$OGPR4tW5C zj>0?4p`&CE0k_B=gZ?cb&mEFI0X!mm2Fg)DjI8Vh@Z*3OS=lS#CjoixN7);|GcpMe zO(l~8o|8H767D=8&;2FC=MTBNfLQfpm4H77#MsGPfxiUA*vYB@e+|fUZ)8=0a}HI3 zJ2~L})toaRG>n5M@XCNZSI40S@VbCJ*UX_7a34UPYwqwK@D_l0io&5T@K%64=j-4N z+z(I+FOd|sVYH+h*8nSN4?uT5nQO?^;=gH?C%O|ZLmEm&|K?W~ zz5>p1au$|1?-SzyObEq!T8Aby=-$o}ciq=IG`(D$U;T1%4Xs1Fx(GalS|+w(#p0&b z4-6S<`u)iCI~>1pxRn;i)kn|GMSJF=-{ztXbA^nV8e>{=*RTLCLa$L8H4Kf7(iY@t z^vd*H&42(dwtKe0h+jjNGJwm+|AAb7Yc5u6Y!k#$?l?RFEo3GvPaVvtU=$eK#=?~X z;6Ohe<8ldRjCZrG4sEjNl)uN|Cqwi6m12Lqf|3C3`xntaH_d5wOZ&|ZMI6M)e)MSmSK%Z?aj?$7`2s|p%Vw9>_t-+{74b@z%Av#xANaLi}7z~WiJ6o&P z6&hkum=UZh#8W9@1;#9jR6!PnGRjjZO{}3jExSTkS&j$g=&3~&jOZzmX*oiypsy&QI4V^>(7z=!NGh zwK<7OgP~AoFHLkdRG7_}C1+=9HER2D5gNVGeoT_i9xqZQwk0I$b%V3j8om8kj5h?; zsLY09u%9AAmzQ5)d|PZ^oz_m7;_%v!P0|>21$vbxr8wVCUa`J!iPh-yvJD1kvoMtk zYQlah)7oUz>FpE{smaw~;j$l@q{-6_);>{Yu@u%aDFM0N&KcD4ik?ntP2qn*x3&Qj_%>SUw+$ZUIAdPA$*;nY=W z$m&Ils%_1Zm4oe2yJQIVQFr4|;|JCZ>E z86o)ZPGc6?C`ebf#!g9sXuUl;Hy3NOGMCmDd%1Jp7L%f6Caax1rcHoJwZ1EXm8P-o{UmHIH*~ug9 zdu+3G)fCwh&AUh2D7MCE)!090XB68;(@GbaZBW7D(c6i(QmNt&%nlE|23oMdTK~R1 zajYQ<-D_JEEGM=?af10J;DWAXJ50eOXS-Ds8jYPHr_~s-dDN<5le1)I3!SC3gs@0k z0zG3b6URbLDAZa4@j44m`!8GbUZ@J~*~(e{oYIz*ZoMtwGzK*qnV+jvX-vKjwgJ{6 zNF_y)sZIe1BB5w)q%IHExjBMu;W3A7W4h`LMq8@VvM!o=C}CF(R$@|_DV8ot(hMrV zB4>`l&=6yDI7VYE7tXSd%+_M7U`~pxVc5v$rRNr#X=1x7(#_4XjWF6UVJ)qg5F4-Z zMQOyo6fJDibW3KN5003iHni4~k~Qr~xSsi$dZk*!Q9EI2kvV|q~s1XqZl0+~~Vd?J|7y@#ka=A zVzTDz42&*paj1$$k(bF$MVw8(D>BWxVuFBz_E3m+HYN(m8!i7#mKj16%Z8NEt%BWk zO101eW(yN1b1reKDoi}nz7_SQjVcpthLF>WA+d&7EkpETyx`(vNogC(_%MXkNuwW} ztF*A#ZgsB(fb6y_k=;Kiol<)HY?L&auj`B;-~u#+(!4h&Xt z@>Q^|Wk|e^{je69X0JJcIGq_GBA47b23rZ7=Z?<96=O5OLFs&3)ZP6o4tq_L0iCMX|iir za%=%%M=;b#&7ziAxmpClWR3>r>tOL#-WC>b9Ts|`oWq5sso;cRe9V3qmckMu9?-oe z#|w+J3Q{a)m{1++By#}M%u-2lM9ceN7_+xTnT$@s@jz>4HkJr6t!bf&Q09{>hZ7gS zaHYZ2XINBNKokSZ^2^8;6PN{~U?uAF_1VZREC3oVTo1Rnz^sB_h*i2GjSZB=cf`_I zZNfN}RUAvp22n^RphUIu6$xEq@f~qd*tYBRtXi}ju|^~u7psfOQ8+q%P2qeSrBos^tF=VbNMlxX(A({(u8lzH;V;%E;lGbQTfK)10 zKfP#qSVfr=37&XyKgz{x3b6mn6-Uj`9SeQ|7JqYk)Hb~!Gn0D2LaWdt* z439*w+KWk`b1i!jy)|~pbgE@9c?BEGUXld8Qk6??E72Ql9;6DHsU7x`vB_^QA`xCf zay#0Kiy92QjMFuHaa2$w4hrqZ5?57rzB1Qd)_9E(X9hV|!(=a2qDG@9&7i~5Q7J0I$it>9b z3tiM&;xIx)Es-Y2mB~eBp4XN<%&&!$1Es-|i8%%>K|#5*S(2p5RTeSKD!IrEHj^3$ zE|!dzp@3yl)GPDC^m=8ng=XQNm#@@X zMVPj6#2+n4&(6gmxFs9yO$B34lru}5(%f&fPO@_uTK)t?muo^O&U|je)=^6+Mq?CG zYc+)eGMG+xgq0WvI>Jg!2s6eAA$I0d9Tsm1MHQ)X3k*2z!3G)Y8)d_$n`}QE{3jP+ zXJAaoz%3EArU<{p37%$7C7!v`_#&t1v9t^mixAsifn3P053m#&lwXy}WeKMzTp~2Q zctgT`dL*>X?%9*jTKiE{S*x44P6E6OULe092 z*$!MR^@M;@Elryc3sF3H%;kjB#ay8=%5;sHE9nv}8d@VfE}#mHMID%cGsg~>Z|Z&_ zBy8}|^TOU+Ac`Ym=~{tKC%smiRl&)|9REUmE;UzdAj}@WIQY3(B_IK;3iO+VRC*&} zrrSYc4ojDqN6+A=MmlI!gQibjuF0oL7}?46o1!CFu}=j_pdp00!YUy49UXIsbT&n7 z4|7?1oAX;%eOqdn0e5%k=90)%WhxZv*wTHmSV2s#!wSS0YmMd}j@72ps1syx<^SRBZ(bPN$Xibc=_GM_ZF6y+&2g|Npf$m7Cw*s&S8)r)Roppo z>T(+?uEPF_E4OXp%I}tFHMd9#7i;aKwx*YNS6jtY+(BU(F6Y@Uzj4BCMd6x&X}@I> zC@X%#Vs1sS)e-Q7RNOzYPO7+VVnZs!OjT5*nN}BC&}=1BTze>%L^DN4(68K9UQA;$_{-lperKfL z+w2p+1Z@S&MQEV;CaKUwTH-2P&@qo=7;_$Qf)Bx53$qc<;Q(8_TWsxsXZLTcqHJe< z6qa4M0?e7;F@q{5eb>yXnAZN}6PEspX`|RN2KIxd13@m<&aEWYgZAjui}vUce|uz@ z#-_t3d$BYD?9s`7v`42^*&ZDRlsz&ghCQ-*X4s3gGQ1<<=~iKu6x&OeXM2;2!asd=>XamIUGw9gmYc3ssnjmT-9wgoQ5V zwoqUtVjdWkMHZ4^$y&mqezQJwUM!@Kw|a@_AL435|LC}QA}o$^|cJ^YjKS4TQALtQ{6H{4SrU09re#I zPSLT+fE})In~rg`gv1>rQ!=DJ@o)t|iYlM$sm^DszWJsdLVAOd8C4b0G#gt{QT5RmX%9Gx6w*@i7O4@d+=$)k$Q* z(Ix#@sd|etXI&wRC`1-#0?3di?%qWT38N@OBF#MQICut-D;vYFw>{@f(kb&W9q8u1 zwW<|tHY`=)#pP1io_CguR)ZH^_taOg`NE4?0XCZ0O~KCDdJb#K`5%c^4Cxq16!)vZn_H0OlzjqJp;zg4mscEYAY9ABu*QH zpJ{4|GX%zxc)EkQBtLOB8BC{av^u~978+0YGT6|W1`Bs$xePlrHrvg7$q1m77-UOf zB9W3>Yz0b|Z_Zer&Qe-msAVI7<(K(*Xd@+55)>go=7KqZ!c7`p;F^SI-GubwU0cS^ z96)-eNbsN(&MegCy|Q@BOvWi|Qn^&78CpIORa}%*;fV-Acq-B=j!cBUINzwlMXCI( zV!sN9%|g}99ITF+EATEC!@5xPSqllxj!pxcF~XH#CR*gt719V8btNNJ*rWh0?zZs0VQjbET1{ElC4b1n4V=M#5RxOloas-&CW(qume%K-v4KhZM1skGXq|!fq*PDba-ro@5HRZm0)>*n4<^|AmNwAk z55f31)2uWst7Ca3EeuLUS_PkS#c0fHQU4p5!%$QJrX^BnmjTNLJ2zlGj=66(2h1^o zxyCN`3PTq_ilI3ibRFilD3{1xV_fC`>6>q|;PADK3wxY#7zOEOVS z`#n<#l3>CrI)6-Ll54IjJEnvceJm!j?FP#fL6xZJTrowxW6Nbqff~L2 zG*;*Y^=BndlwVI zvU#&gVJX)p?OUQSVCD2UbI_EhAZG<-,^-&C?v=vTA8Wp^8~l9E%Jl#b~H2MdHC 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

Ar7)s*Rwm=cG4?*cvUjpP9AnetOn;gMJYDH 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

{)UZ8%zSENXt}>>AelVY(_Gi@Q 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�(HI14PXGtdBp~+0vbSpLX;7%SFoNB8761Lb*sGNTd)fQV0<# zgoqR>MEnX7ze2>X5b>)-c$EmR65&-M{7ErlTWr(E*K299%^29Sr9afe*;e5q&2W*X zQ{)oW`>BFEn;Sim^mV*j|J;zo=|gznoBB< zfq7!zH9{>AYJpG#EZA}aEZ9N#7VJYIyum@O1*+a{2&oO zNW?D^=@*OiOGWynBK>l)SGg!*xmC=lMQY`cPUnY$MLNMEonVnp2<3&jga|c6s3AhF z5V=%|T&hJb;Ua#u$m_Dm>$1qJDfF*WuW*qpa3e_o8r%-#tUf%4Q z6-Uu)RvcrmS+SR0v*PG_&5GmgH7ky{*Q_`W53zOX+}+yN_SU0;jaFG^rH$!Q8-81) zb=6??VkdkNAd&5b?Nn9*ei|$5S{qgd4#RdXy9EAmb`|^z_8a(>V!Mi2yJ_%CRs~


YH<~(-lTtnJm14ZJ^wn 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 z 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⋘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 z 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 MeaJ9?;tnDH4-X%YF8}}l From bfcd43449ad9a2fdfb9bc250f37a91d427cd4797 Mon Sep 17 00:00:00 2001 From: Dingmeng Xue <56333063+dingmeng-xue@users.noreply.github.com> Date: Fri, 10 Apr 2020 14:49:34 +0800 Subject: [PATCH 03/21] Storage 1.13.4-preview (#11487) * Update version to 1.13.4 * Reverse dll.json --- .../Storage.Management/Az.Storage.psd1 | 40 +++++++------------ src/Storage/Storage.Management/ChangeLog.md | 2 + .../Properties/AssemblyInfo.cs | 4 +- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index ac158a672d9a..fb8fc94ae5b6 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 3/27/2020 +# Generated on: 4/3/2020 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '1.13.3' +ModuleVersion = '1.13.4' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -66,9 +66,9 @@ RequiredAssemblies = 'Microsoft.Azure.Management.Storage.dll', 'Microsoft.Azure.Storage.DataMovement.dll', 'Microsoft.Azure.DocumentDB.Core.dll', 'Microsoft.OData.Core.dll', 'Microsoft.OData.Edm.dll', 'Microsoft.Spatial.dll', - 'Microsoft.Azure.KeyVault.Core.dll','Azure.Storage.Blobs.dll', - 'Azure.Storage.Common.dll', 'Azure.Storage.Files.DataLake.dll', - 'Azure.Core.dll', 'Microsoft.Bcl.AsyncInterfaces.dll', + 'Microsoft.Azure.KeyVault.Core.dll', 'Azure.Storage.Blobs.dll', + 'Azure.Storage.Common.dll', 'Azure.Storage.Files.DataLake.dll', + 'Azure.Core.dll', 'Microsoft.Bcl.AsyncInterfaces.dll', 'System.Text.Json.dll', 'System.Threading.Tasks.Extensions.dll' # Script files (.ps1) that are run in the caller's environment prior to importing this module. @@ -169,8 +169,8 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'Set-AzDataLakeGen2ItemAclObject', 'Get-AzDataLakeGen2ItemContent', 'Enable-AzStorageBlobRestorePolicy', 'Disable-AzStorageBlobRestorePolicy', - 'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange', - 'New-AzStorageEncryptionScope','Update-AzStorageEncryptionScope', + 'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange', + 'New-AzStorageEncryptionScope', 'Update-AzStorageEncryptionScope', 'Get-AzStorageEncryptionScope' # Variables to export from this module @@ -215,24 +215,14 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Upgrade DataLake Gen2 cmdlets to use new SDK ''Azure.Storage.Files.DataLake'', and remove 2 parameter -ServerTimeoutPerRequest, -ClientTimeoutPerRequest - - New-AzDataLakeGen2Item - - Get-AzDataLakeGen2Item - - Get-AzDataLakeGen2ChildItem - - Move-AzDataLakeGen2Item - - Set-AzDataLakeGen2ItemAclObject - - Update-AzDataLakeGen2Item - - Get-AzDataLakeGen2ItemContent - - Remove-AzDataLakeGen2Item -* Change cmdlet name from New-AzDataLakeGen2ItemAclObject to Set-AzDataLakeGen2ItemAclObject, and when InputObject already has an ACL entry with same AccessControlType/EntityId/DefaultScope, will update permission of ACL entry instead of adding new ACL entry. - - Set-AzDataLakeGen2ItemAclObject -* Change -Path parameter to optional, don''t set -Path will get/update FileSystem root Directory - - Get-AzDataLakeGen2Item - - Update-AzDataLakeGen2Item -* In list DataLakeGen2 items, support -OutputUserPrincipalName, and change -FetchPermission to -Fetchproperties - - Get-AzDataLakeGen2ChildItem -* In move DataLakeGen2 item, remove 2 parameters -Umask, -PathRenameMode, and add -Force to skip overwrite confirmation prompt. - - Move-AzDataLakeGen2Item' + ReleaseNotes = '* Support create/update/get/list EncryptionScope of a Storage account + - New-AzStorageEncryptionScope + - Update-AzStorageEncryptionScope + - Get-AzStorageEncryptionScope +* Support create Storage Container with EncryptionScope settings + - New-AzRmStorageContainer +* Support update Storage account with encryted by Keyvault without Keyversion + - Set-AzStorageAccount' # Prerelease string of this module Prerelease = 'preview' diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 2a71a6b87446..71bc7594e4d8 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,8 @@ - Additional information about change #1 --> ## Upcoming Release + +## Version 1.13.4 * Support create/update/get/list EncryptionScope of a Storage account - New-AzStorageEncryptionScope - Update-AzStorageEncryptionScope diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index 4b97609fb29a..d30fdf15bacc 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.13.3")] -[assembly: AssemblyFileVersion("1.13.3")] +[assembly: AssemblyVersion("1.13.4")] +[assembly: AssemblyFileVersion("1.13.4")] From c37b97ba0c289399f46db74022c0cfab3e715c68 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Fri, 24 Apr 2020 09:23:31 +0800 Subject: [PATCH 04/21] [Storage] Add RestorePolicy.LastEnabledTime to cmdlet output (#11665) --- src/EventGrid/EventGrid.Test/EventGrid.Test.csproj | 2 +- .../Storage.Management.Test.csproj | 2 +- src/Storage/Storage.Management/ChangeLog.md | 3 +++ .../Storage.Management/File/NewAzureStorageShare.cs | 5 +++-- .../Storage.Management/File/UpdateAzureStorageShare.cs | 5 +++-- .../Storage.Management/Models/PSBlobServiceProperties.cs | 4 ++++ src/Storage/Storage.Management/Storage.Management.csproj | 2 +- .../Storage.Management/Storage.Management.format.ps1xml | 8 ++++++++ 8 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj index 56af6cec846b..39eb29a9e26f 100644 --- a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj +++ b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj index 444f64504f02..40dd69dfa803 100644 --- a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj +++ b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 71bc7594e4d8..31324f362915 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,9 @@ - Additional information about change #1 --> ## Upcoming Release +* Add RestorePolicy.LastEnabledTime to cmdlet output + - `Get-AzStorageBlobServiceProperty` + - `Enable-AzStorageBlobRestorePolicy` ## Version 1.13.4 * Support create/update/get/list EncryptionScope of a Storage account diff --git a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs index bf3f07ae09c2..77b897fcfc7f 100644 --- a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs @@ -111,8 +111,9 @@ public override void ExecuteCmdlet() this.ResourceGroupName, this.StorageAccountName, this.Name, - MetadataDictionary, - shareQuota); + new FileShare( + metadata: MetadataDictionary, + shareQuota: shareQuota)); WriteObject(new PSShare(share)); } diff --git a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs index 9e9434f35a3a..0105cc196db3 100644 --- a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs @@ -151,8 +151,9 @@ public override void ExecuteCmdlet() this.ResourceGroupName, this.StorageAccountName, this.Name, - MetadataDictionary, - shareQuota); + new FileShare( + metadata: MetadataDictionary, + shareQuota: shareQuota)); WriteObject(new PSShare(Share)); } diff --git a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs index 4ce10ded14a9..e0b40b0d7dfe 100644 --- a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs +++ b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs @@ -41,6 +41,7 @@ public class PSBlobServiceProperties public PSDeleteRetentionPolicy DeleteRetentionPolicy { get; set; } [Ps1Xml(Label = "RestorePolicy.Enabled", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.Enabled", Position = 5)] [Ps1Xml(Label = "RestorePolicy.Days", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.Days", Position = 6)] + [Ps1Xml(Label = "RestorePolicy.LastEnabledTime", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.LastEnabledTime", Position = 7)] public PSRestorePolicy RestorePolicy { get; set; } public PSCorsRules Cors { get; set; } @@ -157,6 +158,7 @@ public class PSRestorePolicy { public bool? Enabled { get; set; } public int? Days { get; set; } + public DateTime? LastEnabledTime { get; set; } public PSRestorePolicy() { @@ -166,6 +168,8 @@ public PSRestorePolicy(RestorePolicyProperties policy) { this.Enabled = policy.Enabled; this.Days = policy.Days; + this.LastEnabledTime = policy.LastEnabledTime; + } public RestorePolicyProperties ParseRestorePolicy() { diff --git a/src/Storage/Storage.Management/Storage.Management.csproj b/src/Storage/Storage.Management/Storage.Management.csproj index 7aa000583ae0..1e2049b88c4b 100644 --- a/src/Storage/Storage.Management/Storage.Management.csproj +++ b/src/Storage/Storage.Management/Storage.Management.csproj @@ -14,7 +14,7 @@ $(LegacyAssemblyPrefix)$(PsModuleName) - + diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index b27b3618e658..84ce64ae569c 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -312,6 +312,10 @@ Left + + Left + + Left @@ -348,6 +352,10 @@ Left $_.RestorePolicy.Days + + Left + $_.RestorePolicy.LastEnabledTime + Left $_.ChangeFeed.Enabled From 7e0fcb6f9fe4f4eb41965d0866df45b4dcb9e0b8 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Fri, 24 Apr 2020 13:36:47 +0800 Subject: [PATCH 05/21] [Storage] Support Encryption Scope dataplane (#11676) --- .../ScenarioTests/StorageDataPlaneTests.ps1 | 11 + .../Blob/NewAzureStorageContainer.cs | 1 + src/Storage/Storage.Management/ChangeLog.md | 23 ++ .../help/New-AzRmStorageContainer.md | 2 +- .../help/New-AzStorageContainer.md | 54 +++- .../help/Set-AzStorageBlobContent.md | 49 +++- .../Blob/Cmdlet/NewAzureStorageContainer.cs | 67 ++++- .../Blob/Cmdlet/SetAzureStorageBlobContent.cs | 163 ++++++++++- .../Blob/StorageCloudBlobCmdletBase.cs | 252 ++++++++++++++++++ .../Blob/StorageDataMovementCmdletBase.cs | 2 + .../Storage/Common/AzureStorageContainer.cs | 2 +- 11 files changed, 605 insertions(+), 21 deletions(-) diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 index 2ab1e927e6e3..06b63d5e3c81 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 @@ -277,6 +277,17 @@ function Test-Blob $immutabilityPolicy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ContainerName $containerName Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ContainerName $containerName -Etag $immutabilityPolicy.Etag + # Encryption Scope Test + $scopename = "testscope" + $containerName2 = "testscopecontainer" + New-AzStorageEncryptionScope -ResourceGroupName $ResourceGroupName -StorageAccountName $storageAccountName -EncryptionScopeName $scopename -StorageEncryption + $container = New-AzStorageContainer -Name $containerName2 -Context $storageContext -DefaultEncryptionScope $scopeName2 -PreventEncryptionScopeOverride $true + Assert-AreEqual $scopename $container.BlobContainerProperties.DefaultEncryptionScope + Assert-AreEqual $true $container.BlobContainerProperties.PreventEncryptionScopeOverride + $blob = Set-AzStorageBlobContent -Context $storageContext -File $localSrcFile -Container $containerName -Blob encryscopetest -EncryptionScope $scopename + Assert-AreEqual $scopename $blob.BlobProperties.EncryptionScope + Remove-AzStorageContainer -Name $containerName2 -Force -Context $storageContext + # Clean Storage Account Remove-AzStorageContainer -Name $containerName -Force -Context $storageContext diff --git a/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs b/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs index d5431d294d98..a91dc7a0df50 100644 --- a/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs +++ b/src/Storage/Storage.Management/Blob/NewAzureStorageContainer.cs @@ -102,6 +102,7 @@ public class NewAzureStorageContainerCommand : StorageBlobBaseCmdlet [Parameter(HelpMessage = "Default the container to use specified encryption scope for all writes.", Mandatory = true, ParameterSetName = AccountObjectEncryptionScopeParameterSet)] + [ValidateNotNullOrEmpty] public string DefaultEncryptionScope { get; set; } [Parameter(HelpMessage = "Block override of encryption scope from the container default.", diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 31324f362915..e3c319edf0a1 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,9 +18,32 @@ - Additional information about change #1 --> ## Upcoming Release +* Supported create container and upload blob with Encryption Scope setting + - `New-AzStorageContainer` + - `Set-AzStorageBlobContent` * Add RestorePolicy.LastEnabledTime to cmdlet output - `Get-AzStorageBlobServiceProperty` - `Enable-AzStorageBlobRestorePolicy` +* Fixed #9880: Change NetWorkRule DefaultAction value defination to align with swagger. + - `Update-AzStorageAccountNetworkRuleSet` + - `Get-AzStorageAccountNetworkRuleSet` +* Fixed #11624: Skip duplicated rules when add NetworkRules, to avoid server failure + - `Add-AzStorageAccountNetworkRule` + +## Version 1.14.0 +* Added breaking change notice for Azure File cmdlets output change in a future release +* Supported new SkuName StandardGZRS, StandardRAGZRS when create/update Storage account + - `New-AzStorageAccount` + - `Set-AzStorageAccount` +* Supported DataLake Gen2 + - `New-AzDataLakeGen2Item` + - `Get-AzDataLakeGen2Item` + - `Get-AzDataLakeGen2ChildItem` + - `Move-AzDataLakeGen2Item` + - `Set-AzDataLakeGen2ItemAclObject` + - `Update-AzDataLakeGen2Item` + - `Get-AzDataLakeGen2ItemContent` + - `Remove-AzDataLakeGen2Item` ## Version 1.13.4 * Support create/update/get/list EncryptionScope of a Storage account diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md b/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md index 3bbba992d9e8..32e2baac8deb 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageContainer.md @@ -250,7 +250,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/New-AzStorageContainer.md b/src/Storage/Storage.Management/help/New-AzStorageContainer.md index f905e724f4ba..fd899cae4197 100644 --- a/src/Storage/Storage.Management/help/New-AzStorageContainer.md +++ b/src/Storage/Storage.Management/help/New-AzStorageContainer.md @@ -13,12 +13,21 @@ Creates an Azure storage container. ## SYNTAX +### ContainerName (Default) ``` New-AzStorageContainer [-Name] [[-Permission] ] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [] ``` +### EncryptionScope +``` +New-AzStorageContainer [-Name] [[-Permission] ] + -DefaultEncryptionScope -PreventEncryptionScopeOverride [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [] +``` + ## DESCRIPTION The **New-AzStorageContainer** cmdlet creates an Azure storage container. @@ -39,6 +48,19 @@ PS C:\>"container1 container2 container3".split() | New-AzStorageContainer -Perm This example creates multiple storage containers. It uses the **Split** method of the .NET **String** class and then passes the names on the pipeline. +### Example 3: Create an Azure storage container with Encryption Scope +``` +PS C:\> $container = New-AzStorageContainer -Name "mycontainer" -DefaultEncryptionScope "myencryptscope" -PreventEncryptionScopeOverride $true + +PS C:\> $container.BlobContainerProperties.DefaultEncryptionScope +myencryptscope + +PS C:\> $container.BlobContainerProperties.PreventEncryptionScopeOverride +True +``` + +This command creates a storage container, with default Encryption Scope as myencryptscope, and prevert blob upload with different Encryption Scope to this container. + ## PARAMETERS ### -ClientTimeoutPerRequest @@ -92,6 +114,21 @@ Accept pipeline input: True (ByPropertyName, ByValue) Accept wildcard characters: False ``` +### -DefaultEncryptionScope +Default the container to use specified encryption scope for all writes. + +```yaml +Type: System.String +Parameter Sets: EncryptionScope +Aliases: + +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. @@ -150,6 +187,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -PreventEncryptionScopeOverride +Block override of encryption scope from the container default. + +```yaml +Type: System.Boolean +Parameter Sets: EncryptionScope +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ServerTimeoutPerRequest Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. @@ -167,7 +219,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md b/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md index 69b808b80d6d..e65bd0ae4ffe 100644 --- a/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md +++ b/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md @@ -17,17 +17,18 @@ Uploads a local file to an Azure Storage blob. ``` Set-AzStorageBlobContent [-File] [-Container] [-Blob ] [-BlobType ] [-Properties ] [-Metadata ] [-PremiumPageBlobTier ] - [-StandardBlobTier ] [-Force] [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-StandardBlobTier ] [-EncryptionScope ] [-Force] [-AsJob] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### ContainerPipeline ``` Set-AzStorageBlobContent [-File] [-Blob ] -CloudBlobContainer [-BlobType ] [-Properties ] [-Metadata ] - [-PremiumPageBlobTier ] [-StandardBlobTier ] [-Force] [-AsJob] - [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-PremiumPageBlobTier ] [-StandardBlobTier ] [-EncryptionScope ] [-Force] + [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -35,10 +36,10 @@ Set-AzStorageBlobContent [-File] [-Blob ] -CloudBlobContainer < ### BlobPipeline ``` Set-AzStorageBlobContent [-File] -CloudBlob [-BlobType ] [-Properties ] - [-Metadata ] [-PremiumPageBlobTier ] [-StandardBlobTier ] [-Force] - [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-Metadata ] [-PremiumPageBlobTier ] [-StandardBlobTier ] + [-EncryptionScope ] [-Force] [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -97,6 +98,16 @@ PS C:\> Set-AzStorageBlobContent -File "ContosoPlanning" -Container "ContosoUplo This command uploads the file that is named ContosoPlanning to the container named ContosoUploads with specified blob properties, and set StandardBlobTier as Cool. +### Example 7: Upload a file to a blob with Encryption Scope +``` +PS C:\> $blob = Set-AzStorageBlobContent -File "mylocalfile" -Container "mycontainer" -Blob "myblob" -EncryptionScope "myencryptscope" + +PS C:\> $blob.BlobProperties.EncryptionScope +myencryptscope +``` + +This command uploads a file to a blob with Encryption Scope. + ## PARAMETERS ### -AsJob @@ -267,6 +278,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EncryptionScope +Encryption scope to be used when making requests to the blob. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -File Specifies a local file path for a file to upload as blob content. @@ -331,7 +357,7 @@ Page Blob Tier Type: Microsoft.Azure.Storage.Blob.PremiumPageBlobTier Parameter Sets: (All) Aliases: -Accepted values: Unknown, P4, P6, P10, P20, P30, P40, P50, P60 +Accepted values: Unknown, P4, P6, P10, P20, P30, P40, P50, P60, P70, P80 Required: False Position: Named @@ -380,6 +406,7 @@ See detail in https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob- Type: System.String Parameter Sets: (All) Aliases: +Accepted values: Hot, Cool, Archive Required: False Position: Named @@ -420,7 +447,7 @@ 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). +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 diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs index 9a37728a09f2..d0111eafeacb 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs @@ -22,14 +22,27 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet using System.Management.Automation; using System.Security.Permissions; using System.Threading.Tasks; + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Blobs.Models; + using global::Azure; /// /// create a new azure container /// - [Cmdlet("New", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainer"),OutputType(typeof(AzureStorageContainer))] + [Cmdlet("New", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageContainer", DefaultParameterSetName = ContainerNameParameterSet),OutputType(typeof(AzureStorageContainer))] [Alias("New-" + Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "DatalakeGen2FileSystem")] public class NewAzureStorageContainerCommand : StorageCloudBlobCmdletBase { + /// + /// Container Name parameter + /// + private const string ContainerNameParameterSet = "ContainerName"; + + /// + /// Container create with EncryptionScope parameter + /// + private const string EncryptionScopeParameterSet = "EncryptionScope"; + [Alias("N", "Container")] [Parameter(Position = 0, Mandatory = true, HelpMessage = "Container name", ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)] @@ -47,6 +60,29 @@ public BlobContainerPublicAccessType? Permission } private BlobContainerPublicAccessType accessLevel = BlobContainerPublicAccessType.Off; + [Parameter(HelpMessage = "Default the container to use specified encryption scope for all writes.", + Mandatory = true, + ParameterSetName = EncryptionScopeParameterSet)] + [ValidateNotNullOrEmpty] + public string DefaultEncryptionScope { get; set; } + + [Parameter(HelpMessage = "Prevent override of encryption scope from the container default.", + Mandatory = true, + ParameterSetName = EncryptionScopeParameterSet)] + [ValidateNotNullOrEmpty] + public bool PreventEncryptionScopeOverride + { + get + { + return preventEncryptionScopeOverride is null ? false : preventEncryptionScopeOverride.Value; + } + set + { + preventEncryptionScopeOverride = value; + } + } + private bool? preventEncryptionScopeOverride; + /// /// Initializes a new instance of the NewAzureStorageContainerCommand class. /// @@ -77,18 +113,37 @@ internal async Task CreateAzureContainer(long taskId, IStorageBlobManagement loc BlobRequestOptions requestOptions = RequestOptions; CloudBlobContainer container = localChannel.GetContainerReference(name); + BlobContainerClient containerClient = AzureStorageContainer.GetTrack2BlobContainerClient(container, localChannel.StorageContext); - BlobContainerPermissions permissions = new BlobContainerPermissions(); - - permissions.PublicAccess = accesslevel; + PublicAccessType containerPublicAccess = PublicAccessType.None; + if (accesslevel == BlobContainerPublicAccessType.Blob) + { + containerPublicAccess = PublicAccessType.Blob; + } + else if (accesslevel == BlobContainerPublicAccessType.Container) + { + containerPublicAccess = PublicAccessType.BlobContainer; + } - bool created = await localChannel.CreateContainerIfNotExistsAsync(container, permissions.PublicAccess, requestOptions, OperationContext, CmdletCancellationToken).ConfigureAwait(false); + BlobContainerEncryptionScopeOptions encryptionScopeOption = null; + if (this.DefaultEncryptionScope != null) + { + encryptionScopeOption = new BlobContainerEncryptionScopeOptions() + { + // parameterset can ensure the 2 parameters must be set together. + DefaultEncryptionScope = this.DefaultEncryptionScope, + PreventEncryptionScopeOverride = this.preventEncryptionScopeOverride.Value + }; + } - if (!created) + Response responds = await containerClient.CreateIfNotExistsAsync(containerPublicAccess, null, encryptionScopeOption, CmdletCancellationToken).ConfigureAwait(false); + if (responds == null || responds.Value == null) // Container already exist so not created again { throw new ResourceAlreadyExistException(String.Format(Resources.ContainerAlreadyExists, name)); } + BlobContainerPermissions permissions = new BlobContainerPermissions() { PublicAccess = accesslevel }; + container.FetchAttributes(); WriteCloudContainerObject(taskId, localChannel, container, permissions); } diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs index 7a192291af37..c5d4a197b2f6 100644 --- a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs @@ -30,6 +30,12 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; using Microsoft.Azure.Storage.DataMovement; +using Azure; +using Azure.Storage.Blobs; +using Azure.Storage.Files.DataLake.Models; +using Azure.Storage.Blobs.Models; +using Azure.Storage.Blobs.Specialized; +using Azure.Storage; namespace Microsoft.WindowsAzure.Commands.Storage.Blob { @@ -196,6 +202,11 @@ public string StandardBlobTier } private StandardBlobTier? standardBlobTier = null; + [Parameter(HelpMessage = "Encryption scope to be used when making requests to the blob.", + Mandatory = false)] + [ValidateNotNullOrEmpty] + public string EncryptionScope { get; set; } + private BlobUploadRequestQueue UploadRequests = new BlobUploadRequestQueue(); /// @@ -362,7 +373,17 @@ protected override void DoEndProcessing() { Tuple uploadRequest = UploadRequests.DequeueRequest(); IStorageBlobManagement localChannel = Channel; - Func taskGenerator = (taskId) => Upload2Blob(taskId, localChannel, uploadRequest.Item1, uploadRequest.Item2); + Func taskGenerator; + if (string.IsNullOrEmpty(this.EncryptionScope)) + { + //Upload with DMlib + taskGenerator = (taskId) => Upload2Blob(taskId, localChannel, uploadRequest.Item1, uploadRequest.Item2); + } + else + { + // As DMlib still not support Encryption scope, need upload with SDK directly to support Encryption scope + taskGenerator = (taskId) => UploadBlobwithSDK(taskId, localChannel, uploadRequest.Item1, uploadRequest.Item2); + } RunTask(taskGenerator); } @@ -396,6 +417,146 @@ private async Task SetBlobTier(IStorageBlobManagement localChannel, StorageBlob. } } + /// + /// Upload File to blob with storage Client library API + /// + internal virtual async Task UploadBlobwithSDK(long taskId, IStorageBlobManagement localChannel, string filePath, StorageBlob.CloudBlob blob) + { + BlobClientOptions options = null; + if (!string.IsNullOrEmpty(this.EncryptionScope)) + { + options = new BlobClientOptions() + { + EncryptionScope = this.EncryptionScope, + }; + } + + if (this.Force.IsPresent + || !blob.Exists() + || ShouldContinue(string.Format(Resources.OverwriteConfirmation, blob.Uri), null)) + { + // Prepare blob Properties, MetaData, accessTier + BlobHttpHeaders blobHttpHeaders = CreateBlobHttpHeaders(BlobProperties); + IDictionary metadata = new Dictionary(); + SetBlobMeta_Track2(metadata, this.Metadata); + AccessTier? accesstier = GetAccessTier_Track2(this.standardBlobTier, this.pageBlobTier); + + //Prepare progress handler + long fileSize = new FileInfo(ResolvedFileName).Length; + string activity = String.Format(Resources.SendAzureBlobActivity, this.File, blob.Name, blob.Container.Name); + string status = Resources.PrepareUploadingBlob; + ProgressRecord pr = new ProgressRecord(OutputStream.GetProgressId(taskId), activity, status); + IProgress progressHandler = new Progress((finishedBytes) => + { + if (pr != null) + { + // Size of the source file might be 0, when it is, directly treat the progress as 100 percent. + pr.PercentComplete = 0 == fileSize ? 100 : (int)(finishedBytes * 100 / fileSize); + pr.StatusDescription = string.Format(CultureInfo.CurrentCulture, Resources.FileTransmitStatus, pr.PercentComplete); + Console.WriteLine(finishedBytes); + this.OutputStream.WriteProgress(pr); + } + }); + + using (FileStream stream = System.IO.File.OpenRead(ResolvedFileName)) + { + //block blob + if (string.Equals(blobType, BlockBlobType, StringComparison.InvariantCultureIgnoreCase)) + { + BlobClient blobClient = GetTrack2BlobClient(blob, localChannel.StorageContext, options); + StorageTransferOptions trasnferOption = new StorageTransferOptions() { MaximumConcurrency = this.GetCmdletConcurrency() }; + await blobClient.UploadAsync(stream, blobHttpHeaders, metadata, null, progressHandler, accesstier, trasnferOption, CmdletCancellationToken).ConfigureAwait(false); + } + //Page or append blob + else if (string.Equals(blobType, PageBlobType, StringComparison.InvariantCultureIgnoreCase) + || string.Equals(blobType, AppendBlobType, StringComparison.InvariantCultureIgnoreCase)) + { + PageBlobClient pageblobClient = null; + AppendBlobClient appendblobClient = null; + + //Create Blob + if (string.Equals(blobType, PageBlobType, StringComparison.InvariantCultureIgnoreCase)) //page + { + if (fileSize % 512 != 0) + { + throw new ArgumentException(String.Format("File size {0} Bytes is invalid for PageBlob, must be a multiple of 512 bytes.", fileSize.ToString())); + } + pageblobClient = GetTrack2PageBlobClient(blob, localChannel.StorageContext, options); + Response blobInfo = await pageblobClient.CreateAsync(fileSize, null, blobHttpHeaders, metadata, null, CmdletCancellationToken).ConfigureAwait(false); + } + else //append + { + appendblobClient = GetTrack2AppendBlobClient(blob, localChannel.StorageContext, options); + Response blobInfo = await appendblobClient.CreateAsync(blobHttpHeaders, metadata, null, CmdletCancellationToken).ConfigureAwait(false); + } + + // Upload blob content + byte[] uploadcache4MB = null; + byte[] uploadcache = null; + progressHandler.Report(0); + long offset = 0; + while (offset < fileSize) + { + // Get chunk size and prepare cache + int chunksize = size4MB; + if (chunksize <= (fileSize - offset)) // Chunk size will be 4MB + { + if (uploadcache4MB == null) + { + uploadcache4MB = new byte[size4MB]; + } + uploadcache = uploadcache4MB; + } + else // last chunk can < 4MB + { + chunksize = (int)(fileSize - offset); + if (uploadcache4MB == null) + { + uploadcache = new byte[chunksize]; + } + else + { + uploadcache = uploadcache4MB; + } + } + + //Get content to upload for the chunk + int readoutcount = await stream.ReadAsync(uploadcache, 0, (int)chunksize).ConfigureAwait(false); + MemoryStream chunkContent = new MemoryStream(uploadcache, 0, readoutcount); + + //Upload content + if (string.Equals(blobType, PageBlobType, StringComparison.InvariantCultureIgnoreCase)) //page + { + Response pageInfo = await pageblobClient.UploadPagesAsync(chunkContent, offset, null, null, null, CmdletCancellationToken).ConfigureAwait(false); + } + else //append + { + Response pageInfo = await appendblobClient.AppendBlockAsync(chunkContent, null, null, null, CmdletCancellationToken).ConfigureAwait(false); + } + + // Update progress + offset += readoutcount; + progressHandler.Report(offset); + } + if(string.Equals(blobType, PageBlobType, StringComparison.InvariantCultureIgnoreCase) && accesstier != null) + { + await pageblobClient.SetAccessTierAsync(accesstier.Value, cancellationToken: CmdletCancellationToken).ConfigureAwait(false); + } + } + else + { + throw new InvalidOperationException(string.Format( + CultureInfo.CurrentCulture, + Resources.InvalidBlobType, + blobType, + BlobName)); + } + } + + WriteCloudBlobObject(taskId, localChannel, blob); + } + } + /// /// On Task run successfully /// diff --git a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs index e43f17c22f5a..2fdb5e55162b 100644 --- a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs +++ b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs @@ -31,6 +31,8 @@ namespace Microsoft.WindowsAzure.Commands.Storage using global::Azure.Storage; using global::Azure; using global::Azure.Storage.Files.DataLake.Models; + using Track2blobModel = global::Azure.Storage.Blobs.Models; + using global::Azure.Storage.Blobs.Specialized; /// /// Base cmdlet for storage blob/container cmdlet @@ -642,5 +644,255 @@ protected static void SetBlobMeta(CloudBlob blob, Hashtable meta) } } } + + /// + /// CreateBlobPropertiesObject, which will be set to server + /// + /// properties to set + protected static Track2blobModel.BlobHttpHeaders CreateBlobHttpHeaders(Hashtable BlobProperties) + { + if (BlobProperties != null) + { + // Valid Blob Dir properties + foreach (DictionaryEntry entry in BlobProperties) + { + if (!validDatalakeGen2FileProperties.ContainsKey(entry.Key.ToString())) + { + throw new ArgumentException(String.Format("InvalidDataLakeFileProperties", entry.Key.ToString(), entry.Value.ToString())); + } + } + + Track2blobModel.BlobHttpHeaders headers = new Track2blobModel.BlobHttpHeaders(); + foreach (DictionaryEntry entry in BlobProperties) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + Action action = validBlobProperties_Track2[key]; + + if (action != null) + { + action(headers, value); + } + } + return headers; + } + else + { + return null; + } + } + + //only support the common properties for Blob + protected static Dictionary> validBlobProperties_Track2 = + new Dictionary>(StringComparer.OrdinalIgnoreCase) + { + {"CacheControl", (p, v) => p.CacheControl = v}, + {"ContentDisposition", (p, v) => p.ContentDisposition = v}, + {"ContentEncoding", (p, v) => p.ContentEncoding = v}, + {"ContentLanguage", (p, v) => p.ContentLanguage = v}, + {"ContentMD5", (p, v) => p.ContentHash = Convert.FromBase64String(v)}, + {"ContentType", (p, v) => p.ContentType = v}, + }; + + //Update Blob Metadata + protected static IDictionary SetBlobMeta_Track2(IDictionary originalMetaData, Hashtable meta) + { + if (meta == null) + { + return originalMetaData; + } + + foreach (DictionaryEntry entry in meta) + { + string key = entry.Key.ToString(); + string value = entry.Value.ToString(); + + if (originalMetaData.ContainsKey(key)) + { + originalMetaData[key] = value; + } + else + { + originalMetaData.Add(key, value); + } + } + return originalMetaData; + } + + protected static Track2blobModel.AccessTier? GetAccessTier_Track2(StandardBlobTier? standardBlobTier, PremiumPageBlobTier? pageBlobTier) + { + if(standardBlobTier == null && pageBlobTier == null) + { + return null; + } + if (standardBlobTier != null) + { + switch (standardBlobTier.Value) + { + case StandardBlobTier.Archive: + return Track2blobModel.AccessTier.Archive; + case StandardBlobTier.Cool: + return Track2blobModel.AccessTier.Cool; + case StandardBlobTier.Hot: + return Track2blobModel.AccessTier.Hot; + default: + return null; + } + } + else //pageBlobTier != null + { + switch (pageBlobTier.Value) + { + case PremiumPageBlobTier.P4: + return Track2blobModel.AccessTier.P4; + case PremiumPageBlobTier.P6: + return Track2blobModel.AccessTier.P6; + case PremiumPageBlobTier.P10: + return Track2blobModel.AccessTier.P10; + case PremiumPageBlobTier.P20: + return Track2blobModel.AccessTier.P20; + case PremiumPageBlobTier.P30: + return Track2blobModel.AccessTier.P30; + case PremiumPageBlobTier.P40: + return Track2blobModel.AccessTier.P40; + case PremiumPageBlobTier.P50: + return Track2blobModel.AccessTier.P50; + case PremiumPageBlobTier.P60: + return Track2blobModel.AccessTier.P60; + case PremiumPageBlobTier.P70: + return Track2blobModel.AccessTier.P70; + case PremiumPageBlobTier.P80: + return Track2blobModel.AccessTier.P80; + default: + return null; + } + } + } + + // Convert Track1 Blob object to Track 2 blob Client + public static BlobClient GetTrack2BlobClient(CloudBlob cloubBlob, AzureStorageContext context, BlobClientOptions options = null) + { + BlobClient blobClient; + if (cloubBlob.ServiceClient.Credentials.IsToken) //Oauth + { + if (context == null) + { + //TODO : Get Oauth context from current login user. + throw new System.Exception("Need Storage Context to convert Track1 Blob object in token credentail to Track2 Blob object."); + } + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri, context.Track2OauthToken, options); + + } + else if (cloubBlob.ServiceClient.Credentials.IsSAS) //SAS + { + string fullUri = cloubBlob.SnapshotQualifiedUri.ToString(); + if (cloubBlob.IsSnapshot) + { + // Since snapshot URL already has '?', need remove '?' in the first char of sas + fullUri = fullUri + "&" + cloubBlob.ServiceClient.Credentials.SASToken.Substring(1); + } + else + { + fullUri = fullUri + cloubBlob.ServiceClient.Credentials.SASToken; + } + blobClient = new BlobClient(new Uri(fullUri), options); + } + else if (cloubBlob.ServiceClient.Credentials.IsSharedKey) //Shared Key + { + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri, + new StorageSharedKeyCredential(context.StorageAccountName, cloubBlob.ServiceClient.Credentials.ExportBase64EncodedKey()), + options); + } + else //Anonymous + { + blobClient = new BlobClient(cloubBlob.SnapshotQualifiedUri, options); + } + + return blobClient; + } + + // Convert Track1 Blob object to Track 2 page blob Client + public static PageBlobClient GetTrack2PageBlobClient(CloudBlob cloubBlob, AzureStorageContext context, BlobClientOptions options = null) + { + PageBlobClient blobClient; + if (cloubBlob.ServiceClient.Credentials.IsToken) //Oauth + { + if (context == null) + { + //TODO : Get Oauth context from current login user. + throw new System.Exception("Need Storage Context to convert Track1 Blob object in token credentail to Track2 Blob object."); + } + blobClient = new PageBlobClient(cloubBlob.SnapshotQualifiedUri, context.Track2OauthToken, options); + + } + else if (cloubBlob.ServiceClient.Credentials.IsSAS) //SAS + { + string fullUri = cloubBlob.SnapshotQualifiedUri.ToString(); + if (cloubBlob.IsSnapshot) + { + // Since snapshot URL already has '?', need remove '?' in the first char of sas + fullUri = fullUri + "&" + cloubBlob.ServiceClient.Credentials.SASToken.Substring(1); + } + else + { + fullUri = fullUri + cloubBlob.ServiceClient.Credentials.SASToken; + } + blobClient = new PageBlobClient(new Uri(fullUri), options); + } + else if (cloubBlob.ServiceClient.Credentials.IsSharedKey) //Shared Key + { + blobClient = new PageBlobClient(cloubBlob.SnapshotQualifiedUri, + new StorageSharedKeyCredential(context.StorageAccountName, cloubBlob.ServiceClient.Credentials.ExportBase64EncodedKey()), + options); + } + else //Anonymous + { + blobClient = new PageBlobClient(cloubBlob.SnapshotQualifiedUri, options); + } + + return blobClient; + } + + // Convert Track1 Blob object to Track 2 append blob Client + public static AppendBlobClient GetTrack2AppendBlobClient(CloudBlob cloubBlob, AzureStorageContext context, BlobClientOptions options = null) + { + AppendBlobClient blobClient; + if (cloubBlob.ServiceClient.Credentials.IsToken) //Oauth + { + if (context == null) + { + //TODO : Get Oauth context from current login user. + throw new System.Exception("Need Storage Context to convert Track1 Blob object in token credentail to Track2 Blob object."); + } + blobClient = new AppendBlobClient(cloubBlob.SnapshotQualifiedUri, context.Track2OauthToken, options); + + } + else if (cloubBlob.ServiceClient.Credentials.IsSAS) //SAS + { + string fullUri = cloubBlob.SnapshotQualifiedUri.ToString(); + if (cloubBlob.IsSnapshot) + { + // Since snapshot URL already has '?', need remove '?' in the first char of sas + fullUri = fullUri + "&" + cloubBlob.ServiceClient.Credentials.SASToken.Substring(1); + } + else + { + fullUri = fullUri + cloubBlob.ServiceClient.Credentials.SASToken; + } + blobClient = new AppendBlobClient(new Uri(fullUri), options); + } + else if (cloubBlob.ServiceClient.Credentials.IsSharedKey) //Shared Key + { + blobClient = new AppendBlobClient(cloubBlob.SnapshotQualifiedUri, + new StorageSharedKeyCredential(context.StorageAccountName, cloubBlob.ServiceClient.Credentials.ExportBase64EncodedKey()), + options); + } + else //Anonymous + { + blobClient = new AppendBlobClient(cloubBlob.SnapshotQualifiedUri, options); + } + + return blobClient; + } } } \ No newline at end of file diff --git a/src/Storage/Storage/Blob/StorageDataMovementCmdletBase.cs b/src/Storage/Storage/Blob/StorageDataMovementCmdletBase.cs index 2ffa8a2445be..ff51d3595f83 100644 --- a/src/Storage/Storage/Blob/StorageDataMovementCmdletBase.cs +++ b/src/Storage/Storage/Blob/StorageDataMovementCmdletBase.cs @@ -24,6 +24,8 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob public class StorageDataMovementCmdletBase : StorageCloudBlobCmdletBase, IDisposable { + protected const int size4MB = 4 * 1024 * 1024; + /// /// Blob Transfer Manager /// diff --git a/src/Storage/Storage/Common/AzureStorageContainer.cs b/src/Storage/Storage/Common/AzureStorageContainer.cs index ea0e782abb35..9afa076a7a35 100644 --- a/src/Storage/Storage/Common/AzureStorageContainer.cs +++ b/src/Storage/Storage/Common/AzureStorageContainer.cs @@ -117,7 +117,7 @@ public void FetchAttributes() } // Convert Track1 Container object to Track 2 Container Client - protected static BlobContainerClient GetTrack2BlobContainerClient(CloudBlobContainer cloubContainer, AzureStorageContext context) + public static BlobContainerClient GetTrack2BlobContainerClient(CloudBlobContainer cloubContainer, AzureStorageContext context) { BlobContainerClient blobContainerClient; if (cloubContainer.ServiceClient.Credentials.IsToken) //Oauth From 2de9c77254ab761ccffb8b4551f0ac984a81ea41 Mon Sep 17 00:00:00 2001 From: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com> Date: Sun, 26 Apr 2020 11:04:13 +0800 Subject: [PATCH 06/21] Update the version (#11690) Co-authored-by: wyunchi-ms --- .../Storage.Management/Az.Storage.psd1 | 23 +++++++++++-------- src/Storage/Storage.Management/ChangeLog.md | 2 ++ .../Properties/AssemblyInfo.cs | 4 ++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index fb8fc94ae5b6..e0e1ecb26b3e 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 4/3/2020 +# Generated on: 2020-04-24 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '1.13.4' +ModuleVersion = '1.14.1' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -215,14 +215,17 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Support create/update/get/list EncryptionScope of a Storage account - - New-AzStorageEncryptionScope - - Update-AzStorageEncryptionScope - - Get-AzStorageEncryptionScope -* Support create Storage Container with EncryptionScope settings - - New-AzRmStorageContainer -* Support update Storage account with encryted by Keyvault without Keyversion - - Set-AzStorageAccount' + ReleaseNotes = '* Supported create container and upload blob with Encryption Scope setting + - ''New-AzStorageContainer'' + - ''Set-AzStorageBlobContent'' +* Add RestorePolicy.LastEnabledTime to cmdlet output + - ''Get-AzStorageBlobServiceProperty'' + - ''Enable-AzStorageBlobRestorePolicy'' +* Fixed #9880: Change NetWorkRule DefaultAction value defination to align with swagger. + - ''Update-AzStorageAccountNetworkRuleSet'' + - ''Get-AzStorageAccountNetworkRuleSet'' +* Fixed #11624: Skip duplicated rules when add NetworkRules, to avoid server failure + - ''Add-AzStorageAccountNetworkRule''' # Prerelease string of this module Prerelease = 'preview' diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index e3c319edf0a1..05f6864a49a9 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,8 @@ - Additional information about change #1 --> ## Upcoming Release + +## Version 1.14.1 * Supported create container and upload blob with Encryption Scope setting - `New-AzStorageContainer` - `Set-AzStorageBlobContent` diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index d30fdf15bacc..30f9d3ec7b9e 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.13.4")] -[assembly: AssemblyFileVersion("1.13.4")] +[assembly: AssemblyVersion("1.14.1")] +[assembly: AssemblyFileVersion("1.14.1")] From 16ae5f72bcdbae711b41b04c44ca5390f3068c28 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Thu, 30 Apr 2020 22:14:22 +0800 Subject: [PATCH 07/21] [Storage] Support ORS (#11752) * [Storage] Support ORS * [Storage] Fix CI failure --- .../ScenarioTests/StorageBlobTests.cs | 7 + .../ScenarioTests/StorageBlobTests.ps1 | 104 + .../TestStorageBlobORS.json | 2391 +++++++++++++++++ .../Storage.Management/Az.Storage.psd1 | 4 +- ...UpdateAzureStorageBlobServiceProperties.cs | 23 +- src/Storage/Storage.Management/ChangeLog.md | 10 + .../Models/PSBlobServiceProperties.cs | 5 +- .../Models/PSObjectReplicationPolicy.cs | 195 ++ .../Storage.Management.format.ps1xml | 206 +- .../GetAzStorageObjectReplicationPolicy.cs | 121 + ...NewAzStorageObjectReplicationPolicyRule.cs | 106 + .../RemoveAzStorageObjectReplicationPolicy.cs | 143 + .../SetAzStorageObjectReplicationPolicy.cs | 199 ++ .../Storage.Management/help/Az.Storage.md | 12 + .../help/Get-AzStorageBlobServiceProperty.md | 12 +- .../Get-AzStorageObjectReplicationPolicy.md | 156 ++ ...ew-AzStorageObjectReplicationPolicyRule.md | 157 ++ ...Remove-AzStorageObjectReplicationPolicy.md | 199 ++ .../Set-AzStorageObjectReplicationPolicy.md | 252 ++ .../Update-AzStorageBlobServiceProperty.md | 70 +- 20 files changed, 4301 insertions(+), 71 deletions(-) create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobORS.json create mode 100644 src/Storage/Storage.Management/Models/PSObjectReplicationPolicy.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/GetAzStorageObjectReplicationPolicy.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/NewAzStorageObjectReplicationPolicyRule.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/RemoveAzStorageObjectReplicationPolicy.cs create mode 100644 src/Storage/Storage.Management/StorageAccount/SetAzStorageObjectReplicationPolicy.cs create mode 100644 src/Storage/Storage.Management/help/Get-AzStorageObjectReplicationPolicy.md create mode 100644 src/Storage/Storage.Management/help/New-AzStorageObjectReplicationPolicyRule.md create mode 100644 src/Storage/Storage.Management/help/Remove-AzStorageObjectReplicationPolicy.md create mode 100644 src/Storage/Storage.Management/help/Set-AzStorageObjectReplicationPolicy.md diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs index 64d697f6bfe3..91046e749279 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs @@ -72,5 +72,12 @@ public void TestStorageBlobRestore() { TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobRestore"); } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestStorageBlobORS() + { + TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobORS"); + } } } diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 index cae233a5eaa1..0376ea6d1cb0 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1 @@ -533,3 +533,107 @@ function Test-StorageBlobRestore } +<# +.SYNOPSIS +Test StorageAccount Object Replication +.DESCRIPTION +SmokeTest +#> +function Test-StorageBlobORS +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname1 = 'sto' + $rgname + 'src'; + $stoname2 = 'sto' + $rgname + 'dest'; + $stotype = 'Standard_LRS'; + $loc = Get-ProviderLocation ResourceManagement; + $kind = 'StorageV2' + + Write-Verbose "RGName: $rgname | Loc: $loc" + New-AzResourceGroup -Name $rgname -Location $loc; + + $loc = Get-ProviderLocation_Canary ResourceManagement; + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname1 -Location $loc -Type $stotype -Kind $kind + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname2 -Location $loc -Type $stotype -Kind $kind + + # Enable Blob Enable Changefeed and versioning + Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname1 -EnableChangeFeed $true -IsVersioningEnabled $true + Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname2 -EnableChangeFeed $true -IsVersioningEnabled $true + $property1 = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname1 + Assert-AreEqual $true $property1.ChangeFeed.Enabled + Assert-AreEqual $true $property1.IsVersioningEnabled + $property2 = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname2 + Assert-AreEqual $true $property2.ChangeFeed.Enabled + Assert-AreEqual $true $property2.IsVersioningEnabled + + # create containers + Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname1 | New-AzRmStorageContainer -name src + Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname2 | New-AzRmStorageContainer -name dest + Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname1 | New-AzRmStorageContainer -name src1 + Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname2 | New-AzRmStorageContainer -name dest1 + + # create rules + $minCreationTime = "2019-01-01T16:00:00Z" + $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 + $rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime $minCreationTime -PrefixMatch a,abc,dd #-Tag t1,t2,t3 + + # set policy to dest account + $destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId default -SourceAccount $stoname1 -Rule $rule1,$rule2 + $policyID = $destPolicy.PolicyId + Assert-AreEqual $stoname1 $destPolicy.SourceAccount + Assert-AreEqual $stoname2 $destPolicy.DestinationAccount + Assert-AreEqual 2 $destPolicy.Rules.Count + Assert-AreEqual src1 $destPolicy.Rules[0].SourceContainer + Assert-AreEqual dest1 $destPolicy.Rules[0].DestinationContainer + Assert-AreEqual $null $destPolicy.Rules[0].Filters + Assert-AreEqual src $destPolicy.Rules[1].SourceContainer + Assert-AreEqual dest $destPolicy.Rules[1].DestinationContainer + Assert-AreEqual 3 $destPolicy.Rules[1].Filters.PrefixMatch.Count + Assert-AreEqual $minCreationTime ($destPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z") + $destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId $destPolicy.PolicyId + Assert-AreEqual $policyID $destPolicy.PolicyId + Assert-AreEqual $stoname1 $destPolicy.SourceAccount + Assert-AreEqual $stoname2 $destPolicy.DestinationAccount + Assert-AreEqual 2 $destPolicy.Rules.Count + Assert-AreEqual src1 $destPolicy.Rules[0].SourceContainer + Assert-AreEqual dest1 $destPolicy.Rules[0].DestinationContainer + Assert-AreEqual $null $destPolicy.Rules[0].Filters + Assert-AreEqual src $destPolicy.Rules[1].SourceContainer + Assert-AreEqual dest $destPolicy.Rules[1].DestinationContainer + Assert-AreEqual 3 $destPolicy.Rules[1].Filters.PrefixMatch.Count + Assert-AreEqual $minCreationTime ($destPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z") + + #Set policy to source account + Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1 -InputObject $destPolicy + $srcPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1 + Assert-AreEqual $policyID $srcPolicy.PolicyId + Assert-AreEqual $stoname1 $srcPolicy.SourceAccount + Assert-AreEqual $stoname2 $srcPolicy.DestinationAccount + Assert-AreEqual 2 $srcPolicy.Rules.Count + Assert-AreEqual src1 $srcPolicy.Rules[0].SourceContainer + Assert-AreEqual dest1 $srcPolicy.Rules[0].DestinationContainer + Assert-AreEqual $null $srcPolicy.Rules[0].Filters + Assert-AreEqual src $srcPolicy.Rules[1].SourceContainer + Assert-AreEqual dest $srcPolicy.Rules[1].DestinationContainer + Assert-AreEqual 3 $srcPolicy.Rules[1].Filters.PrefixMatch.Count + Assert-AreEqual $minCreationTime ($srcPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z") + + #remove policies + Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId $destPolicy.PolicyId + Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1 -PolicyId $srcPolicy.PolicyId + + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname1; + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname2; + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} + + diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobORS.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobORS.json new file mode 100644 index 000000000000..032ca3aeddf9 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobORS.json @@ -0,0 +1,2391 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ee265b3a-fb1b-45bd-a3db-e191d9bff0dd" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "9a3d11a9-4cd8-4973-abb3-63b08a2254fd" + ], + "x-ms-correlation-request-id": [ + "9a3d11a9-4cd8-4973-abb3-63b08a2254fd" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162600Z:9a3d11a9-4cd8-4973-abb3-63b08a2254fd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:26:00 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "12336" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage\",\r\n \"namespace\": \"Microsoft.Storage\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"a6aa9161-5291-40bb-8c5c-923b567bee3b\",\r\n \"roleDefinitionId\": \"070ab87f-0efc-4423-b18b-756f3bdb0236\"\r\n },\r\n {\r\n \"applicationId\": \"e406a681-f3d4-42a8-90b6-c2b029497af1\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"storageAccounts\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/asyncoperations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listAccountSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listServiceSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/blobServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/tableServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/queueServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/fileServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\",\r\n \"2016-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deleteVirtualNetworkOrSubnets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usages\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg5674?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNTY3ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"West US\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "61813212-e2fd-4921-b8d4-cbbb979a848b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "29" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "84e1638d-1deb-4761-b23b-7613078dc525" + ], + "x-ms-correlation-request-id": [ + "84e1638d-1deb-4761-b23b-7613078dc525" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162605Z:84e1638d-1deb-4761-b23b-7613078dc525" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:26:04 GMT" + ], + "Content-Length": [ + "177" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674\",\r\n \"name\": \"pstestrg5674\",\r\n \"location\": \"westus\",\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=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg5674src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a9d28b47-99d6-45c3-8abf-1274298c14eb" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "84" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "45a1e0fc-79f5-43db-b61b-377a56ebfbc5" + ], + "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": [ + "c4af6b09-10c3-449c-8297-2c8596b3f95b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162615Z:c4af6b09-10c3-449c-8297-2c8596b3f95b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:26:15 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/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg5674dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d7fb8711-5bf7-40c1-8b21-c5698d3999a7" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "85" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1ba29118-7c53-40e1-8d82-c6c94c031efd" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "1834c349-7890-424c-a029-1a44bea4f1de" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162701Z:1834c349-7890-424c-a029-1a44bea4f1de" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:00 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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "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": [ + "ab57e90e-480c-44a4-a568-822dd7015cb4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.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/762d8b62-bf4a-481a-a629-abe46298dd18?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "762d8b62-bf4a-481a-a629-abe46298dd18" + ], + "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": [ + "0bf3f3a2-99ea-47fc-abe5-60bc1d1d5725" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162622Z:0bf3f3a2-99ea-47fc-abe5-60bc1d1d5725" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:26:21 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/762d8b62-bf4a-481a-a629-abe46298dd18?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzc2MmQ4YjYyLWJmNGEtNDgxYS1hNjI5LWFiZTQ2Mjk4ZGQxOD9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "a08d26b3-1921-4cc7-9ae1-7fa90195dc8a" + ], + "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": [ + "22ad4f25-bd48-487f-bf38-174b415b2e10" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162700Z:22ad4f25-bd48-487f-bf38-174b415b2e10" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:26:59 GMT" + ], + "Content-Length": [ + "1289" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src\",\r\n \"name\": \"stopstestrg5674src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:26:21.8776173Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:26:21.8776173Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:26:21.8150913Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674src.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674src.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674src.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674src.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674src.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674src.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "92e5acfc-042a-4973-b440-3bd6cae87fec" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "285dc774-12c8-42ea-97c9-85e74c2f2bd7" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "d9c83940-15ab-428c-a32b-1ca3b53588cc" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162701Z:d9c83940-15ab-428c-a32b-1ca3b53588cc" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:00 GMT" + ], + "Content-Length": [ + "1289" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src\",\r\n \"name\": \"stopstestrg5674src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:26:21.8776173Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:26:21.8776173Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:26:21.8150913Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674src.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674src.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674src.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674src.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674src.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674src.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d4647d79-2f2b-49c6-9398-472a2a66c881" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "58b2ee27-f492-4fac-9ce2-56def906848e" + ], + "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": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "681cbf84-4ef4-4332-b6fa-64f9691d98d0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162731Z:681cbf84-4ef4-4332-b6fa-64f9691d98d0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:31 GMT" + ], + "Content-Length": [ + "1289" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src\",\r\n \"name\": \"stopstestrg5674src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:26:21.8776173Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:26:21.8776173Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:26:21.8150913Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674src.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674src.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674src.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674src.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674src.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674src.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a7cc3284-b291-4c82-ab06-b55f1df7da26" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "ca297219-1229-47ae-a22d-43b08baf373d" + ], + "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": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "7a735da2-61fd-4883-8fc8-73b7a6fdf96b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162733Z:7a735da2-61fd-4883-8fc8-73b7a6fdf96b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:33 GMT" + ], + "Content-Length": [ + "1289" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src\",\r\n \"name\": \"stopstestrg5674src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:26:21.8776173Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:26:21.8776173Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:26:21.8150913Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674src.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674src.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674src.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674src.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674src.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674src.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Q/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "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": [ + "f76ff927-aefd-4e87-ab26-5b99f4e45f54" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.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/a6e2fb68-d219-432d-a391-8ac6f8a04aed?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "a6e2fb68-d219-432d-a391-8ac6f8a04aed" + ], + "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": [ + "db645522-3734-471c-b76a-824189cd041b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162707Z:db645522-3734-471c-b76a-824189cd041b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:06 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/a6e2fb68-d219-432d-a391-8ac6f8a04aed?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zL2E2ZTJmYjY4LWQyMTktNDMyZC1hMzkxLThhYzZmOGEwNGFlZD9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "99b2573a-58b2-454f-bbe5-930bf93d8409" + ], + "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": [ + "cc63ad8b-4548-410f-acf9-a0c0ca7e738a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162724Z:cc63ad8b-4548-410f-acf9-a0c0ca7e738a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:24 GMT" + ], + "Content-Length": [ + "1297" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest\",\r\n \"name\": \"stopstestrg5674dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:27:07.1003359Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:27:07.1003359Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:27:07.0378092Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674dest.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674dest.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674dest.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674dest.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674dest.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674dest.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Q/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a3d022fe-3691-409d-9d9c-9f852e1550eb" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7d695cdc-5c35-43b6-9a8c-4b0091095548" + ], + "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": [ + "f5c69f20-c751-4c36-8a8a-6b5779f8861b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162725Z:f5c69f20-c751-4c36-8a8a-6b5779f8861b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:25 GMT" + ], + "Content-Length": [ + "1297" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest\",\r\n \"name\": \"stopstestrg5674dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:27:07.1003359Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:27:07.1003359Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:27:07.0378092Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674dest.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674dest.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674dest.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674dest.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674dest.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674dest.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Q/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "32fcfe42-ba9d-42f1-8243-ad9d500b8ab2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "31b1b53b-5b55-4182-bd60-a9c14f595875" + ], + "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": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "7040df36-284a-4115-b75d-d03aed105fc7" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162732Z:7040df36-284a-4115-b75d-d03aed105fc7" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:32 GMT" + ], + "Content-Length": [ + "1297" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest\",\r\n \"name\": \"stopstestrg5674dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:27:07.1003359Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:27:07.1003359Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:27:07.0378092Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674dest.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674dest.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674dest.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674dest.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674dest.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674dest.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Q/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "16c6890b-9885-4d96-815f-bc21a5cba7fe" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "58e38acc-1e2e-4d61-936a-a08ab0f1cdd6" + ], + "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": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "b027aba8-08c6-47c3-8471-de96ecec3aaa" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162735Z:b027aba8-08c6-47c3-8471-de96ecec3aaa" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:34 GMT" + ], + "Content-Length": [ + "1297" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest\",\r\n \"name\": \"stopstestrg5674dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-04-16T16:27:07.1003359Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-04-16T16:27:07.1003359Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-04-16T16:27:07.0378092Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg5674dest.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg5674dest.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg5674dest.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg5674dest.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg5674dest.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg5674dest.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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "af2b6470-c83e-4e26-8f5d-87c87ecf08e5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "1836fc61-2537-4894-aa4c-767fb606d4f0" + ], + "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": [ + "128d296b-6639-4bc3-8be8-2ab606b2c66a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162725Z:128d296b-6639-4bc3-8be8-2ab606b2c66a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:25 GMT" + ], + "Content-Length": [ + "374" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/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 }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "169c1a97-e04c-487a-87cb-ba5f59c944d3" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8f53d22c-dd96-44cb-8939-803032e8ebbb" + ], + "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": [ + "a5d64664-67f6-4f0d-a43a-3e095fdb10f8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162730Z:a5d64664-67f6-4f0d-a43a-3e095fdb10f8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:30 GMT" + ], + "Content-Length": [ + "431" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9ibG9iU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\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 \"changeFeed\": {\r\n \"enabled\": true\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f5abe4b0-4181-4aa5-9fe1-90d64f653311" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "223" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "9bd32473-7b7b-405a-a8ec-e8664aefb612" + ], + "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": [ + "508614a0-a8f6-459b-ad3b-15ff5ee47a0c" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162728Z:508614a0-a8f6-459b-ad3b-15ff5ee47a0c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:28 GMT" + ], + "Content-Length": [ + "383" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3QvYmxvYlNlcnZpY2VzL2RlZmF1bHQ/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b602f833-ff80-4e11-bd96-00d2e3726fde" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "20b2d285-58c7-4645-a887-134ea2bffb3d" + ], + "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": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "05553532-d162-4a65-b7dd-c1b7a7dde27e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162729Z:05553532-d162-4a65-b7dd-c1b7a7dde27e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:28 GMT" + ], + "Content-Length": [ + "375" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/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 }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3QvYmxvYlNlcnZpY2VzL2RlZmF1bHQ/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "aa55aae6-ca90-4b08-9add-012004e2a9d0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c90334e8-6c3f-4040-9ca9-e28e1a3f8be4" + ], + "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": [ + "5bc8a131-c963-4597-8364-25be3135d804" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162731Z:5bc8a131-c963-4597-8364-25be3135d804" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:31 GMT" + ], + "Content-Length": [ + "432" + ], + "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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3QvYmxvYlNlcnZpY2VzL2RlZmF1bHQ/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\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 \"changeFeed\": {\r\n \"enabled\": true\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a6a8db15-dfc1-49f5-b644-7e06ef0b67d4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "223" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "2a522296-f779-4d9e-a8cc-9bf56442d424" + ], + "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": [ + "ca17cf22-f04c-4345-b917-9e07c6efdd55" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162730Z:ca17cf22-f04c-4345-b917-9e07c6efdd55" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:30 GMT" + ], + "Content-Length": [ + "384" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices\",\r\n \"properties\": {\r\n \"changeFeed\": {\r\n \"enabled\": true\r\n },\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/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default/containers/src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL3NyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "6782dba3-63de-4948-bd6d-7caa4aaaef48" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7E223105DDFF8\"" + ], + "x-ms-request-id": [ + "4599fe92-bdf2-4e1c-9fdf-b43d82463f32" + ], + "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": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "cd0ba3d4-11c9-4fb1-a6ff-dc702d3cd76d" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162732Z:cd0ba3d4-11c9-4fb1-a6ff-dc702d3cd76d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:32 GMT" + ], + "Content-Length": [ + "267" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default/containers/src\",\r\n \"name\": \"src\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default/containers/dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3QvYmxvYlNlcnZpY2VzL2RlZmF1bHQvY29udGFpbmVycy9kZXN0P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7e33f0cf-d8cd-4398-8c53-5ca4fd534323" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7E223110A60C7\"" + ], + "x-ms-request-id": [ + "a41ca2df-3074-4b06-851c-19e63fc6eabb" + ], + "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": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "cb4b9719-e303-4131-b5c7-5e3e426f2aec" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162733Z:cb4b9719-e303-4131-b5c7-5e3e426f2aec" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:33 GMT" + ], + "Content-Length": [ + "270" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default/containers/dest\",\r\n \"name\": \"dest\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default/containers/src1?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL3NyYzE/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e311d129-6d58-4bcc-8412-ff74e3c832d6" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7E22311BEEA7F\"" + ], + "x-ms-request-id": [ + "37296174-053e-4812-92a5-0145f39bf9d6" + ], + "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": [ + "1194" + ], + "x-ms-correlation-request-id": [ + "9e53d563-ee0e-4b38-be60-1e72a0550fd1" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162734Z:9e53d563-ee0e-4b38-be60-1e72a0550fd1" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:34 GMT" + ], + "Content-Length": [ + "269" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/blobServices/default/containers/src1\",\r\n \"name\": \"src1\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default/containers/dest1?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3QvYmxvYlNlcnZpY2VzL2RlZmF1bHQvY29udGFpbmVycy9kZXN0MT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8b7138b6-c8b4-469a-9b2f-d54cdbbb6865" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7E223127DAB7B\"" + ], + "x-ms-request-id": [ + "0933beca-e95e-4a5a-932e-5c5018aa3c44" + ], + "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": [ + "1193" + ], + "x-ms-correlation-request-id": [ + "219fbcb2-b0b7-4dab-8b6a-63e248b70d67" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162735Z:219fbcb2-b0b7-4dab-8b6a-63e248b70d67" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:35 GMT" + ], + "Content-Length": [ + "272" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/blobServices/default/containers/dest1\",\r\n \"name\": \"dest1\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/objectReplicationPolicies/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Qvb2JqZWN0UmVwbGljYXRpb25Qb2xpY2llcy9kZWZhdWx0P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c0278272-f397-4270-a116-2f068cac8a19" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "519" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "741e9854-626c-4a37-8f36-5240b1d70941" + ], + "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": [ + "1192" + ], + "x-ms-correlation-request-id": [ + "afe98c9d-22cf-43e3-8b4f-71897d835bf5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162737Z:afe98c9d-22cf-43e3-8b4f-71897d835bf5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:37 GMT" + ], + "Content-Length": [ + "779" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"name\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/objectReplicationPolicies\",\r\n \"properties\": {\r\n \"policyId\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"ruleId\": \"beb872c8-c001-469c-a70b-208d121eb829\",\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"ruleId\": \"4736b8a5-1cf4-4e03-85ad-b8589fc2caaf\",\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Qvb2JqZWN0UmVwbGljYXRpb25Qb2xpY2llcy9kMTdlZmQwZC0xODY1LTRlYzgtYWI1Mi0zZjM5ZjVlNjliZDA/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d6382073-d0f7-45b2-9363-5b5d9f56444c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "d75f4433-9ecc-4f3b-ba10-a42b1ed3c001" + ], + "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": [ + "11986" + ], + "x-ms-correlation-request-id": [ + "aea95e55-b671-4f41-b32c-cfd029245311" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162737Z:aea95e55-b671-4f41-b32c-cfd029245311" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:37 GMT" + ], + "Content-Length": [ + "779" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"name\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/objectReplicationPolicies\",\r\n \"properties\": {\r\n \"policyId\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"ruleId\": \"beb872c8-c001-469c-a70b-208d121eb829\",\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"ruleId\": \"4736b8a5-1cf4-4e03-85ad-b8589fc2caaf\",\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9vYmplY3RSZXBsaWNhdGlvblBvbGljaWVzL2QxN2VmZDBkLTE4NjUtNGVjOC1hYjUyLTNmMzlmNWU2OWJkMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"ruleId\": \"beb872c8-c001-469c-a70b-208d121eb829\",\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"ruleId\": \"4736b8a5-1cf4-4e03-85ad-b8589fc2caaf\",\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0a4dd69a-def8-47d9-a89f-ebb3d186c265" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "637" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "f136d202-5712-4a84-bc75-25aee84f618d" + ], + "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": [ + "1191" + ], + "x-ms-correlation-request-id": [ + "4697bbb2-7bbf-4bf7-8433-fc867a1a6f39" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162739Z:4697bbb2-7bbf-4bf7-8433-fc867a1a6f39" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:38 GMT" + ], + "Content-Length": [ + "823" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"name\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/objectReplicationPolicies\",\r\n \"properties\": {\r\n \"policyId\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"enabledTime\": \"2020-04-16T16:27:39.0443111Z\",\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"ruleId\": \"beb872c8-c001-469c-a70b-208d121eb829\",\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"ruleId\": \"4736b8a5-1cf4-4e03-85ad-b8589fc2caaf\",\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/objectReplicationPolicies?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9vYmplY3RSZXBsaWNhdGlvblBvbGljaWVzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fe104be5-7410-4017-adfb-7871c4c5afda" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "0c0286cd-f27f-4070-bafc-6fe087e842f2" + ], + "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": [ + "11985" + ], + "x-ms-correlation-request-id": [ + "8eb58644-ea9b-46d4-9223-16ca6631d438" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162739Z:8eb58644-ea9b-46d4-9223-16ca6631d438" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:39 GMT" + ], + "Content-Length": [ + "462" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"policyId\": \"d17efd0d-1865-4ec8-ab52-3f39f5e69bd0\",\r\n \"sourceAccount\": \"stopstestrg5674src\",\r\n \"destinationAccount\": \"stopstestrg5674dest\",\r\n \"rules\": [\r\n {\r\n \"ruleId\": \"beb872c8-c001-469c-a70b-208d121eb829\",\r\n \"sourceContainer\": \"src1\",\r\n \"destinationContainer\": \"dest1\"\r\n },\r\n {\r\n \"ruleId\": \"4736b8a5-1cf4-4e03-85ad-b8589fc2caaf\",\r\n \"sourceContainer\": \"src\",\r\n \"destinationContainer\": \"dest\",\r\n \"filters\": {\r\n \"prefixMatch\": [\r\n \"a\",\r\n \"abc\",\r\n \"dd\"\r\n ],\r\n \"minCreationTime\": \"2019-01-01T16:00:00Z\"\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Qvb2JqZWN0UmVwbGljYXRpb25Qb2xpY2llcy9kMTdlZmQwZC0xODY1LTRlYzgtYWI1Mi0zZjM5ZjVlNjliZDA/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f81eb768-b310-4f32-b1de-cc7daa609b3f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "10c9f8ff-5720-4abf-8246-6020ba1c8a96" + ], + "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": [ + "054b8710-722b-435e-a55a-ee16f3c780d6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162740Z:054b8710-722b-435e-a55a-ee16f3c780d6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:40 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src/objectReplicationPolicies/d17efd0d-1865-4ec8-ab52-3f39f5e69bd0?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYy9vYmplY3RSZXBsaWNhdGlvblBvbGljaWVzL2QxN2VmZDBkLTE4NjUtNGVjOC1hYjUyLTNmMzlmNWU2OWJkMD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "935d10ac-5850-4cc4-af81-43ecf5e91add" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "b118bbba-c0bd-4fac-87c3-c53b4f18bc7a" + ], + "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": [ + "b2276130-666e-4070-bb7b-f39b689fbe97" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162740Z:b2276130-666e-4070-bb7b-f39b689fbe97" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:40 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674src?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NHNyYz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "223483fd-35cc-4701-bef8-7bff30541e21" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7bc3aeb4-6445-4523-aa4a-e3cc97fac32c" + ], + "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": [ + "12edba0d-5fea-492a-b7c7-c0e2b97c9602" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162744Z:12edba0d-5fea-492a-b7c7-c0e2b97c9602" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:44 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg5674/providers/Microsoft.Storage/storageAccounts/stopstestrg5674dest?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNTY3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNTY3NGRlc3Q/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1f4ea72a-b784-4c9d-a3de-25131658adcb" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/15.1.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c0da44f6-9888-4d00-b68d-881f48cfb6e9" + ], + "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": [ + "14996" + ], + "x-ms-correlation-request-id": [ + "96afc49e-bb2d-439e-bf95-b3b1e1ce7eaf" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162747Z:96afc49e-bb2d-439e-bf95-b3b1e1ce7eaf" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:46 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg5674?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNTY3ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c5f42160-ecc5-4fd8-a979-1aeec1ad01d9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-request-id": [ + "0c6abbd8-5035-4924-902e-5d849739cea8" + ], + "x-ms-correlation-request-id": [ + "0c6abbd8-5035-4924-902e-5d849739cea8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162752Z:0c6abbd8-5035-4924-902e-5d849739cea8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:27:51 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUyTnpRdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "89458cbd-5b2f-4952-8690-88e4f39bde2f" + ], + "x-ms-correlation-request-id": [ + "89458cbd-5b2f-4952-8690-88e4f39bde2f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162808Z:89458cbd-5b2f-4952-8690-88e4f39bde2f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:28:07 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUyTnpRdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "a1fbc5c6-d821-408b-b894-3d2ae0b172f5" + ], + "x-ms-correlation-request-id": [ + "a1fbc5c6-d821-408b-b894-3d2ae0b172f5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162823Z:a1fbc5c6-d821-408b-b894-3d2ae0b172f5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:28:22 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUyTnpRdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "2182c825-dbb8-43fa-bc43-cb9f3837e441" + ], + "x-ms-correlation-request-id": [ + "2182c825-dbb8-43fa-bc43-cb9f3837e441" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162838Z:2182c825-dbb8-43fa-bc43-cb9f3837e441" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:28:38 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzU2NzQtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelUyTnpRdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.11" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "9b66c544-460c-4f61-9a7a-f5d028c51b02" + ], + "x-ms-correlation-request-id": [ + "9b66c544-460c-4f61-9a7a-f5d028c51b02" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200416T162839Z:9b66c544-460c-4f61-9a7a-f5d028c51b02" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 16 Apr 2020 16:28:39 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-StorageBlobORS": [ + "pstestrg5674" + ] + }, + "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 e0e1ecb26b3e..b597c01d2554 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -171,7 +171,9 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'Disable-AzStorageBlobRestorePolicy', 'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange', 'New-AzStorageEncryptionScope', 'Update-AzStorageEncryptionScope', - 'Get-AzStorageEncryptionScope' + 'Get-AzStorageEncryptionScope', + 'New-AzStorageObjectReplicationPolicyRule', 'Set-AzStorageObjectReplicationPolicy', + 'Get-AzStorageObjectReplicationPolicy', 'Remove-AzStorageObjectReplicationPolicy' # Variables to export from this module # VariablesToExport = @() diff --git a/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs b/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs index bd41ec6045dc..cc950092e023 100644 --- a/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs +++ b/src/Storage/Storage.Management/Blob/UpdateAzureStorageBlobServiceProperties.cs @@ -91,7 +91,7 @@ public bool EnableChangeFeed { get { - return enableChangeFeed is null? false : enableChangeFeed.Value; + return enableChangeFeed is null ? false : enableChangeFeed.Value; } set { @@ -100,6 +100,23 @@ public bool EnableChangeFeed } private bool? enableChangeFeed = null; + [Parameter( + Mandatory = false, + HelpMessage = "Gets or sets versioning is enabled if set to true.")] + [ValidateNotNullOrEmpty] + public bool IsVersioningEnabled + { + get + { + return isVersioningEnabled is null ? false : isVersioningEnabled.Value; + } + set + { + isVersioningEnabled = value; + } + } + private bool? isVersioningEnabled = null; + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -133,6 +150,10 @@ public override void ExecuteCmdlet() serviceProperties.ChangeFeed = new ChangeFeed(); serviceProperties.ChangeFeed.Enabled = enableChangeFeed; } + if (isVersioningEnabled != null) + { + serviceProperties.IsVersioningEnabled = isVersioningEnabled; + } serviceProperties = this.StorageClient.BlobServices.SetServiceProperties(this.ResourceGroupName, this.StorageAccountName, serviceProperties); diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 05f6864a49a9..29877b7a57b9 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,13 @@ - Additional information about change #1 --> ## Upcoming Release +* Support enable/disable versioning on Blob Service of a Storage account + - `Update-AzStorageBlobServiceProperty` +* Support Set/Get/Remove Object Replication Policy on Storage accounts + - `New-AzStorageObjectReplicationPolicyRule` + - `Set-AzStorageObjectReplicationPolicy` + - `Get-AzStorageObjectReplicationPolicy` + - `Remove-AzStorageObjectReplicationPolicy` ## Version 1.14.1 * Supported create container and upload blob with Encryption Scope setting @@ -31,6 +38,9 @@ - `Get-AzStorageAccountNetworkRuleSet` * Fixed #11624: Skip duplicated rules when add NetworkRules, to avoid server failure - `Add-AzStorageAccountNetworkRule` +* Supported create container and upload blob with Encryption Scope setting + - `New-AzStorageContainer` + - `Set-AzStorageBlobContent` ## Version 1.14.0 * Added breaking change notice for Azure File cmdlets output change in a future release diff --git a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs index e0b40b0d7dfe..6f6ab5ff86cd 100644 --- a/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs +++ b/src/Storage/Storage.Management/Models/PSBlobServiceProperties.cs @@ -44,6 +44,7 @@ public class PSBlobServiceProperties [Ps1Xml(Label = "RestorePolicy.LastEnabledTime", Target = ViewControl.Table, ScriptBlock = "$_.RestorePolicy.LastEnabledTime", Position = 7)] public PSRestorePolicy RestorePolicy { get; set; } public PSCorsRules Cors { get; set; } + public bool? IsVersioningEnabled { get; set; } public PSBlobServiceProperties() { } @@ -60,6 +61,7 @@ public PSBlobServiceProperties(BlobServiceProperties policy) this.DeleteRetentionPolicy = policy.DeleteRetentionPolicy is null ? null : new PSDeleteRetentionPolicy(policy.DeleteRetentionPolicy); this.RestorePolicy = policy.RestorePolicy is null ? null : new PSRestorePolicy(policy.RestorePolicy); this.ChangeFeed = policy.ChangeFeed is null ? null : new PSChangeFeed(policy.ChangeFeed); + this.IsVersioningEnabled = policy.IsVersioningEnabled; } public BlobServiceProperties ParseBlobServiceProperties() { @@ -69,7 +71,8 @@ public BlobServiceProperties ParseBlobServiceProperties() DefaultServiceVersion = this.DefaultServiceVersion, DeleteRetentionPolicy = this.DeleteRetentionPolicy is null ? null : this.DeleteRetentionPolicy.ParseDeleteRetentionPolicy(), RestorePolicy = this.RestorePolicy is null ? null : this.RestorePolicy.ParseRestorePolicy(), - ChangeFeed = this.ChangeFeed is null ? null : this.ChangeFeed.ParseChangeFeed() + ChangeFeed = this.ChangeFeed is null ? null : this.ChangeFeed.ParseChangeFeed(), + IsVersioningEnabled = this.IsVersioningEnabled }; } diff --git a/src/Storage/Storage.Management/Models/PSObjectReplicationPolicy.cs b/src/Storage/Storage.Management/Models/PSObjectReplicationPolicy.cs new file mode 100644 index 000000000000..36596fb5aa35 --- /dev/null +++ b/src/Storage/Storage.Management/Models/PSObjectReplicationPolicy.cs @@ -0,0 +1,195 @@ +// ---------------------------------------------------------------------------------- +// +// 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 ObjectReplicationPolicy + /// + public class PSObjectReplicationPolicy + { + [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.Table, Position = 0)] + public string ResourceGroupName { get; } + [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.Table, Position = 1)] + public string StorageAccountName { get; } + public string ResourceId { get; } + public string Name { get; } + public string Type { get; } + + [Ps1Xml(Label = "PolicyId", Target = ViewControl.Table, Position = 2)] + public string PolicyId { get; set; } + [Ps1Xml(Label = "EnabledTime", Target = ViewControl.Table, Position = 3)] + public DateTime? EnabledTime { get; } + [Ps1Xml(Label = "SourceAccount", Target = ViewControl.Table, Position = 4)] + public string SourceAccount { get; set; } + [Ps1Xml(Label = "DestinationAccount", Target = ViewControl.Table, Position = 5)] + public string DestinationAccount { get; set; } + [Ps1Xml(Label = "Rules", Target = ViewControl.Table, ScriptBlock = "if (($_.Rules -ne $null) -and ($_.Rules.Count -ne 0)) {'[' + $_.Rules[0].RuleId + ',...]'} else {$null}", Position = 6)] + public PSObjectReplicationPolicyRule[] Rules { get; set; } + + public PSObjectReplicationPolicy() + { } + + public PSObjectReplicationPolicy(ObjectReplicationPolicy policy, string ResourceGroupName, string StorageAccountName) + { + this.ResourceGroupName = ResourceGroupName; + this.StorageAccountName = StorageAccountName; + this.ResourceId = policy.Id; + this.Name = policy.Name; + this.Type = policy.Type; + this.PolicyId = policy.PolicyId; + this.EnabledTime = policy.EnabledTime; + this.SourceAccount = policy.SourceAccount; + this.DestinationAccount = policy.DestinationAccount; + this.Rules = PSObjectReplicationPolicyRule.GetPSObjectReplicationPolicyRules(policy.Rules); + } + + public ObjectReplicationPolicy ParseObjectReplicationPolicy() + { + ObjectReplicationPolicy policy = new ObjectReplicationPolicy() + { + SourceAccount = this.SourceAccount, + DestinationAccount = this.DestinationAccount, + Rules = PSObjectReplicationPolicyRule.ParseObjectReplicationPolicyRules(this.Rules) + }; + return policy; + } + + public static PSObjectReplicationPolicy[] GetPSObjectReplicationPolicies(IEnumerable policies, string ResourceGroupName, string StorageAccountName) + { + if (policies == null) + { + return null; + } + List pspolicies = new List(); + foreach (ObjectReplicationPolicy policy in policies) + { + pspolicies.Add(new PSObjectReplicationPolicy(policy, ResourceGroupName, StorageAccountName)); + } + return pspolicies.ToArray(); + } + } + + /// + /// Wrapper of SDK type ObjectReplicationPolicyRule + /// + public class PSObjectReplicationPolicyRule + { + [Ps1Xml(Label = "RuleId", Target = ViewControl.Table, Position = 0)] + public string RuleId { get; set; } + [Ps1Xml(Label = "SourceContainer", Target = ViewControl.Table, Position = 1)] + public string SourceContainer { get; set; } + [Ps1Xml(Label = "DestinationContainer", Target = ViewControl.Table, Position = 2)] + public string DestinationContainer { get; set; } + [Ps1Xml(Label = "Filter.PrefixMatch", Target = ViewControl.Table, ScriptBlock = "if (($_.Filter -ne $null) -and ($_.Filter.PrefixMatch -ne $null) -and ($_.Filter.PrefixMatch.Count -ne 0)) {'[' + ($_.Filter.PrefixMatch -join ', ') + ']'} else {$null}", Position = 3)] + public PSObjectReplicationPolicyFilter Filters { get; set; } + + public PSObjectReplicationPolicyRule() + { + } + + public PSObjectReplicationPolicyRule(ObjectReplicationPolicyRule rule) + { + this.RuleId = rule.RuleId; + this.SourceContainer = rule.SourceContainer; + this.DestinationContainer = rule.DestinationContainer; + this.Filters = rule.Filters is null ? null : new PSObjectReplicationPolicyFilter(rule.Filters); + } + + public ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule() + { + ObjectReplicationPolicyRule rule = new ObjectReplicationPolicyRule(); + rule.RuleId = this.RuleId; + rule.SourceContainer = this.SourceContainer; + rule.DestinationContainer = this.DestinationContainer; + rule.Filters = this.Filters is null ? null : this.Filters.ParseObjectReplicationPolicyFilter(); + return rule; + } + + public static PSObjectReplicationPolicyRule[] GetPSObjectReplicationPolicyRules(IList rules) + { + if (rules == null) + { + return null; + } + List psrules = new List(); + foreach (ObjectReplicationPolicyRule rule in rules) + { + psrules.Add(new PSObjectReplicationPolicyRule(rule)); + } + return psrules.ToArray(); + } + + public static List ParseObjectReplicationPolicyRules(PSObjectReplicationPolicyRule[] psrules) + { + if (psrules == null) + { + return null; + } + List rules = new List(); + foreach (PSObjectReplicationPolicyRule psrule in psrules) + { + rules.Add(psrule.ParseObjectReplicationPolicyRule()); + } + return rules; + } + } + + /// + /// Wrapper of SDK type ObjectReplicationPolicyFilter + /// + public class PSObjectReplicationPolicyFilter + { + public string[] PrefixMatch { get; set; } + public DateTime? MinCreationTime; + + public PSObjectReplicationPolicyFilter() + { + } + + public PSObjectReplicationPolicyFilter(ObjectReplicationPolicyFilter filter) + { + if (filter != null) + { + this.PrefixMatch = filter.PrefixMatch is null ? null : new List(filter.PrefixMatch).ToArray(); + if (string.IsNullOrEmpty(filter.MinCreationTime)) + { + this.MinCreationTime = null; + } + else + { + if (filter.MinCreationTime.ToUpper()[filter.MinCreationTime.Length - 1] != 'Z') + { + filter.MinCreationTime = filter.MinCreationTime + "Z"; + } + this.MinCreationTime = Convert.ToDateTime(filter.MinCreationTime); + } + } + } + public ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter() + { + return new ObjectReplicationPolicyFilter() + { + PrefixMatch = this.PrefixMatch is null ? null : new List(this.PrefixMatch), + //must be in format: 2020-02-19T16:05:00Z + MinCreationTime = this.MinCreationTime is null ? null : this.MinCreationTime.Value.ToUniversalTime().ToString("s") + "Z" + }; + } + } +} diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index 84ce64ae569c..a8e62cf3c4e3 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -278,52 +278,98 @@ - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties + + + + + + + StorageAccountName + + + + ResourceGroupName + + + + DefaultServiceVersion + + + + + $_.DeleteRetentionPolicy.Enabled + + + + $_.DeleteRetentionPolicy.Days + + + + $_.RestorePolicy.Enabled + + + + $_.RestorePolicy.Days + + + + $_.RestorePolicy.LastEnabledTime + + + + $_.ChangeFeed.Enabled + + + IsVersioningEnabled + + + + + + + + + Microsoft.Azure.Commands.Management.Storage.Models.PSShare + + Microsoft.Azure.Commands.Management.Storage.Models.PSShare + Left - - - - Left - - - - Left - - - - Left - + Left - + Left - + Left - + Left - + Left - + + + Left + Name + Left StorageAccountName @@ -334,23 +380,67 @@ Left - DefaultServiceVersion + Etag Left - $_.DeleteRetentionPolicy.Enabled + QuotaGiB Left - $_.DeleteRetentionPolicy.Days + $_.LastModifiedTime.ToString("u") + + + + + + + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + + + + + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Status Left - $_.RestorePolicy.Enabled + RestoreId Left - $_.RestorePolicy.Days + FailureReason Left @@ -358,7 +448,11 @@ Left - $_.ChangeFeed.Enabled + $_.Parameters.TimeToRestore.ToString("o") + + + Left + if ($_.Parameters.BlobRanges[0] -ne $null) {if ($_.Parameters.BlobRanges[1] -ne $null) {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ',...]'} else {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ']'}} else {$null} @@ -366,15 +460,15 @@ - Microsoft.Azure.Commands.Management.Storage.Models.PSShare + Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - Microsoft.Azure.Commands.Management.Storage.Models.PSShare + Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy Left - + Left @@ -382,19 +476,23 @@ Left - + Left - + Left - + Left - + + + + Left + @@ -402,7 +500,7 @@ Left - Name + ResourceGroupName Left @@ -410,19 +508,23 @@ Left - ResourceGroupName + PolicyId Left - Etag + EnabledTime Left - QuotaGiB + SourceAccount Left - $_.LastModifiedTime.ToString("u") + DestinationAccount + + + Left + if (($_.Rules -ne $null) -and ($_.Rules.Count -ne 0)) { if ($_.Rules.Count -eq 1) {'[' + $_.Rules[0].RuleId + ']'} else {'[' + $_.Rules[0].RuleId + ',...]'}} else {$null} @@ -430,31 +532,31 @@ - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus + Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule Left - + Left - + Left - + Left - + Left - + @@ -462,23 +564,23 @@ Left - Status + RuleId Left - RestoreId + SourceContainer Left - FailureReason + DestinationContainer Left - $_.Parameters.TimeToRestore.ToString("o") + '{' + ($_.Filters.PrefixMatch -join ', ') + '}' Left - if ($_.Parameters.BlobRanges[0] -ne $null) {if ($_.Parameters.BlobRanges[1] -ne $null) {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ',...]'} else {'[' + $_.Parameters.BlobRanges[0].StartRange + ' -> ' + $_.Parameters.BlobRanges[0].EndRange + ']'}} else {$null} + $_.Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z" diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzStorageObjectReplicationPolicy.cs b/src/Storage/Storage.Management/StorageAccount/GetAzStorageObjectReplicationPolicy.cs new file mode 100644 index 000000000000..6d5471450730 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/GetAzStorageObjectReplicationPolicy.cs @@ -0,0 +1,121 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Collections.Generic; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageObjectReplicationPolicy", DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSObjectReplicationPolicy))] + public class GetAzureStorageAccountObjectReplicationPolicyCommand : 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 ResourceIdParameterSet = "ResourceId"; + + [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 = "Object Replication Policy Id.", + // ParameterSetName = ResourceIdParameterSet)] + //[ValidateNotNullOrEmpty] + //public string ResourceId { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Object Replication Policy Id.")] + [ValidateNotNullOrEmpty] + public string PolicyId { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + //case ResourceIdParameterSet: + // ResourceIdentifier accountResource = new ResourceIdentifier(ResourceId); + // this.ResourceGroupName = accountResource.ResourceGroupName; + // this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + // break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + if (!string.IsNullOrEmpty(PolicyId)) + { + ObjectReplicationPolicy policy = this.StorageClient.ObjectReplicationPolicies.Get( + this.ResourceGroupName, + this.StorageAccountName, + PolicyId); + + WriteObject(new PSObjectReplicationPolicy(policy, this.ResourceGroupName, this.StorageAccountName)); + } + else + { + IEnumerable policies = this.StorageClient.ObjectReplicationPolicies.List( + this.ResourceGroupName, + this.StorageAccountName); + WriteObject(PSObjectReplicationPolicy.GetPSObjectReplicationPolicies(policies, this.ResourceGroupName, this.StorageAccountName), true); + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzStorageObjectReplicationPolicyRule.cs b/src/Storage/Storage.Management/StorageAccount/NewAzStorageObjectReplicationPolicyRule.cs new file mode 100644 index 000000000000..a15caa8a8cf1 --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/NewAzStorageObjectReplicationPolicyRule.cs @@ -0,0 +1,106 @@ +// ---------------------------------------------------------------------------------- +// +// 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; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageObjectReplicationPolicyRule"), OutputType(typeof(PSObjectReplicationPolicyRule))] + public class NewAzureStorageAccountObjectReplicationPolicyRuleCommand : StorageAccountBaseCmdlet + { + [Parameter( + Mandatory = true, + HelpMessage = "The Source Container name to replicate from.")] + [ValidateNotNullOrEmpty] + public string SourceContainer { get; set; } + + [Parameter( + Mandatory = true, + HelpMessage = "The Destination Container name to replicate to.")] + [ValidateNotNullOrEmpty] + public string DestinationContainer { get; set; } + + [Parameter(Mandatory = false, + HelpMessage = "Filters the results to replicate only blobs whose names begin with the specified prefix.")] + [ValidateNotNullOrEmpty] + public string[] PrefixMatch { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Blobs created after the time will be replicated to the destination..")] + [ValidateNotNull] + public DateTime MinCreationTime + { + get + { + return minCreationTime is null ? DateTime.MinValue : minCreationTime.Value; + } + set + { + minCreationTime = value; + } + } + private DateTime? minCreationTime; + + [Parameter(Mandatory = false, + HelpMessage = "Object Replication Rule Id.")] + //[ValidatePattern("(\\{|\\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\\-?){4}[A-Za-z0-9]{12}(\\}|\\()?|default")] + public string RuleId { get; set; } + //{ + // get + // { + // return ruleId; + // } + // set + // { + // ruleId = value; + // } + //} + //private string ruleId = "default"; + + //[Parameter(Mandatory = false, + // HelpMessage = "Filters the results to replicate blobs with the tag.")] + //[ValidateNotNullOrEmpty] + //public string[] Tag { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + string[] blobType = new string[] { AzureBlobType.BlockBlob }; + PSObjectReplicationPolicyRule rule = new PSObjectReplicationPolicyRule() + { + RuleId = this.RuleId, + SourceContainer = this.SourceContainer, + DestinationContainer = this.DestinationContainer + }; + + //if (this.PrefixMatch != null || this.Tag != null) + if (this.PrefixMatch != null || minCreationTime != null) + { + rule.Filters = new PSObjectReplicationPolicyFilter() + { + PrefixMatch = this.PrefixMatch, + MinCreationTime = this.minCreationTime, + //Tag = this.Tag + }; + } + + WriteObject(rule); + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/RemoveAzStorageObjectReplicationPolicy.cs b/src/Storage/Storage.Management/StorageAccount/RemoveAzStorageObjectReplicationPolicy.cs new file mode 100644 index 000000000000..8d7f06d42a5e --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/RemoveAzStorageObjectReplicationPolicy.cs @@ -0,0 +1,143 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Collections.Generic; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Remove", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageObjectReplicationPolicy", SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(bool))] + public class RemoveAzureStorageAccountObjectReplicationPolicyCommand : 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 ResourceIdParameterSet = "ResourceId"; + + [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 = "Object Replication Policy Id.", + // ParameterSetName = ResourceIdParameterSet)] + //[ValidateNotNullOrEmpty] + //public string ResourceId { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy Id.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy Id.", + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public string PolicyId { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Object Replication Policy object to Delete.", + ValueFromPipeline = true, + ParameterSetName = PolicyObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSObjectReplicationPolicy InputObject { get; set; } + + [Parameter(Mandatory = false)] + public SwitchParameter PassThru { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.StorageAccountName, "Remove Storage Account Object Replication Policy")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PolicyObjectParameterSet: + this.ResourceGroupName = InputObject.ResourceGroupName; + this.StorageAccountName = InputObject.StorageAccountName; + this.PolicyId = InputObject.PolicyId; + break; + //case ResourceIdParameterSet: + // ResourceIdentifier accountResource = new ResourceIdentifier(ResourceId); + // this.ResourceGroupName = accountResource.ResourceGroupName; + // this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + // break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + this.StorageClient.ObjectReplicationPolicies.Delete( + this.ResourceGroupName, + this.StorageAccountName, + PolicyId); + + if (PassThru.IsPresent) + { + WriteObject(true); + } + } + } + } +} diff --git a/src/Storage/Storage.Management/StorageAccount/SetAzStorageObjectReplicationPolicy.cs b/src/Storage/Storage.Management/StorageAccount/SetAzStorageObjectReplicationPolicy.cs new file mode 100644 index 000000000000..b62adce3f43f --- /dev/null +++ b/src/Storage/Storage.Management/StorageAccount/SetAzStorageObjectReplicationPolicy.cs @@ -0,0 +1,199 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Collections.Generic; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Set", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "StorageObjectReplicationPolicy", SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSObjectReplicationPolicy))] + public class RSetAzureStorageAccountObjectReplicationPolicyCommand : 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 ResourceIdParameterSet = "ResourceId"; + + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = PolicyObjectParameterSet)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = PolicyObjectParameterSet)] + [ResourceNameCompleter("Microsoft.Storage/storageAccounts", nameof(ResourceGroupName))] + [Alias(AccountNameAlias)] + [ValidateNotNullOrEmpty] + public string StorageAccountName { get; set; } + + //[Parameter( + // Position = 0, + // Mandatory = true, + // ValueFromPipelineByPropertyName = true, + // HelpMessage = "Object Replication Policy Id.", + // ParameterSetName = ResourceIdParameterSet)] + //[ValidateNotNullOrEmpty] + //public string ResourceId { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Object Replication Policy Object to Set to the specified Account.", + ValueFromPipeline = true, + ParameterSetName = PolicyObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSObjectReplicationPolicy InputObject{ get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Mandatory = false, + HelpMessage = "Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy.", + ParameterSetName = AccountObjectParameterSet)] + [ValidatePattern("(\\{|\\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\\-?){4}[A-Za-z0-9]{12}(\\}|\\()?|default")] + public string PolicyId + { + get + { + return policyId; + } + set + { + policyId = value; + } + } + private string policyId = "default"; + + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy SourceAccount.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy SourceAccount.", + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public string SourceAccount { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Object Replication Policy DestinationAccount. Default value will be the input StorageAccountName.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Mandatory = false, + HelpMessage = "Object Replication Policy DestinationAccount. Default value will be the account name of the input account object.", + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public string DestinationAccount { get; set; } + + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy Rules.", + ParameterSetName = AccountNameParameterSet)] + [Parameter( + Mandatory = true, + HelpMessage = "Object Replication Policy Rules.", + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSObjectReplicationPolicyRule[] Rule { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + if (ShouldProcess(this.StorageAccountName, "Set Storage Account Object Replication Policy")) + { + ObjectReplicationPolicy policyToSet = null; + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PolicyObjectParameterSet: + this.PolicyId = InputObject.PolicyId; + policyToSet = InputObject.ParseObjectReplicationPolicy(); + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + + // Build the policy object to set from the input policy properties + if (ParameterSetName != PolicyObjectParameterSet) + { + policyToSet = new ObjectReplicationPolicy() + { + SourceAccount = this.SourceAccount, + // If not specify the destination account, will set destination account to the account which the policy will be set to + DestinationAccount = string.IsNullOrWhiteSpace(this.DestinationAccount) ? this.StorageAccountName : this.DestinationAccount, + Rules = PSObjectReplicationPolicyRule.ParseObjectReplicationPolicyRules(this.Rule) + }; + } + + ObjectReplicationPolicy policy = this.StorageClient.ObjectReplicationPolicies.CreateOrUpdate( + this.ResourceGroupName, + this.StorageAccountName, + PolicyId, + policyToSet); + + WriteObject(new PSObjectReplicationPolicy(policy, this.ResourceGroupName, this.StorageAccountName)); + } + } + } +} diff --git a/src/Storage/Storage.Management/help/Az.Storage.md b/src/Storage/Storage.Management/help/Az.Storage.md index ab37ff80ae32..45267cd1795d 100644 --- a/src/Storage/Storage.Management/help/Az.Storage.md +++ b/src/Storage/Storage.Management/help/Az.Storage.md @@ -116,6 +116,9 @@ Gets the state of a copy operation. ### [Get-AzStorageFileHandle](Get-AzStorageFileHandle.md) Lists file handles of a file share, a file directory or a file. +### [Get-AzStorageObjectReplicationPolicy](Get-AzStorageObjectReplicationPolicy.md) +Gets or lists object replication policy of a Storage account. + ### [Get-AzStorageQueue](Get-AzStorageQueue.md) Lists storage queues. @@ -206,6 +209,9 @@ Creates an encryption scope for a Storage account. ### [New-AzStorageFileSASToken](New-AzStorageFileSASToken.md) Generates a shared access signature token for a Storage file. +### [New-AzStorageObjectReplicationPolicyRule](New-AzStorageObjectReplicationPolicyRule.md) +Creates an object replication policy rule. + ### [New-AzStorageQueue](New-AzStorageQueue.md) Creates a storage queue. @@ -275,6 +281,9 @@ Deletes a directory. ### [Remove-AzStorageFile](Remove-AzStorageFile.md) Deletes a file. +### [Remove-AzStorageObjectReplicationPolicy](Remove-AzStorageObjectReplicationPolicy.md) +Removes the specified object replication policy from a Storage account. + ### [Remove-AzStorageQueue](Remove-AzStorageQueue.md) Removes a storage queue. @@ -329,6 +338,9 @@ Sets the CORS rules for a type of Storage service. ### [Set-AzStorageFileContent](Set-AzStorageFileContent.md) Uploads the contents of a file. +### [Set-AzStorageObjectReplicationPolicy](Set-AzStorageObjectReplicationPolicy.md) +Creates or updates the specified object replication policy in a Storage account. + ### [Set-AzStorageQueueStoredAccessPolicy](Set-AzStorageQueueStoredAccessPolicy.md) Sets a stored access policy for an Azure storage queue. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md index 2893531f0a53..43047d269b5c 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobServiceProperty.md @@ -39,9 +39,15 @@ The **Get-AzStorageBlobServiceProperty** cmdlet gets the service properties for ```powershell PS C:\> Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled ------------------- ----------------- --------------------- ----------------------------- -------------------------- ------------------ -myresourcegroup mystorageaccount 2018-03-28 False False +StorageAccountName : mystorageaccount +ResourceGroupName : myresourcegroup +DefaultServiceVersion : +DeleteRetentionPolicy.Enabled : False +DeleteRetentionPolicy.Days : +RestorePolicy.Enabled : +RestorePolicy.Days : +ChangeFeed : True +IsVersioningEnabled : True ``` This command gets the Blob services property of a specified Storage Account. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageObjectReplicationPolicy.md b/src/Storage/Storage.Management/help/Get-AzStorageObjectReplicationPolicy.md new file mode 100644 index 000000000000..f026b9f40e77 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzStorageObjectReplicationPolicy.md @@ -0,0 +1,156 @@ +--- +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-azstorageobjectreplicationpolicy +schema: 2.0.0 +--- + +# Get-AzStorageObjectReplicationPolicy + +## SYNOPSIS +Gets or lists object replication policy of a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Get-AzStorageObjectReplicationPolicy [-ResourceGroupName] [-StorageAccountName] + [-PolicyId ] [-DefaultProfile ] [] +``` + +### AccountObject +``` +Get-AzStorageObjectReplicationPolicy -StorageAccount [-PolicyId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **Get-AzStorageObjectReplicationPolicy** cmdlet gets or lists object replication policy of a Storage account. + +## EXAMPLES + +### Example 1: Get an object replication policy with specific policy Id and show its rules. +``` +PS C:\> $policy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId 56bfa11c-81ef-4f8d-b307-5e5386e16fba + +PS C:\> $policy + +ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules +----------------- ------------------ -------- ----------- ------------- ------------------ ----- +myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] + +PS C:\> $policy.Rules + +RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime +------ --------------- -------------------- ------------------- ----------------------- +d3d39a01-8d92-40e5-849f-e56209ae5cf5 src1 dest1 {} +2407de9a-3301-4656-858f-359d185565e0 src dest {a, abc, dd} 2019-01-01T16:00:00Z +``` + +This command gets an object replication policy with specific policy Id and show its rules. + +### Example 2:List object replication policy from a Storage account +``` +PS C:\> $policies = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" + +PS C:\> $policies + +ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules +----------------- ------------------ -------- ----------- ------------- ------------------ ----- +myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysrcaccount1 mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] +myresourcegroup mydestaccount 68434c7a-20d0-4282-b75c-43b5a243435e mysrcaccount2 mydestaccount [d3d39a01-8d92-40e5-849f-e56209ae5cf5,...] +``` + +This command lists object replication 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 +``` + +### -PolicyId +Object Replication Policy Id. + +```yaml +Type: System.String +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 +``` + +### 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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzStorageObjectReplicationPolicyRule.md b/src/Storage/Storage.Management/help/New-AzStorageObjectReplicationPolicyRule.md new file mode 100644 index 000000000000..ef8ff1dae1c0 --- /dev/null +++ b/src/Storage/Storage.Management/help/New-AzStorageObjectReplicationPolicyRule.md @@ -0,0 +1,157 @@ +--- +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-azstorageobjectreplicationpolicyrule +schema: 2.0.0 +--- + +# New-AzStorageObjectReplicationPolicyRule + +## SYNOPSIS +Creates an object replication policy rule. + +## SYNTAX + +``` +New-AzStorageObjectReplicationPolicyRule -SourceContainer -DestinationContainer + [-PrefixMatch ] [-MinCreationTime ] [-RuleId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **Get-AzStorageObjectReplicationPolicy** cmdlet creates an object replication policy rule, which will be used in Set-AzStorageObjectReplicationPolicy cmdlet. + +## EXAMPLES + +### Example 1: Create an object replication policy rule with only source and destination account, and show its properties +``` +PS C:\> $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 + +PS C:\> $rule1 + +RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime +------ --------------- -------------------- ------------------- ----------------------- + src1 dest1 {} +``` + +This command creates an object replication policy rule with only source and destination account, and show its properties. + +### Example 2: Create an object replication policy rule with all properties, and show its properties +``` +PS C:\> $rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd + +PS C:\> $rule2 + +RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime +------ --------------- -------------------- ------------------- ----------------------- + src dest {a, abc, dd} 2019-01-01T16:00:00Z +``` + +This command an object replication policy rule with all properties, and show its properties. + +## 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 +``` + +### -DestinationContainer +The Destination Container name to replicate to. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MinCreationTime +Blobs created after the time will be replicated to the destination.. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrefixMatch +Filters the results to replicate only blobs whose names begin with the specified prefix. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RuleId +Object Replication Rule Id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceContainer +The Source Container name to replicate from. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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.PSObjectReplicationPolicyRule + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Remove-AzStorageObjectReplicationPolicy.md b/src/Storage/Storage.Management/help/Remove-AzStorageObjectReplicationPolicy.md new file mode 100644 index 000000000000..eecfd7083984 --- /dev/null +++ b/src/Storage/Storage.Management/help/Remove-AzStorageObjectReplicationPolicy.md @@ -0,0 +1,199 @@ +--- +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-azstorageobjectreplicationpolicy +schema: 2.0.0 +--- + +# Remove-AzStorageObjectReplicationPolicy + +## SYNOPSIS +Removes the specified object replication policy from a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Remove-AzStorageObjectReplicationPolicy [-ResourceGroupName] [-StorageAccountName] + -PolicyId [-PassThru] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObject +``` +Remove-AzStorageObjectReplicationPolicy -StorageAccount -PolicyId [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### PolicyObject +``` +Remove-AzStorageObjectReplicationPolicy -InputObject [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Remove-AzStorageObjectReplicationPolicy** cmdlet removes the specified object replication policy from a Storage account. + +## EXAMPLES + +### Example 1: Remove an object replication policy with specific policyId from a storage account. +``` +Remove-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PolicyId $policyId +``` + +This command removes an object replication policy with specific policyId 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 +Object Replication Policy object to Delete. + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy +Parameter Sets: PolicyObject +Aliases: + +Required: True +Position: Named +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 +``` + +### -PolicyId +Object Replication Policy Id. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: True +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 +``` + +### -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 + +### Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy + +## OUTPUTS + +### System.Boolean + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Set-AzStorageObjectReplicationPolicy.md b/src/Storage/Storage.Management/help/Set-AzStorageObjectReplicationPolicy.md new file mode 100644 index 000000000000..27501d2a536c --- /dev/null +++ b/src/Storage/Storage.Management/help/Set-AzStorageObjectReplicationPolicy.md @@ -0,0 +1,252 @@ +--- +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-azstorageobjectreplicationpolicy +schema: 2.0.0 +--- + +# Set-AzStorageObjectReplicationPolicy + +## SYNOPSIS +Creates or updates the specified object replication policy in a Storage account. + +## SYNTAX + +### AccountName (Default) +``` +Set-AzStorageObjectReplicationPolicy [-ResourceGroupName] [-StorageAccountName] + [-PolicyId ] -SourceAccount [-DestinationAccount ] + -Rule [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### PolicyObject +``` +Set-AzStorageObjectReplicationPolicy [-ResourceGroupName] [-StorageAccountName] + -InputObject [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObject +``` +Set-AzStorageObjectReplicationPolicy -StorageAccount [-PolicyId ] + -SourceAccount [-DestinationAccount ] -Rule + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Set-AzStorageObjectReplicationPolicy** cmdlet creates or updates the specified object replication policy in a Storage account. + +## EXAMPLES + +### Example 1: Set object replication policy to both destination and source account. +``` +PS C:\> $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 + +PS C:\> $rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd + +PS C:\> $destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId default -SourceAccount $srcAccountName -Rule $rule1,$rule2 + +PS C:\> $destPolicy + +ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules +----------------- ------------------ -------- ----------- ------------- ------------------ ----- +myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] + +PS C:\> Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mysourceaccount" -InputObject $destPolicy + +ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules +----------------- ------------------ -------- ----------- ------------- ------------------ ----- +myresourcegroup mysourceaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] + +``` + +This command sets object replication policy to both destination and source account. +First create 2 object replication policy rules, and set policy with the 2 rules to destination account. Then set the object replication policy from destination account to source 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 +``` + +### -DestinationAccount +Object Replication Policy DestinationAccount. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Object Replication Policy Object to Set to the specified Account. + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy +Parameter Sets: PolicyObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PolicyId +Object Replication Policy Id. +It should be a GUID or 'default'. +If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +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, PolicyObject +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Rule +Object Replication Policy Rules. + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceAccount +Object Replication Policy SourceAccount. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: True +Position: Named +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, PolicyObject +Aliases: AccountName + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +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 + +### Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md b/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md index 4feb108f33fd..bb390731bfed 100644 --- a/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md +++ b/src/Storage/Storage.Management/help/Update-AzStorageBlobServiceProperty.md @@ -15,22 +15,22 @@ Modifies the service properties for the Azure Storage Blob service. ### AccountName (Default) ``` Update-AzStorageBlobServiceProperty [-ResourceGroupName] [-StorageAccountName] - [-DefaultServiceVersion ] [-EnableChangeFeed ] [-DefaultProfile ] - [-WhatIf] [-Confirm] [] + [-DefaultServiceVersion ] [-EnableChangeFeed ] [-IsVersioningEnabled ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` Update-AzStorageBlobServiceProperty -StorageAccount [-DefaultServiceVersion ] - [-EnableChangeFeed ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-EnableChangeFeed ] [-IsVersioningEnabled ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] ``` ### BlobServicePropertiesResourceId ``` Update-AzStorageBlobServiceProperty [-ResourceId] [-DefaultServiceVersion ] - [-EnableChangeFeed ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-EnableChangeFeed ] [-IsVersioningEnabled ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -42,9 +42,15 @@ The **Update-AzStorageBlobServiceProperty** cmdlet modifies the service properti ``` C:\PS> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -DefaultServiceVersion 2018-03-28 -StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled ------------------- ----------------- --------------------- ----------------------------- -------------------------- ------------------ -myresourcegroup mystorageaccount 2018-03-28 False False +StorageAccountName : mystorageaccount +ResourceGroupName : myresourcegroup +DefaultServiceVersion : 2018-03-28 +DeleteRetentionPolicy.Enabled : False +DeleteRetentionPolicy.Days : +RestorePolicy.Enabled : +RestorePolicy.Days : +ChangeFeed : +IsVersioningEnabled : ``` This command sets the DefaultServiceVersion of Blob Service to 2018-03-28. @@ -53,9 +59,15 @@ This command sets the DefaultServiceVersion of Blob Service to 2018-03-28. ``` C:\PS> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableChangeFeed $true -StorageAccountName ResourceGroupName DefaultServiceVersion DeleteRetentionPolicy.Enabled DeleteRetentionPolicy.Days ChangeFeed.Enabled ------------------- ----------------- --------------------- ----------------------------- -------------------------- ------------------ -myresourcegroup mystorageaccount 2018-03-28 False True +StorageAccountName : mystorageaccount +ResourceGroupName : myresourcegroup +DefaultServiceVersion : +DeleteRetentionPolicy.Enabled : False +DeleteRetentionPolicy.Days : +RestorePolicy.Enabled : +RestorePolicy.Days : +ChangeFeed : True +IsVersioningEnabled : ``` This command enables Changefeed on Blob service of a Storage account @@ -63,6 +75,23 @@ Change feed support in Azure Blob Storage works by listening to a GPv2 or Blob s It then outputs an ordered log of events for the blobs stored in the $blobchangefeed container within the storage account. The serialized changes are persisted as an Apache Avro file and can be processed asynchronously and incrementally. +### Example 3: Enable Versioning on Blob service of a Storage account +``` +C:\PS> Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IsVersioningEnabled $true + +StorageAccountName : mystorageaccount +ResourceGroupName : myresourcegroup +DefaultServiceVersion : +DeleteRetentionPolicy.Enabled : False +DeleteRetentionPolicy.Days : +RestorePolicy.Enabled : +RestorePolicy.Days : +ChangeFeed : +IsVersioningEnabled : True +``` + +This command enables Versioning on Blob service of a Storage account + ## PARAMETERS ### -DefaultProfile @@ -113,6 +142,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -IsVersioningEnabled +Gets or sets versioning is enabled if set to true. + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ResourceGroupName Resource Group Name. @@ -205,7 +249,7 @@ 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). +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 From ad8763c95c11d5b96e377578a25876ffb52a20c3 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Sat, 2 May 2020 17:44:26 +0800 Subject: [PATCH 08/21] [Storage] Support rounting preferences (#11778) --- .../ScenarioTests/StorageAccountTests.cs | 7 + .../ScenarioTests/StorageAccountTests.ps1 | 76 + ...wSetAStorageAccount_RoutingPreference.json | 1527 +++++++++++++++++ src/Storage/Storage.Management/ChangeLog.md | 3 + .../Models/PSRoutingPreference.cs | 43 + .../Models/PSStorageAccount.cs | 3 + .../Storage.Management.format.ps1xml | 46 + .../StorageAccount/NewAzureStorageAccount.cs | 46 + .../StorageAccount/SetAzureStorageAccount.cs | 46 + .../help/New-AzStorageAccount.md | 90 +- .../help/Set-AzStorageAccount.md | 86 +- 11 files changed, 1959 insertions(+), 14 deletions(-) create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAStorageAccount_RoutingPreference.json create mode 100644 src/Storage/Storage.Management/Models/PSRoutingPreference.cs diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs index 33ab3f2e08e0..8bd643aa6334 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs @@ -204,5 +204,12 @@ public void TestNewAzureStorageAccountQueueTableEncrytionKeyType() { TestRunner.RunTestScript("Test-NewAzureStorageAccountQueueTableEncrytionKeyType"); } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestNewSetAStorageAccount_RoutingPreference() + { + TestRunner.RunTestScript("Test-NewSetAzStorageAccount_RoutingPreference"); + } } } diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 index 564f672721ad..2d300210245f 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1 @@ -1331,4 +1331,80 @@ function Test-NewAzureStorageAccountQueueTableEncrytionKeyType # Cleanup Clean-ResourceGroup $rgname } +} + + <# +.SYNOPSIS +Test Test-NewSetAzStorageAccount_RoutingPreference +.DESCRIPTION +SmokeTest +#> +function Test-NewSetAzStorageAccount_RoutingPreference +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_LRS'; + $loc = Get-ProviderLocation_Canary ResourceManagement; + $kind = 'StorageV2' + + New-AzResourceGroup -Name $rgname -Location $loc; + Write-Output ("Resource Group created") + + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -SkuName $stotype -PublishMicrosoftEndpoint $true -PublishInternetEndpoint $true -RoutingChoice MicrosoftRouting; + + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $stoname $sto.StorageAccountName; + Assert-AreEqual $stotype $sto.Sku.Name; + Assert-AreEqual $loc.ToLower().Replace(" ", "") $sto.Location; + Assert-AreEqual $kind $sto.Kind; + Assert-AreEqual $true $sto.RoutingPreference.PublishMicrosoftEndpoints + Assert-AreEqual $true $sto.RoutingPreference.PublishInternetEndpoints + Assert-AreEqual "MicrosoftRouting" $sto.RoutingPreference.RoutingChoice + Assert-AreNotEqual $null $sto.PrimaryEndpoints.MicrosoftEndpoints + Assert-AreNotEqual $null $sto.PrimaryEndpoints.InternetEndpoints + + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -RoutingChoice InternetRouting; + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $true $sto.RoutingPreference.PublishMicrosoftEndpoints + Assert-AreEqual $true $sto.RoutingPreference.PublishInternetEndpoints + Assert-AreEqual "InternetRouting" $sto.RoutingPreference.RoutingChoice + Assert-AreNotEqual $null $sto.PrimaryEndpoints.MicrosoftEndpoints + Assert-AreNotEqual $null $sto.PrimaryEndpoints.InternetEndpoints + + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -PublishMicrosoftEndpoint $false ; + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $false $sto.RoutingPreference.PublishMicrosoftEndpoints + Assert-AreEqual $true $sto.RoutingPreference.PublishInternetEndpoints + Assert-AreEqual "InternetRouting" $sto.RoutingPreference.RoutingChoice + Assert-AreEqual $null $sto.PrimaryEndpoints.MicrosoftEndpoints + Assert-AreNotEqual $null $sto.PrimaryEndpoints.InternetEndpoints + + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -PublishInternetEndpoint $false; + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $false $sto.RoutingPreference.PublishMicrosoftEndpoints + Assert-AreEqual $false $sto.RoutingPreference.PublishInternetEndpoints + Assert-AreEqual "InternetRouting" $sto.RoutingPreference.RoutingChoice + Assert-AreEqual $null $sto.PrimaryEndpoints.MicrosoftEndpoints + Assert-AreEqual $null $sto.PrimaryEndpoints.InternetEndpoints + + Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -PublishMicrosoftEndpoint $true -PublishInternetEndpoint $false -RoutingChoice MicrosoftRouting; + Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; } + Assert-AreEqual $true $sto.RoutingPreference.PublishMicrosoftEndpoints + Assert-AreEqual $false $sto.RoutingPreference.PublishInternetEndpoints + Assert-AreEqual "MicrosoftRouting" $sto.RoutingPreference.RoutingChoice + Assert-AreNotEqual $null $sto.PrimaryEndpoints.MicrosoftEndpoints + Assert-AreEqual $null $sto.PrimaryEndpoints.InternetEndpoints + + 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/TestNewSetAStorageAccount_RoutingPreference.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAStorageAccount_RoutingPreference.json new file mode 100644 index 000000000000..9ae185ddf6fc --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageAccountTests/TestNewSetAStorageAccount_RoutingPreference.json @@ -0,0 +1,1527 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg3974?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5cb3e09f-4d55-421f-9651-03bc89f82e90" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ], + "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": [ + "6f6ea7ca-f86c-4698-a914-a338db7c7873" + ], + "x-ms-correlation-request-id": [ + "6f6ea7ca-f86c-4698-a914-a338db7c7873" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114704Z:6f6ea7ca-f86c-4698-a914-a338db7c7873" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:04 GMT" + ], + "Content-Length": [ + "182" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3974\",\r\n \"name\": \"pstestrg3974\",\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=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c0064fe0-6361-4f6d-b4c8-676f84866341" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.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": [ + "0fb110e0-d62e-4867-ad02-ad97b08ca094" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "c80ec8dc-cd3e-4f27-a98a-cccc9db41184" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114705Z:c80ec8dc-cd3e-4f27-a98a-cccc9db41184" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:05 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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a2463aca-99db-4eb5-9e80-7e343c4ecd29" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "289" + ] + }, + "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/afabb20c-429c-4b42-af03-77266e02e745?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "afabb20c-429c-4b42-af03-77266e02e745" + ], + "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": [ + "59ea194e-7704-48f9-94aa-ce6c0cff5ae7" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114714Z:59ea194e-7704-48f9-94aa-ce6c0cff5ae7" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:14 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/afabb20c-429c-4b42-af03-77266e02e745?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zL2FmYWJiMjBjLTQyOWMtNGI0Mi1hZjAzLTc3MjY2ZTAyZTc0NT9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7c341db9-92b0-4e2e-8a72-ed4a95340cc9" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "bc2b98aa-d917-46a3-82ce-f11072151505" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114732Z:bc2b98aa-d917-46a3-82ce-f11072151505" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:32 GMT" + ], + "Content-Length": [ + "2160" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "177f1a69-0300-4209-af75-d9d2f036472f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "f82f83ab-37e1-43a2-b5a6-861929c55306" + ], + "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": [ + "e48f5366-ff6d-4c27-bcdc-691de91c2a4b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114732Z:e48f5366-ff6d-4c27-bcdc-691de91c2a4b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:32 GMT" + ], + "Content-Length": [ + "2160" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7fc055f6-39d4-46d8-83bf-a0777a80afe8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "70c74090-b22c-4611-9265-e75580dcadf8" + ], + "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": [ + "ca35a136-183b-4f94-907a-5be090c1a03c" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114734Z:ca35a136-183b-4f94-907a-5be090c1a03c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:34 GMT" + ], + "Content-Length": [ + "2160" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9a8ed1a6-aba3-45d9-8c63-2c387d81e07b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "d194340f-0c2a-4675-8aae-fbef21d0284b" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "06ca89ef-834e-4fcc-835f-b8ad388d484c" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114737Z:06ca89ef-834e-4fcc-835f-b8ad388d484c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:36 GMT" + ], + "Content-Length": [ + "2159" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bd336c33-db8a-45b1-b37a-abd2605d9749" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "09a3d8eb-40f6-4a40-ac51-0d991b19e5f4" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "ff29a55d-8b14-456a-b722-bbd2e5918012" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114738Z:ff29a55d-8b14-456a-b722-bbd2e5918012" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:37 GMT" + ], + "Content-Length": [ + "2159" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9c17047f-9c21-4331-86df-c75c1d613afc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "ff061541-fa31-43c7-b28b-3a73814c78ab" + ], + "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": [ + "11985" + ], + "x-ms-correlation-request-id": [ + "d18b8de5-2fae-40ee-9d1a-eb2664f4b792" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114741Z:d18b8de5-2fae-40ee-9d1a-eb2664f4b792" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:41 GMT" + ], + "Content-Length": [ + "1696" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9c5a3cad-5e7c-470a-a733-f37f6faf9d75" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "815b28b4-acab-4238-a1b6-f2d1ef3e1e8b" + ], + "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": [ + "5dcad6c2-ac62-48c4-a928-32332da664b0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114742Z:5dcad6c2-ac62-48c4-a928-32332da664b0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:42 GMT" + ], + "Content-Length": [ + "1696" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8bba3e4c-015a-42ff-83de-1df2676f1ec7" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "0cdad26f-c2a6-4595-9301-f250acfbcec3" + ], + "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": [ + "d3b4f938-bf7c-4330-aa01-4db2b254cd15" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114744Z:d3b4f938-bf7c-4330-aa01-4db2b254cd15" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:44 GMT" + ], + "Content-Length": [ + "1388" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "917c2df5-eaef-41af-98bd-65f3615e81f3" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "49bf7486-26a2-4e65-a86e-53139359417b" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "c1f9279e-90bc-4045-977d-61a7d932989b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114745Z:c1f9279e-90bc-4045-977d-61a7d932989b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:44 GMT" + ], + "Content-Length": [ + "1388" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b972ffaa-e534-421e-8c91-666ba096b922" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "e533fe48-f677-432f-8e10-be7be5dd7163" + ], + "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": [ + "3e563576-f93d-4e5d-b536-99750f14eeeb" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114747Z:3e563576-f93d-4e5d-b536-99750f14eeeb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:46 GMT" + ], + "Content-Length": [ + "1852" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4e0efb82-d20b-45b7-bbc5-aa8ee4aa9eb2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "7aa293f2-2f87-4c32-a521-937972253528" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "1de94d7f-9fd3-42fd-abad-c9999e737f0f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114748Z:1de94d7f-9fd3-42fd-abad-c9999e737f0f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:48 GMT" + ], + "Content-Length": [ + "1852" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ae52428f-32c7-4b62-8537-926fb7480a2a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "105" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "dd2d1dad-ceaa-4233-9795-c16ee007e588" + ], + "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": [ + "807195fb-bfea-4fd7-908d-41693a0bbcbb" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114736Z:807195fb-bfea-4fd7-908d-41693a0bbcbb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:36 GMT" + ], + "Content-Length": [ + "2159" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"routingPreference\": {\r\n \"publishMicrosoftEndpoints\": false\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e736c701-2e82-4a33-ac2c-c31db1e40c0f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "105" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "fdd6cf15-ae0f-4916-b0d2-6eda17e59739" + ], + "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": [ + "07f2277e-e5bb-410d-8e79-cda05598722a" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114741Z:07f2277e-e5bb-410d-8e79-cda05598722a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:40 GMT" + ], + "Content-Length": [ + "1696" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": true\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"internetEndpoints\": {\r\n \"blob\": \"https://stopstestrg3974-internetrouting.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-internetrouting.file.core.windows.net/\",\r\n \"dfs\": \"https://stopstestrg3974-internetrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-internetrouting.z3.web.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"routingPreference\": {\r\n \"publishInternetEndpoints\": false\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "990e40b0-9349-49c8-b56e-d6d3d66df88e" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "104" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c1a504fe-1327-4229-bef7-b6e9fed06062" + ], + "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": [ + "f6e05904-25eb-41b2-9b72-9abf6b068f95" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114744Z:f6e05904-25eb-41b2-9b72-9abf6b068f95" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:44 GMT" + ], + "Content-Length": [ + "1388" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"InternetRouting\",\r\n \"publishMicrosoftEndpoints\": false,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": false\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5baa846e-5577-4b47-bcc7-d3f7543b5611" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "190" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "51462330-5b82-4cd2-ae45-98aa4fefadd3" + ], + "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": [ + "c1cfa7d6-4511-412a-8ff3-72fbe446abf6" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114746Z:c1cfa7d6-4511-412a-8ff3-72fbe446abf6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:45 GMT" + ], + "Content-Length": [ + "1852" + ], + "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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974\",\r\n \"name\": \"stopstestrg3974\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"privateEndpointConnections\": [],\r\n \"routingPreference\": {\r\n \"routingChoice\": \"MicrosoftRouting\",\r\n \"publishMicrosoftEndpoints\": true,\r\n \"publishInternetEndpoints\": false\r\n },\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\": \"2020-05-01T11:47:14.3389048Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T11:47:14.3389048Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T11:47:14.2764085Z\",\r\n \"primaryEndpoints\": {\r\n \"microsoftEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3974-microsoftrouting.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974-microsoftrouting.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974-microsoftrouting.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974-microsoftrouting.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974-microsoftrouting.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974-microsoftrouting.file.core.windows.net/\"\r\n },\r\n \"dfs\": \"https://stopstestrg3974.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3974.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3974.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3974.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3974.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3974.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/pstestrg3974/providers/Microsoft.Storage/storageAccounts/stopstestrg3974?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzk3NC9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a54920a2-5ae0-4274-88fd-f134edfcb95c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "29b7ec6d-4316-42df-963f-3363b8d1613b" + ], + "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": [ + "bd036d24-34be-4729-b691-2f112a3754e8" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114754Z:bd036d24-34be-4729-b691-2f112a3754e8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:47:54 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg3974?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMzk3ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2b415f1b-aa63-422d-bb60-02f199b6a097" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-request-id": [ + "e8f1a7d8-1243-4d36-be3c-e083da4026e3" + ], + "x-ms-correlation-request-id": [ + "e8f1a7d8-1243-4d36-be3c-e083da4026e3" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114802Z:e8f1a7d8-1243-4d36-be3c-e083da4026e3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:48:01 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek01TnpRdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "92d576fc-708f-44e3-a3b9-ac2f80d741fd" + ], + "x-ms-correlation-request-id": [ + "92d576fc-708f-44e3-a3b9-ac2f80d741fd" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114817Z:92d576fc-708f-44e3-a3b9-ac2f80d741fd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:48:17 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek01TnpRdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-request-id": [ + "570508e5-c225-42e3-8ec0-fdb06a200244" + ], + "x-ms-correlation-request-id": [ + "570508e5-c225-42e3-8ec0-fdb06a200244" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114833Z:570508e5-c225-42e3-8ec0-fdb06a200244" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:48:32 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek01TnpRdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-request-id": [ + "d9a6ab4e-2cca-4342-9ddb-ca32ff925e1b" + ], + "x-ms-correlation-request-id": [ + "d9a6ab4e-2cca-4342-9ddb-ca32ff925e1b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114848Z:d9a6ab4e-2cca-4342-9ddb-ca32ff925e1b" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:48:48 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM5NzQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek01TnpRdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-request-id": [ + "a9e3ee6e-e259-4286-8cb3-9c8e13b706f1" + ], + "x-ms-correlation-request-id": [ + "a9e3ee6e-e259-4286-8cb3-9c8e13b706f1" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T114849Z:a9e3ee6e-e259-4286-8cb3-9c8e13b706f1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 11:48:48 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-NewSetAzStorageAccount_RoutingPreference": [ + "pstestrg3974" + ] + }, + "Variables": { + "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e" + } +} \ No newline at end of file diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 29877b7a57b9..b4dffb91b47f 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -25,6 +25,9 @@ - `Set-AzStorageObjectReplicationPolicy` - `Get-AzStorageObjectReplicationPolicy` - `Remove-AzStorageObjectReplicationPolicy` +* Supported RoutingPreference settings in create/update Storage account + - `New-AzStorageAccount` + - `Set-AzStorageAccount` ## Version 1.14.1 * Supported create container and upload blob with Encryption Scope setting diff --git a/src/Storage/Storage.Management/Models/PSRoutingPreference.cs b/src/Storage/Storage.Management/Models/PSRoutingPreference.cs new file mode 100644 index 000000000000..bfa76016af71 --- /dev/null +++ b/src/Storage/Storage.Management/Models/PSRoutingPreference.cs @@ -0,0 +1,43 @@ +// ---------------------------------------------------------------------------------- +// +// 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 System; + +namespace Microsoft.Azure.Commands.Management.Storage.Models +{ + public class PSRoutingPreference + { + //Parse RoutingPreference in SDK to wrapped property PSRoutingPreference + public static PSRoutingPreference ParsePSRoutingPreference(RoutingPreference routingPreference) + { + if (routingPreference == null) + { + return null; + } + + PSRoutingPreference pSRoutingPreference = new PSRoutingPreference(); + + pSRoutingPreference.RoutingChoice = routingPreference.RoutingChoice; + pSRoutingPreference.PublishMicrosoftEndpoints = routingPreference.PublishMicrosoftEndpoints; + pSRoutingPreference.PublishInternetEndpoints = routingPreference.PublishInternetEndpoints; + + return pSRoutingPreference; + } + + public string RoutingChoice { get; set; } + public bool? PublishMicrosoftEndpoints { get; set; } + public bool? PublishInternetEndpoints { get; set; } + } +} diff --git a/src/Storage/Storage.Management/Models/PSStorageAccount.cs b/src/Storage/Storage.Management/Models/PSStorageAccount.cs index 24b5efff68da..c35ce4bbbbb4 100644 --- a/src/Storage/Storage.Management/Models/PSStorageAccount.cs +++ b/src/Storage/Storage.Management/Models/PSStorageAccount.cs @@ -56,6 +56,7 @@ public PSStorageAccount(StorageModels.StorageAccount storageAccount) this.LargeFileSharesState = storageAccount.LargeFileSharesState; this.AzureFilesIdentityBasedAuth = storageAccount.AzureFilesIdentityBasedAuthentication is null ? null : new PSAzureFilesIdentityBasedAuthentication(storageAccount.AzureFilesIdentityBasedAuthentication); this.GeoReplicationStats = PSGeoReplicationStats.ParsePSGeoReplicationStats(storageAccount.GeoReplicationStats); + this.RoutingPreference = PSRoutingPreference.ParsePSRoutingPreference(storageAccount.RoutingPreference); this.BlobRestoreStatus = storageAccount.BlobRestoreStatus is null ? null : new PSBlobRestoreStatus(storageAccount.BlobRestoreStatus); } @@ -120,6 +121,8 @@ public PSStorageAccount(StorageModels.StorageAccount storageAccount) public PSNetworkRuleSet NetworkRuleSet { get; set; } + public PSRoutingPreference RoutingPreference { get; set; } + public PSBlobRestoreStatus BlobRestoreStatus { get; set; } public PSGeoReplicationStats GeoReplicationStats { get; set; } diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index a8e62cf3c4e3..9e45e14b631d 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -636,5 +636,51 @@ + + Microsoft.Azure.Management.Storage.Models.Endpoints + + Microsoft.Azure.Management.Storage.Models.Endpoints + + + + + + + Blob + + + + Queue + + + + Table + + + + File + + + + Web + + + + Dfs + + + + ConvertTo-Json $_.MicrosoftEndpoints -Compress + + + + ConvertTo-Json $_.InternetEndpoints -Compress + + + + + + + \ No newline at end of file diff --git a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs index fbb16af9ff4b..fc7588c5563d 100644 --- a/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs +++ b/src/Storage/Storage.Management/StorageAccount/NewAzureStorageAccount.cs @@ -197,6 +197,48 @@ public bool EnableAzureActiveDirectoryDomainServicesForFile [Parameter(Mandatory = false, HelpMessage = "Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047")] public SwitchParameter EnableLargeFileShare { get; set; } + [Parameter(Mandatory = false, HelpMessage = "Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting'")] + [ValidateSet( + Microsoft.Azure.Management.Storage.Models.RoutingChoice.MicrosoftRouting, + Microsoft.Azure.Management.Storage.Models.RoutingChoice.InternetRouting, + IgnoreCase = true)] + public string RoutingChoice; + + [Parameter( + Mandatory = false, + HelpMessage = "Indicates whether microsoft routing storage endpoints are to be published")] + [ValidateNotNullOrEmpty] + public bool PublishMicrosoftEndpoint + { + get + { + return publishMicrosoftEndpoint.Value; + } + set + { + publishMicrosoftEndpoint = value; + } + } + private bool? publishMicrosoftEndpoint = null; + + [Parameter( + Mandatory = false, + HelpMessage = "Indicates whether internet routing storage endpoints are to be published")] + [ValidateNotNullOrEmpty] + public bool PublishInternetEndpoint + { + get + { + return publishInternetEndpoint.Value; + } + set + { + publishInternetEndpoint = value; + } + } + private bool? publishInternetEndpoint = null; + + [Parameter( Mandatory = false, HelpMessage = "Enable Azure Files Active Directory Domain Service Authentication for the storage account.", @@ -382,6 +424,10 @@ public override void ExecuteCmdlet() createParameters.Encryption.Services.Table = new EncryptionService(keyType: this.EncryptionKeyTypeForTable); } } + if (this.RoutingChoice != null || this.publishMicrosoftEndpoint != null || this.publishInternetEndpoint != null) + { + createParameters.RoutingPreference = new RoutingPreference(this.RoutingChoice, this.publishMicrosoftEndpoint, this.publishInternetEndpoint); + } var createAccountResponse = this.StorageClient.StorageAccounts.Create( this.ResourceGroupName, diff --git a/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs index ad0a994a026a..5fbc6729ade0 100644 --- a/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs +++ b/src/Storage/Storage.Management/StorageAccount/SetAzureStorageAccount.cs @@ -215,6 +215,48 @@ public bool EnableAzureActiveDirectoryDomainServicesForFile [Parameter(Mandatory = false, HelpMessage = "Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047")] public SwitchParameter EnableLargeFileShare { get; set; } + [Parameter(Mandatory = false, HelpMessage = "Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting'")] + [ValidateSet( + Microsoft.Azure.Management.Storage.Models.RoutingChoice.MicrosoftRouting, + Microsoft.Azure.Management.Storage.Models.RoutingChoice.InternetRouting, + IgnoreCase = true)] + [ValidateNotNullOrEmpty] + public string RoutingChoice; + + [Parameter( + Mandatory = false, + HelpMessage = "Indicates whether microsoft routing storage endpoints are to be published")] + [ValidateNotNullOrEmpty] + public bool PublishMicrosoftEndpoint + { + get + { + return publishMicrosoftEndpoint.Value; + } + set + { + publishMicrosoftEndpoint = value; + } + } + private bool? publishMicrosoftEndpoint = null; + + [Parameter( + Mandatory = false, + HelpMessage = "Indicates whether internet routing storage endpoints are to be published")] + [ValidateNotNullOrEmpty] + public bool PublishInternetEndpoint + { + get + { + return publishInternetEndpoint.Value; + } + set + { + publishInternetEndpoint = value; + } + } + private bool? publishInternetEndpoint = null; + [Parameter( Mandatory = true, HelpMessage = "Enable Azure Files Active Directory Domain Service Authentication for the storage account.", @@ -441,6 +483,10 @@ public override void ExecuteCmdlet() { updateParameters.LargeFileSharesState = LargeFileSharesState.Enabled; } + if (this.RoutingChoice != null || this.publishMicrosoftEndpoint != null || this.publishInternetEndpoint != null) + { + updateParameters.RoutingPreference = new RoutingPreference(this.RoutingChoice, this.publishMicrosoftEndpoint, this.publishInternetEndpoint); + } var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( this.ResourceGroupName, diff --git a/src/Storage/Storage.Management/help/New-AzStorageAccount.md b/src/Storage/Storage.Management/help/New-AzStorageAccount.md index f9ed19095843..01111edebd94 100644 --- a/src/Storage/Storage.Management/help/New-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/New-AzStorageAccount.md @@ -19,8 +19,9 @@ New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] < [-Kind ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] [-EnableHttpsTrafficOnly ] [-AssignIdentity] [-NetworkRuleSet ] [-EnableHierarchicalNamespace ] [-EnableAzureActiveDirectoryDomainServicesForFile ] - [-EnableLargeFileShare] [-AsJob] [-EncryptionKeyTypeForTable ] [-EncryptionKeyTypeForQueue ] - [-DefaultProfile ] [] + [-EnableLargeFileShare] [-PublishMicrosoftEndpoint ] [-PublishInternetEndpoint ] [-AsJob] + [-EncryptionKeyTypeForTable ] [-EncryptionKeyTypeForQueue ] + [-DefaultProfile ] [-RoutingChoice ] [] ``` ### ActiveDirectoryDomainServicesForFile @@ -28,12 +29,13 @@ New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] < New-AzStorageAccount [-ResourceGroupName] [-Name] [-SkuName] [-Location] [-Kind ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] [-EnableHttpsTrafficOnly ] [-AssignIdentity] [-NetworkRuleSet ] - [-EnableHierarchicalNamespace ] [-EnableLargeFileShare] - [-EnableActiveDirectoryDomainServicesForFile ] [-ActiveDirectoryDomainName ] - [-ActiveDirectoryNetBiosDomainName ] [-ActiveDirectoryForestName ] - [-ActiveDirectoryDomainGuid ] [-ActiveDirectoryDomainSid ] - [-ActiveDirectoryAzureStorageSid ] [-AsJob] [-EncryptionKeyTypeForTable ] - [-EncryptionKeyTypeForQueue ] [-DefaultProfile ] [] + [-EnableHierarchicalNamespace ] [-EnableLargeFileShare] [-PublishMicrosoftEndpoint ] + [-PublishInternetEndpoint ] [-EnableActiveDirectoryDomainServicesForFile ] + [-ActiveDirectoryDomainName ] [-ActiveDirectoryNetBiosDomainName ] + [-ActiveDirectoryForestName ] [-ActiveDirectoryDomainGuid ] + [-ActiveDirectoryDomainSid ] [-ActiveDirectoryAzureStorageSid ] [-AsJob] + [-EncryptionKeyTypeForTable ] [-EncryptionKeyTypeForQueue ] + [-DefaultProfile ] [-RoutingChoice ] [] ``` ## DESCRIPTION @@ -143,6 +145,32 @@ Enabled LastEnabledTime KeyType This command creates a Storage account with Queue and Table Service use account-scoped encryption key, so Queue and Table will use same encryption key with Blob and File service. Then get the Storage account properties, and view the encryption keytype of Queue and Table Service. +### Example 10: Create a Storage account with RoutingPreference setting +```powershell +PS C:\>$account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -PublishMicrosoftEndpoint $true -PublishInternetEndpoint $true -RoutingChoice MicrosoftRouting + +PS C:\>$account.RoutingPreference + +RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints +------------- ------------------------- ------------------------ +MicrosoftRouting True True + +PS C:\>$account.PrimaryEndpoints + +Blob : https://mystorageaccount.blob.core.windows.net/ +Queue : https://mystorageaccount.queue.core.windows.net/ +Table : https://mystorageaccount.table.core.windows.net/ +File : https://mystorageaccount.file.core.windows.net/ +Web : https://mystorageaccount.z2.web.core.windows.net/ +Dfs : https://mystorageaccount.dfs.core.windows.net/ +MicrosoftEndpoints : {"Blob":"https://mystorageaccount-microsoftrouting.blob.core.windows.net/","Queue":"https://mystorageaccount-microsoftrouting.queue.core.windows.net/","Table":"https://mystorageaccount-microsoftrouting.table.core.windows.net/","File":"ht + tps://mystorageaccount-microsoftrouting.file.core.windows.net/","Web":"https://mystorageaccount-microsoftrouting.z2.web.core.windows.net/","Dfs":"https://mystorageaccount-microsoftrouting.dfs.core.windows.net/"} +InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w + eirp3-internetrouting.dfs.core.windows.net/"} +``` + +This command creates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint and PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. + ## PARAMETERS ### -AccessTier @@ -498,6 +526,36 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -PublishInternetEndpoint +Indicates whether internet routing storage endpoints are to be published + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublishMicrosoftEndpoint +Indicates whether microsoft routing storage endpoints are to be published + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ResourceGroupName Specifies the name of the resource group in which to add the Storage account. @@ -513,6 +571,22 @@ Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` +### -RoutingChoice +Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: MicrosoftRouting, InternetRouting + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -SkuName Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: diff --git a/src/Storage/Storage.Management/help/Set-AzStorageAccount.md b/src/Storage/Storage.Management/help/Set-AzStorageAccount.md index e3a908389ca8..63cce925f005 100644 --- a/src/Storage/Storage.Management/help/Set-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/Set-AzStorageAccount.md @@ -19,8 +19,9 @@ Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-S [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] [-EnableHttpsTrafficOnly ] [-StorageEncryption] [-AssignIdentity] [-NetworkRuleSet ] [-UpgradeToStorageV2] - [-EnableAzureActiveDirectoryDomainServicesForFile ] [-EnableLargeFileShare] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-EnableAzureActiveDirectoryDomainServicesForFile ] [-EnableLargeFileShare] + [-PublishMicrosoftEndpoint ] [-PublishInternetEndpoint ] [-AsJob] + [-DefaultProfile ] [-RoutingChoice ] [-WhatIf] [-Confirm] [] ``` ### KeyvaultEncryption @@ -29,8 +30,9 @@ Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-S [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] [-EnableHttpsTrafficOnly ] [-KeyvaultEncryption] -KeyName [-KeyVersion ] -KeyVaultUri [-AssignIdentity] [-NetworkRuleSet ] [-UpgradeToStorageV2] - [-EnableAzureActiveDirectoryDomainServicesForFile ] [-EnableLargeFileShare] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-EnableAzureActiveDirectoryDomainServicesForFile ] [-EnableLargeFileShare] + [-PublishMicrosoftEndpoint ] [-PublishInternetEndpoint ] [-AsJob] + [-DefaultProfile ] [-RoutingChoice ] [-WhatIf] [-Confirm] [] ``` ### ActiveDirectoryDomainServicesForFile @@ -38,11 +40,12 @@ Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-S Set-AzStorageAccount [-ResourceGroupName] [-Name] [-Force] [-SkuName ] [-AccessTier ] [-CustomDomainName ] [-UseSubDomain ] [-Tag ] [-EnableHttpsTrafficOnly ] [-AssignIdentity] [-NetworkRuleSet ] - [-UpgradeToStorageV2] [-EnableLargeFileShare] -EnableActiveDirectoryDomainServicesForFile + [-UpgradeToStorageV2] [-EnableLargeFileShare] [-PublishMicrosoftEndpoint ] + [-PublishInternetEndpoint ] -EnableActiveDirectoryDomainServicesForFile [-ActiveDirectoryDomainName ] [-ActiveDirectoryNetBiosDomainName ] [-ActiveDirectoryForestName ] [-ActiveDirectoryDomainGuid ] [-ActiveDirectoryDomainSid ] [-ActiveDirectoryAzureStorageSid ] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-DefaultProfile ] [-RoutingChoice ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -162,6 +165,31 @@ AzureStorageSid : S-1-5-21-1234567890-1234567890-1234567890-1234 The command updates a Storage account by enable Azure Files Active Directory Domain Service Authentication, and then shows the File Identity Based authentication setting +### Example 12: Update a Storage account with RoutingPreference setting +```powershell +PS C:\>$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -PublishMicrosoftEndpoint $false -PublishInternetEndpoint $true -RoutingChoice InternetRouting + +PS C:\>$account.RoutingPreference + +RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints +------------- ------------------------- ------------------------ +InternetRouting False True + +PS C:\>$account.PrimaryEndpoints + +Blob : https://mystorageaccount.blob.core.windows.net/ +Queue : https://mystorageaccount.queue.core.windows.net/ +Table : https://mystorageaccount.table.core.windows.net/ +File : https://mystorageaccount.file.core.windows.net/ +Web : https://mystorageaccount.z2.web.core.windows.net/ +Dfs : https://mystorageaccount.dfs.core.windows.net/ +MicrosoftEndpoints : +InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w + eirp3-internetrouting.dfs.core.windows.net/"} +``` + +This command updates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint as false, PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. + ## PARAMETERS ### -AccessTier @@ -504,6 +532,36 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -PublishInternetEndpoint +Indicates whether internet routing storage endpoints are to be published + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublishMicrosoftEndpoint +Indicates whether microsoft routing storage endpoints are to be published + +```yaml +Type: System.Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ResourceGroupName Specifies the name of the resource group in which to modify the Storage account. @@ -519,6 +577,22 @@ Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` +### -RoutingChoice +Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: MicrosoftRouting, InternetRouting + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -SkuName Specifies the SKU name of the Storage account. The acceptable values for this parameter are: From 8d731b263e3ec91274039d870370b6333d1dc42d Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Wed, 6 May 2020 15:23:34 +0800 Subject: [PATCH 09/21] [Storage] remove duplicated changelog from merge conflict --- src/Storage/Storage.Management/ChangeLog.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index b4dffb91b47f..198d0b2ec2a2 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -41,9 +41,6 @@ - `Get-AzStorageAccountNetworkRuleSet` * Fixed #11624: Skip duplicated rules when add NetworkRules, to avoid server failure - `Add-AzStorageAccountNetworkRule` -* Supported create container and upload blob with Encryption Scope setting - - `New-AzStorageContainer` - - `Set-AzStorageBlobContent` ## Version 1.14.0 * Added breaking change notice for Azure File cmdlets output change in a future release From c9c93d93b32d3b5e8fd140f8d27663517a3cdfc9 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Wed, 6 May 2020 20:30:04 +0800 Subject: [PATCH 10/21] [Storage] Support share soft delete (#11779) * [Storage] Support share soft delete * fix CI failure * Remove GetShareUsage parameter since server issue * [Storage] Fix a CI failure --- .../ScenarioTests/StorageFileTests.cs | 9 +- .../ScenarioTests/StorageFileTests.ps1 | 101 + .../TestShareSoftDeletee.json | 1797 +++++++++++++++++ .../Storage.Management/Az.Storage.psd1 | 2 + src/Storage/Storage.Management/ChangeLog.md | 7 + .../File/GetAzStorageFileServiceProperty.cs | 106 + .../File/GetAzureStorageShare.cs | 62 +- .../File/RestoreAzureStorageShare.cs | 143 ++ .../File/StorageFileBaseCmdlet.cs | 1 + .../UpdateAzAzStorageFileServiceProperty.cs | 170 ++ .../Storage.Management/Models/PSContainer.cs | 4 +- .../Models/PSFileServiceProperties.cs | 64 + .../Storage.Management/Models/PSShare.cs | 41 +- .../Storage.Management.format.ps1xml | 80 +- .../Storage.Management/help/Az.Storage.md | 9 + .../help/Get-AzRmStorageShare.md | 100 +- .../help/Get-AzStorageFileServiceProperty.md | 141 ++ .../help/New-AzRmStorageShare.md | 22 +- .../help/Remove-AzRmStorageShare.md | 2 +- .../help/Restore-AzRmStorageShare.md | 217 ++ .../help/Update-AzRmStorageShare.md | 24 +- .../Update-AzStorageFileServiceProperty.md | 206 ++ .../Az.Storage/BreakingChangeIssues.csv | 5 +- 23 files changed, 3250 insertions(+), 63 deletions(-) create mode 100644 src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestShareSoftDeletee.json create mode 100644 src/Storage/Storage.Management/File/GetAzStorageFileServiceProperty.cs create mode 100644 src/Storage/Storage.Management/File/RestoreAzureStorageShare.cs create mode 100644 src/Storage/Storage.Management/File/UpdateAzAzStorageFileServiceProperty.cs create mode 100644 src/Storage/Storage.Management/Models/PSFileServiceProperties.cs create mode 100644 src/Storage/Storage.Management/help/Get-AzStorageFileServiceProperty.md create mode 100644 src/Storage/Storage.Management/help/Restore-AzRmStorageShare.md create mode 100644 src/Storage/Storage.Management/help/Update-AzStorageFileServiceProperty.md diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.cs b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.cs index 9ac84cce0204..4f013c898166 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.cs +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.cs @@ -36,6 +36,13 @@ public StorageFileTests(ITestOutputHelper output) public void TestStorageFileShare() { TestController.NewInstance.RunPsTest(_logger, "Test-StorageFileShare"); - } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestShareSoftDeletee() + { + TestController.NewInstance.RunPsTest(_logger, "Test-ShareSoftDelete"); + } } } diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 index 54cb52a670df..89fa951a8f1f 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 @@ -99,5 +99,106 @@ function Test-StorageFileShare } } +<# +.SYNOPSIS +Test Storage File Share Soft Delete +.DESCRIPTION +SmokeTest +#> +function Test-ShareSoftDelete +{ + # Setup + $rgname = Get-StorageManagementTestResourceName; + + try + { + # Test + $stoname = 'sto' + $rgname; + $stotype = 'Standard_LRS'; + $loc = Get-ProviderLocation ResourceManagement; + $kind = 'StorageV2' + $shareName1 = "share1"+ $rgname + $shareName2 = "share2"+ $rgname + + Write-Verbose "RGName: $rgname | Loc: $loc" + New-AzResourceGroup -Name $rgname -Location $loc; + + $loc = Get-ProviderLocation_Stage ResourceManagement; + New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind + $stos = Get-AzStorageAccount -ResourceGroupName $rgname; + + # Enable Share Soft delete + Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableShareDeleteRetentionPolicy $true -ShareRetentionDays 5 + $servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual $true $servicePropertie.ShareDeleteRetentionPolicy.Enabled + Assert-AreEqual 5 $servicePropertie.ShareDeleteRetentionPolicy.Days + + #create Shares + New-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 + Assert-AreEqual $rgname $share.ResourceGroupName + Assert-AreEqual $stoname $share.StorageAccountName + Assert-AreEqual $shareName1 $share.Name + New-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName2 + + #delete share + Remove-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 -Force + + #list share check + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -IncludeDeleted + $deletedShareVersion = $share[0].Version + Assert-AreEqual 2 $share.Count + Assert-AreEqual $shareName1 $share[0].Name + Assert-AreEqual $null $share[0].ShareUsageBytes + Assert-AreEqual $true $share[0].Deleted + Assert-AreNotEqual $null $share[0].DeletedTime + Assert-AreNotEqual $null $share[0].Version + Assert-AreEqual $shareName2 $share[1].Name + Assert-AreEqual $null $share[1].Deleted + Assert-AreEqual $null $share[1].DeletedTime + Assert-AreEqual $null $share[1].Version + + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual 1 $share.Count + Assert-AreEqual $shareName2 $share[0].Name + Assert-AreEqual $null $share[0].Deleted + Assert-AreEqual $null $share[0].DeletedTime + Assert-AreEqual $null $share[0].Version + + # restore share and check + if ($env:AZURE_TEST_MODE -eq "Record") + { + # sleep 1 miniute if record. Don't need sleep in replay + sleep 60 + } + Restore-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 -DeletedShareVersion $deletedShareVersion + + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual 2 $share.Count + Assert-AreEqual $shareName1 $share[0].Name + Assert-AreEqual $null $share[0].Deleted + Assert-AreEqual $null $share[0].DeletedTime + Assert-AreEqual $null $share[0].Version + Assert-AreEqual $shareName2 $share[1].Name + Assert-AreEqual $null $share[1].Deleted + Assert-AreEqual $null $share[1].DeletedTime + Assert-AreEqual $null $share[1].Version + + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -IncludeDeleted + Assert-AreEqual 2 $share.Count + + # Disable Share Soft delete + Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableShareDeleteRetentionPolicy $false + $servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname + Assert-AreEqual $false $servicePropertie.ShareDeleteRetentionPolicy.Enabled + + Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestShareSoftDeletee.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestShareSoftDeletee.json new file mode 100644 index 000000000000..fb73f2b75e09 --- /dev/null +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestShareSoftDeletee.json @@ -0,0 +1,1797 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "187e7605-995d-4afe-90de-35dc3c104133" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-request-id": [ + "9143a26b-2fec-464a-8b86-e0b67eb89269" + ], + "x-ms-correlation-request-id": [ + "9143a26b-2fec-464a-8b86-e0b67eb89269" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T164958Z:9143a26b-2fec-464a-8b86-e0b67eb89269" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:49:58 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "12336" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage\",\r\n \"namespace\": \"Microsoft.Storage\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"a6aa9161-5291-40bb-8c5c-923b567bee3b\",\r\n \"roleDefinitionId\": \"070ab87f-0efc-4423-b18b-756f3bdb0236\"\r\n },\r\n {\r\n \"applicationId\": \"e406a681-f3d4-42a8-90b6-c2b029497af1\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"storageAccounts\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/asyncoperations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listAccountSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listServiceSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/blobServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/tableServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/queueServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/fileServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\",\r\n \"2016-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deleteVirtualNetworkOrSubnets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usages\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg3547?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMzU0Nz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"West US\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8d39c7c3-abaa-4190-9c85-3c9c9ef1efc9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "29" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "228e2e95-b568-469d-8202-942616c8de95" + ], + "x-ms-correlation-request-id": [ + "228e2e95-b568-469d-8202-942616c8de95" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165001Z:228e2e95-b568-469d-8202-942616c8de95" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:01 GMT" + ], + "Content-Length": [ + "177" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547\",\r\n \"name\": \"pstestrg3547\",\r\n \"location\": \"westus\",\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=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"name\": \"stopstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7b371bbf-6411-496f-9c2d-630c2e821099" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.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": [ + "ed353e6a-7046-4d54-9e82-8f08f3c959d8" + ], + "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": [ + "f35a0b71-7db4-4a05-9f62-27a907f44663" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165002Z:f35a0b71-7db4-4a05-9f62-27a907f44663" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50: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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Nz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2(stage)\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a1257bf6-9175-42c0-8ca8-8b12d6b49c0a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "106" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2(stage)/asyncoperations/370edc75-f308-4c21-a4e9-2d97c0fe6218?monitor=true&api-version=2019-06-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "370edc75-f308-4c21-a4e9-2d97c0fe6218" + ], + "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": [ + "4187358e-6d0b-45d4-a3c5-e8b9f80fc591" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165008Z:4187358e-6d0b-45d4-a3c5-e8b9f80fc591" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:07 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/eastus2(stage)/asyncoperations/370edc75-f308-4c21-a4e9-2d97c0fe6218?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMihzdGFnZSkvYXN5bmNvcGVyYXRpb25zLzM3MGVkYzc1LWYzMDgtNGMyMS1hNGU5LTJkOTdjMGZlNjIxOD9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8845e46f-59f0-4cea-a1cd-aa033fb2b774" + ], + "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": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "14ad300c-fbd3-41ce-a23a-33ad92bdaaf0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165025Z:14ad300c-fbd3-41ce-a23a-33ad92bdaaf0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:25 GMT" + ], + "Content-Length": [ + "1271" + ], + "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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547\",\r\n \"name\": \"stopstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-01T16:50:07.4141845Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T16:50:07.4141845Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T16:50:07.3516804Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3547.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3547.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3547.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3547.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3547.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3547.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Nz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c635293e-200d-4658-b377-cf8111d76c51" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "b42f8c6a-f982-405e-894d-af8ac771843b" + ], + "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": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "b2400e67-f80c-478b-a2d2-49667d9d3f81" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165025Z:b2400e67-f80c-478b-a2d2-49667d9d3f81" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:25 GMT" + ], + "Content-Length": [ + "1271" + ], + "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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547\",\r\n \"name\": \"stopstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-01T16:50:07.4141845Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T16:50:07.4141845Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T16:50:07.3516804Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3547.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3547.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3547.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3547.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3547.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3547.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "465d6ed6-ca29-43e0-b5d5-d53e6b5c7875" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "cec4510c-f2ad-48ce-8624-7c8ccbde65e2" + ], + "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": [ + "d51e7cf1-3766-4a8c-a139-7791cbc4af33" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165026Z:d51e7cf1-3766-4a8c-a139-7791cbc4af33" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:25 GMT" + ], + "Content-Length": [ + "1283" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547\",\r\n \"name\": \"stopstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2(stage)\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-01T16:50:07.4141845Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-01T16:50:07.4141845Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-01T16:50:07.3516804Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg3547.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg3547.z1.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg3547.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg3547.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg3547.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg3547.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2(stage)\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8304bb4f-9e3b-404b-9cb5-27901246ac99" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "113" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "2a2708ce-4a78-46c1-ab16-388ce401c0d5" + ], + "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": [ + "4c3ab9f4-d8d4-43ae-bb4f-be7816770c13" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165026Z:4c3ab9f4-d8d4-43ae-bb4f-be7816770c13" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:26 GMT" + ], + "Content-Length": [ + "312" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices\",\r\n \"properties\": {\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c4ad451c-ad18-4b3f-b38a-fa52d8e1616f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "96" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "14a70ddc-ff0a-476e-999b-6a6ae2a73d16" + ], + "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": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "6589c647-80f2-4910-848f-45bc57704c3f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165133Z:6589c647-80f2-4910-848f-45bc57704c3f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:33 GMT" + ], + "Content-Length": [ + "304" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices\",\r\n \"properties\": {\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": false\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "43101e12-b722-4d92-bb89-d26ec6405b17" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "c890c712-2cb6-4bd4-a3f7-1711c97aadef" + ], + "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": [ + "3535b96c-b59a-4267-a130-6d918e1f70c3" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165027Z:3535b96c-b59a-4267-a130-6d918e1f70c3" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:26 GMT" + ], + "Content-Length": [ + "384" + ], + "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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices\",\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": true,\r\n \"days\": 5\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdD9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d2fa745b-6ab8-45b3-a598-17358a1408b0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "e4e81a77-d051-441f-9074-289cb5843ebb" + ], + "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": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "d4a11be4-368a-48a3-b7d2-4f1230666f6e" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165133Z:d4a11be4-368a-48a3-b7d2-4f1230666f6e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:33 GMT" + ], + "Content-Length": [ + "385" + ], + "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/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default\",\r\n \"name\": \"default\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices\",\r\n \"properties\": {\r\n \"cors\": {\r\n \"corsRules\": []\r\n },\r\n \"shareDeleteRetentionPolicy\": {\r\n \"enabled\": false,\r\n \"days\": 0\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "662c13c0-3a33-429c-8199-407822e4ec5f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7EDEFC0AE9B70\"" + ], + "x-ms-request-id": [ + "470e8d6b-d527-45e2-9223-1d4c5b451fb0" + ], + "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": [ + "e0e4e514-4acc-404b-9869-d709041f1385" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165028Z:e0e4e514-4acc-404b-9869-d709041f1385" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:27 GMT" + ], + "Content-Length": [ + "286" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5fe70af8-bda6-4de8-abf8-56ebfc8c5345" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7EDEFC0AE9B70\"" + ], + "x-ms-request-id": [ + "cdc6b110-bc43-48a6-a257-829d77f76d0a" + ], + "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": [ + "fae4a1a3-6e22-4eaa-81a5-84182af5bffa" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165028Z:fae4a1a3-6e22-4eaa-81a5-84182af5bffa" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:28 GMT" + ], + "Content-Length": [ + "400" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC0AE9B70\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2020-05-01T16:50:28Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "29dbc0cc-5c3b-43ab-8f48-c000d6c1f177" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7EDEFE68AB3F7\"" + ], + "x-ms-request-id": [ + "69ee1165-2bde-4f1d-8856-17d81bd7e46d" + ], + "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": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "553a6cef-7a17-4021-885f-fa985db18b5b" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165132Z:553a6cef-7a17-4021-885f-fa985db18b5b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:31 GMT" + ], + "Content-Length": [ + "400" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFE68AB3F7\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2020-05-01T16:51:31Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "728252d7-39c7-4ca3-8959-33c055643a76" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7EDEFC138F324\"" + ], + "x-ms-request-id": [ + "0ef1d3a9-582a-4cf1-af59-c8c34504e88f" + ], + "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": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "d24873c7-bd70-4c49-ae07-aa950800ba4f" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165029Z:d24873c7-bd70-4c49-ae07-aa950800ba4f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:28 GMT" + ], + "Content-Length": [ + "286" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547\",\r\n \"name\": \"share2pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547?api-version=2019-06-01&$expand=stats", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDEmJGV4cGFuZD1zdGF0cw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "07066681-c2a6-4ea7-90ef-32e357a553e9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7EDEFC0AE9B70\"" + ], + "x-ms-request-id": [ + "280129c3-a6a6-4449-9e81-015884de4a51" + ], + "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": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "33695b84-c4e0-474f-95e2-afcdcb2ec8e0" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165029Z:33695b84-c4e0-474f-95e2-afcdcb2ec8e0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:29 GMT" + ], + "Content-Length": [ + "420" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC0AE9B70\\\"\",\r\n \"properties\": {\r\n \"shareUsageBytes\": 0,\r\n \"lastModifiedTime\": \"2020-05-01T16:50:28Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8a336fc6-5fbc-46ca-a1ff-87de5e4c7d28" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "79ec5c4b-132d-49d0-a3b7-231a07997aa9" + ], + "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": [ + "ab72989f-eb52-4dd5-be78-1a6cc58a7826" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165030Z:ab72989f-eb52-4dd5-be78-1a6cc58a7826" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:29 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares?api-version=2019-06-01&$expand=deleted", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMSYkZXhwYW5kPWRlbGV0ZWQ=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e71336e9-7d46-4725-89eb-2de1420231d4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "21bbf57b-e45e-4bbd-8edb-e2b78963a0b3" + ], + "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": [ + "c12d4e6f-de53-430c-aa79-f3ee5bdc30d4" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165030Z:c12d4e6f-de53-430c-aa79-f3ee5bdc30d4" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:29 GMT" + ], + "Content-Length": [ + "1069" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547_01D61FD89E19387B\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC0AE9B70\\\"\",\r\n \"properties\": {\r\n \"version\": \"01D61FD89E19387B\",\r\n \"deleted\": true,\r\n \"deletedTime\": \"Fri, 01 May 2020 16:50:29 GMT\",\r\n \"remainingRetentionDays\": 5,\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:50:28Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547\",\r\n \"name\": \"share2pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC138F324\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:50:29Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares?api-version=2019-06-01&$expand=deleted", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMSYkZXhwYW5kPWRlbGV0ZWQ=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "86a9f281-032c-4df0-8bc8-642dacc742a8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "de8deaf1-1f55-4b18-9266-b585e4ce091c" + ], + "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": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "4ac3376f-4220-4aac-ba17-56fd4f8286bb" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165132Z:4ac3376f-4220-4aac-ba17-56fd4f8286bb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:32 GMT" + ], + "Content-Length": [ + "935" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFE68AB3F7\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:51:31Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547\",\r\n \"name\": \"share2pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC138F324\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:50:29Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5a7cf02d-60d0-4af8-9b92-bebd6c06e4ec" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3998b144-cc28-4015-9ac0-00a95f94ccf7" + ], + "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": [ + "61a6b999-f162-42b1-b89f-052388c91859" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165030Z:61a6b999-f162-42b1-b89f-052388c91859" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:50:30 GMT" + ], + "Content-Length": [ + "473" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547\",\r\n \"name\": \"share2pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC138F324\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:50:29Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "913bc44c-60a2-44b7-baaf-9639776d1147" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3e720f34-b1de-41b3-843c-75ca30a7a5ff" + ], + "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": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "ddb7066e-90d5-4f0a-8931-769acfcd0b07" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165132Z:ddb7066e-90d5-4f0a-8931-769acfcd0b07" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:32 GMT" + ], + "Content-Length": [ + "935" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547\",\r\n \"name\": \"share1pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFE68AB3F7\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:51:31Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share2pstestrg3547\",\r\n \"name\": \"share2pstestrg3547\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7EDEFC138F324\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"lastModifiedTime\": \"2020-05-01T16:50:29Z\",\r\n \"shareQuota\": 5120,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547/fileServices/default/shares/share1pstestrg3547/restore?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Ny9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUxcHN0ZXN0cmczNTQ3L3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"deletedShareName\": \"share1pstestrg3547\",\r\n \"deletedShareVersion\": \"01D61FD89E19387B\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "802dd5f4-ed68-44d1-8bd1-c83ee764d9bd" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "94" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8d9ae7a7-3a6f-4059-9df9-13a4dc905c6f" + ], + "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": [ + "f1fb299e-0fd9-4754-8de9-91ff1915fee5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165131Z:f1fb299e-0fd9-4754-8de9-91ff1915fee5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:31 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg3547/providers/Microsoft.Storage/storageAccounts/stopstestrg3547?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMzU0Ny9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMzU0Nz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "60fbdbdb-8ace-46bc-a45d-e4c30cebffe2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "3dea846c-0532-4191-b8cc-4f22518d242d" + ], + "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": [ + "75d5fe89-9276-4ad6-b439-12fb8c14e6af" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165138Z:75d5fe89-9276-4ad6-b439-12fb8c14e6af" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:38 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg3547?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMzU0Nz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "618df6cf-e0d8-4ed7-8308-13ff842b9c29" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14998" + ], + "x-ms-request-id": [ + "45a4e68c-a71c-418c-8ca4-c679d20629d5" + ], + "x-ms-correlation-request-id": [ + "45a4e68c-a71c-418c-8ca4-c679d20629d5" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165142Z:45a4e68c-a71c-418c-8ca4-c679d20629d5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:42 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek0xTkRjdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-request-id": [ + "89f0d667-6150-4c53-99e5-81cedd2fc9f2" + ], + "x-ms-correlation-request-id": [ + "89f0d667-6150-4c53-99e5-81cedd2fc9f2" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165158Z:89f0d667-6150-4c53-99e5-81cedd2fc9f2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:51:57 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek0xTkRjdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-request-id": [ + "43a536c5-e627-41ea-9cff-3f665b321265" + ], + "x-ms-correlation-request-id": [ + "43a536c5-e627-41ea-9cff-3f665b321265" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165213Z:43a536c5-e627-41ea-9cff-3f665b321265" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:52:13 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek0xTkRjdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11988" + ], + "x-ms-request-id": [ + "342e4052-0b04-4636-8b3f-bcd19768b194" + ], + "x-ms-correlation-request-id": [ + "342e4052-0b04-4636-8b3f-bcd19768b194" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165229Z:342e4052-0b04-4636-8b3f-bcd19768b194" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:52:28 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzM1NDctV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSek0xTkRjdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11987" + ], + "x-ms-request-id": [ + "db4a9606-a9eb-4357-975e-432aa28afcba" + ], + "x-ms-correlation-request-id": [ + "db4a9606-a9eb-4357-975e-432aa28afcba" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200501T165229Z:db4a9606-a9eb-4357-975e-432aa28afcba" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Fri, 01 May 2020 16:52:28 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-ShareSoftDelete": [ + "pstestrg3547" + ] + }, + "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 b597c01d2554..e3d1a1f3d5b9 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -163,6 +163,8 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'Get-AzStorageFileHandle', 'Close-AzStorageFileHandle', 'New-AzRmStorageShare', 'Remove-AzRmStorageShare', 'Get-AzRmStorageShare', 'Update-AzRmStorageShare', + 'Update-AzStorageFileServiceProperty', + 'Get-AzStorageFileServiceProperty', 'Restore-AzRmStorageShare', 'Get-AzDataLakeGen2ChildItem', 'Get-AzDataLakeGen2Item', 'New-AzDataLakeGen2Item', 'Move-AzDataLakeGen2Item', 'Remove-AzDataLakeGen2Item', 'Update-AzDataLakeGen2Item', diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 198d0b2ec2a2..d5ca149bd540 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,13 @@ - Additional information about change #1 --> ## Upcoming Release +* Support enable/disable/get share soft delete properties on file Service of a Storage account + - `Update-AzStorageFileServiceProperty` + - `Get-AzStorageFileServiceProperty` +* Support list file shares include the deleted ones of a Storage account, and Get single file share usage + - `Get-AzRmStorageShare` +* Support restore a deleted file share + - `Restore-AzRmStorageShare` * Support enable/disable versioning on Blob Service of a Storage account - `Update-AzStorageBlobServiceProperty` * Support Set/Get/Remove Object Replication Policy on Storage accounts diff --git a/src/Storage/Storage.Management/File/GetAzStorageFileServiceProperty.cs b/src/Storage/Storage.Management/File/GetAzStorageFileServiceProperty.cs new file mode 100644 index 000000000000..a41ff1afba87 --- /dev/null +++ b/src/Storage/Storage.Management/File/GetAzStorageFileServiceProperty.cs @@ -0,0 +1,106 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Management.Storage +{ + using Microsoft.Azure.Commands.Management.Storage.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + using System; + using System.Collections.Generic; + using System.Management.Automation; + using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; + using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + + /// + /// Modify Azure Storage service properties + /// + [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + StorageFileServiceProperty, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSFileServiceProperties))] + public class GetAzStorageFileServicePropertyCommand : StorageFileBaseCmdlet + { + + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// BlobServiceProperties ResourceId parameter set + /// + private const string PropertiesResourceIdParameterSet = "FileServicePropertiesResourceId"; + + [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, NameAlias)] + [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 = "Input a Storage account Resource Id, or a File service properties Resource Id.", + ParameterSetName = PropertiesResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceId { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PropertiesResourceIdParameterSet: + ResourceIdentifier blobServicePropertiesResource = new ResourceIdentifier(ResourceId); + this.ResourceGroupName = blobServicePropertiesResource.ResourceGroupName; + this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + FileServiceProperties serviceProperties = this.StorageClient.FileServices.GetServiceProperties(this.ResourceGroupName, this.StorageAccountName); + + WriteObject(new PSFileServiceProperties(serviceProperties)); + } + } +} diff --git a/src/Storage/Storage.Management/File/GetAzureStorageShare.cs b/src/Storage/Storage.Management/File/GetAzureStorageShare.cs index f9d6483fb1ac..b358942a3a70 100644 --- a/src/Storage/Storage.Management/File/GetAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/GetAzureStorageShare.cs @@ -16,6 +16,7 @@ using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; using Microsoft.Azure.Management.Storage; using Microsoft.Azure.Management.Storage.Models; +using Microsoft.Rest.Azure; using System; using System.Collections.Generic; using System.Management.Automation; @@ -26,20 +27,34 @@ namespace Microsoft.Azure.Commands.Management.Storage public class GetAzureStorageShareCommand : StorageFileBaseCmdlet { /// - /// AccountName Parameter Set + /// AccountName list Parameter Set /// private const string AccountNameParameterSet = "AccountName"; /// - /// Account object parameter set + /// Account object list parameter set /// private const string AccountObjectParameterSet = "AccountObject"; + /// + /// AccountName Parameter Set + /// + private const string AccountNameSingleParameterSet = "AccountNameSingle"; + + /// + /// Account object parameter set + /// + private const string AccountObjectSingleParameterSet = "AccountObjectSingle"; /// /// Share ResourceId parameter set /// private const string ShareResourceIdParameterSet = "ShareResourceId"; + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameSingleParameterSet)] [Parameter( Position = 0, Mandatory = true, @@ -48,6 +63,11 @@ public class GetAzureStorageShareCommand : StorageFileBaseCmdlet [ValidateNotNullOrEmpty] public string ResourceGroupName { get; set; } + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameSingleParameterSet)] [Parameter( Position = 1, Mandatory = true, @@ -57,6 +77,10 @@ public class GetAzureStorageShareCommand : StorageFileBaseCmdlet [ValidateNotNullOrEmpty] public string StorageAccountName { get; set; } + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectSingleParameterSet)] [Parameter(Mandatory = true, HelpMessage = "Storage account object", ValueFromPipeline = true, @@ -75,15 +99,28 @@ public class GetAzureStorageShareCommand : StorageFileBaseCmdlet [Alias("N", "ShareName")] [Parameter(HelpMessage = "Share Name", - Mandatory = false)] + Mandatory = true, + ParameterSetName = AccountObjectSingleParameterSet)] + [Parameter(HelpMessage = "Share Name", + Mandatory = false, + ParameterSetName = AccountNameSingleParameterSet)] public string Name { get; set; } + [Parameter(Mandatory = false, + HelpMessage = "Include deleted shares, by default list shares won't include deleted shares", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = false, + HelpMessage = "Include deleted shares, by default list shares won't include deleted shares", + ParameterSetName = AccountObjectParameterSet)] + public SwitchParameter IncludeDeleted { get; set; } + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); switch (ParameterSetName) { + case AccountObjectSingleParameterSet: case AccountObjectParameterSet: this.ResourceGroupName = StorageAccount.ResourceGroupName; this.StorageAccountName = StorageAccount.StorageAccountName; @@ -95,7 +132,7 @@ public override void ExecuteCmdlet() this.Name = shareResource.ResourceName; break; default: - // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + // For AccountNameSingleParameterSet, the ResourceGroupName and StorageAccountName can get from input directly break; } @@ -109,10 +146,21 @@ public override void ExecuteCmdlet() } else { - var Shares = this.StorageClient.FileShares.List( + ListSharesExpand? listSharesExpand = null; + if (this.IncludeDeleted.IsPresent) + { + listSharesExpand = ListSharesExpand.Deleted; + } + IPage shares = this.StorageClient.FileShares.List( this.ResourceGroupName, - this.StorageAccountName); - WriteShareList(Shares); + this.StorageAccountName, + expand: listSharesExpand); + WriteShareList(shares); + while (shares.NextPageLink != null) + { + shares = this.StorageClient.FileShares.ListNext(shares.NextPageLink); + WriteShareList(shares); + } } } } diff --git a/src/Storage/Storage.Management/File/RestoreAzureStorageShare.cs b/src/Storage/Storage.Management/File/RestoreAzureStorageShare.cs new file mode 100644 index 000000000000..a0f9ce06316d --- /dev/null +++ b/src/Storage/Storage.Management/File/RestoreAzureStorageShare.cs @@ -0,0 +1,143 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Management.Internal.Resources.Utilities.Models; +using Microsoft.Azure.Management.Storage; +using Microsoft.Azure.Management.Storage.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Management.Storage +{ + [Cmdlet("Restore", ResourceManager.Common.AzureRMConstants.AzureRMStoragePrefix + StorageShareNounStr, DefaultParameterSetName = AccountNameParameterSet, SupportsShouldProcess = true), OutputType(typeof(PSShare))] + public class RestoreAzureStorageShareCommand : StorageFileBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// ShareObject Parameter Set + /// + private const string ShareObjectParameterSet = "ShareObject"; + + [Parameter( + Position = 0, + Mandatory = true, + HelpMessage = "Resource Group Name.", + ParameterSetName = AccountNameParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter( + Position = 1, + Mandatory = true, + HelpMessage = "Storage Account Name.", + ParameterSetName = AccountNameParameterSet)] + [Alias(AccountNameAlias)] + [ValidateNotNullOrEmpty] + public string StorageAccountName { get; set; } + + //[Parameter(Mandatory = false, + // HelpMessage = "Target share Name, which will be restored to.")] + //public string ShareName { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Storage account object", + ValueFromPipeline = true, + ParameterSetName = AccountObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSStorageAccount StorageAccount { get; set; } + + [Alias("Share")] + [Parameter(Mandatory = true, + HelpMessage = "Deleted Share object, which will be restored", + ValueFromPipeline = true, + ParameterSetName = ShareObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSShare InputObject { get; set; } + + [Alias("N", "ShareName")] + [Parameter(Mandatory = true, + HelpMessage = "Deleted Share Name, which will be restored.", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Deleted Share Name, which will be restored.", + ParameterSetName = AccountObjectParameterSet)] + public string Name { get; set; } + + [Parameter(Mandatory = true, + HelpMessage = "Deleted Share Version, which will be restored from.", + ParameterSetName = AccountNameParameterSet)] + [Parameter(Mandatory = true, + HelpMessage = "Deleted Share Version, which will be restored from.", + ParameterSetName = AccountObjectParameterSet)] + public string DeletedShareVersion { get; set; } + + //[Parameter(Mandatory = false)] + // public SwitchParameter PassThru { get; set; } + + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + switch (ParameterSetName) + { + case ShareObjectParameterSet: + if(InputObject.Deleted != true) + { + throw new ArithmeticException(string.Format("The input share {0} is not deleted, so can't restore.", this.InputObject.Name)); + } + this.ResourceGroupName = InputObject.ResourceGroupName; + this.StorageAccountName = InputObject.StorageAccountName; + this.Name = InputObject.Name; + this.DeletedShareVersion = InputObject.Version; + break; + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + default: + break; + } + + if (ShouldProcess(this.Name, "Restore Share")) + { + this.StorageClient.FileShares.Restore( + this.ResourceGroupName, + this.StorageAccountName, + this.Name, + this.Name, + this.DeletedShareVersion); + + + var Share = this.StorageClient.FileShares.Get( + this.ResourceGroupName, + this.StorageAccountName, + this.Name); + WriteObject(new PSShare(Share)); + } + } + } +} diff --git a/src/Storage/Storage.Management/File/StorageFileBaseCmdlet.cs b/src/Storage/Storage.Management/File/StorageFileBaseCmdlet.cs index 843996235d62..e5f87cbcc22f 100644 --- a/src/Storage/Storage.Management/File/StorageFileBaseCmdlet.cs +++ b/src/Storage/Storage.Management/File/StorageFileBaseCmdlet.cs @@ -32,6 +32,7 @@ public abstract class StorageFileBaseCmdlet : AzureRMCmdlet protected const string NameAlias = "Name"; protected const string StorageShareNounStr = "StorageShare"; + protected const string StorageFileServiceProperty = "StorageFileServiceProperty"; public const string StorageAccountResourceType = "Microsoft.Storage/storageAccounts"; diff --git a/src/Storage/Storage.Management/File/UpdateAzAzStorageFileServiceProperty.cs b/src/Storage/Storage.Management/File/UpdateAzAzStorageFileServiceProperty.cs new file mode 100644 index 000000000000..453e3389162b --- /dev/null +++ b/src/Storage/Storage.Management/File/UpdateAzAzStorageFileServiceProperty.cs @@ -0,0 +1,170 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Management.Storage +{ + using Microsoft.Azure.Commands.Management.Storage.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + using System; + using System.Collections.Generic; + using System.Management.Automation; + using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; + using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; + + /// + /// Modify Azure Storage service properties + /// + [Cmdlet("Update", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + StorageFileServiceProperty, SupportsShouldProcess = true, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSFileServiceProperties))] + public class UpdateAzStorageFileServicePropertyCommand : StorageFileBaseCmdlet + { + /// + /// AccountName Parameter Set + /// + private const string AccountNameParameterSet = "AccountName"; + + /// + /// Account object parameter set + /// + private const string AccountObjectParameterSet = "AccountObject"; + + /// + /// BlobServiceProperties ResourceId parameter set + /// + private const string PropertiesResourceIdParameterSet = "FileServicePropertiesResourceId"; + + [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, NameAlias)] + [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 = "Input a Storage account Resource Id, or a File service properties Resource Id.", + ParameterSetName = PropertiesResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public string ResourceId { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false.")] + [ValidateNotNullOrEmpty] + public bool EnableShareDeleteRetentionPolicy + { + get + { + return enableShareDeleteRetentionPolicy is null ? false : enableShareDeleteRetentionPolicy.Value; + } + set + { + enableShareDeleteRetentionPolicy = value; + } + } + private bool? enableShareDeleteRetentionPolicy = null; + + [Parameter(Mandatory = false, HelpMessage = "Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy.")] + [Alias("Days", "RetentionDays")] + public int ShareRetentionDays + { + get + { + return shareRetentionDays is null ? 0 : shareRetentionDays.Value; + } + set + { + shareRetentionDays = value; + } + } + private int? shareRetentionDays = null; + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + // Check input parameter + // ShareRetentionDays should only be specified when EnableShareDeleteRetentionPolicy is true + if (this.enableShareDeleteRetentionPolicy == null || this.enableShareDeleteRetentionPolicy.Value == false) + { + if (this.ShareRetentionDays != 0) + { + throw new ArgumentException("ShareRetentionDays should only be specified when EnableShareDeleteRetentionPolicy is true."); + } + } + else + { + if (this.ShareRetentionDays == 0) + { + throw new ArgumentException("ShareRetentionDays must be specified when EnableShareDeleteRetentionPolicy is true."); + } + } + + if (ShouldProcess("BlobServiceProperties", "Update")) + { + switch (ParameterSetName) + { + case AccountObjectParameterSet: + this.ResourceGroupName = StorageAccount.ResourceGroupName; + this.StorageAccountName = StorageAccount.StorageAccountName; + break; + case PropertiesResourceIdParameterSet: + ResourceIdentifier blobServicePropertiesResource = new ResourceIdentifier(ResourceId); + this.ResourceGroupName = blobServicePropertiesResource.ResourceGroupName; + this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(ResourceId); + break; + default: + // For AccountNameParameterSet, the ResourceGroupName and StorageAccountName can get from input directly + break; + } + DeleteRetentionPolicy deleteRetentionPolicy = null; + if (this.enableShareDeleteRetentionPolicy != null) + { + deleteRetentionPolicy = new DeleteRetentionPolicy(); + deleteRetentionPolicy.Enabled = this.enableShareDeleteRetentionPolicy.Value; + if (this.enableShareDeleteRetentionPolicy.Value == true) + { + deleteRetentionPolicy.Days = ShareRetentionDays; + } + } + + FileServiceProperties serviceProperties = this.StorageClient.FileServices.SetServiceProperties(this.ResourceGroupName, this.StorageAccountName, + shareDeleteRetentionPolicy: deleteRetentionPolicy); + + WriteObject(new PSFileServiceProperties(serviceProperties)); + } + } + } +} diff --git a/src/Storage/Storage.Management/Models/PSContainer.cs b/src/Storage/Storage.Management/Models/PSContainer.cs index 91ffbb6f6ca5..87a0e8f4222e 100644 --- a/src/Storage/Storage.Management/Models/PSContainer.cs +++ b/src/Storage/Storage.Management/Models/PSContainer.cs @@ -224,7 +224,7 @@ public class PSImmutabilityPolicy { public PSImmutabilityPolicy(StorageModels.ImmutabilityPolicy policy) { - this.ImmutabilityPeriodSinceCreationInDays = policy.ImmutabilityPeriodSinceCreationInDays; + this.ImmutabilityPeriodSinceCreationInDays = policy.ImmutabilityPeriodSinceCreationInDays.Value; this.State = policy.State; this.Etag = policy.Etag; this.Name = policy.Name; @@ -246,7 +246,7 @@ public class PSImmutabilityPolicyProperties { public PSImmutabilityPolicyProperties(StorageModels.ImmutabilityPolicyProperties policy) { - this.ImmutabilityPeriodSinceCreationInDays = policy.ImmutabilityPeriodSinceCreationInDays; + this.ImmutabilityPeriodSinceCreationInDays = policy.ImmutabilityPeriodSinceCreationInDays.Value; this.State = policy.State; this.Etag = policy.Etag; this.AllowProtectedAppendWrites = policy.AllowProtectedAppendWrites; diff --git a/src/Storage/Storage.Management/Models/PSFileServiceProperties.cs b/src/Storage/Storage.Management/Models/PSFileServiceProperties.cs new file mode 100644 index 000000000000..4597292e6fe1 --- /dev/null +++ b/src/Storage/Storage.Management/Models/PSFileServiceProperties.cs @@ -0,0 +1,64 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Internal.Resources.Utilities.Models; +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 FileServiceProperties + /// + public class PSFileServiceProperties + { + [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.Table, Position = 0)] + public string ResourceGroupName { get; set; } + [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.Table, Position = 1)] + public string StorageAccountName { get; set; } + public string Name { get; set; } + public string Id { get; set; } + public string Type { get; set; } + [Ps1Xml(Label = "DeleteRetentionPolicy.Enabled", Target = ViewControl.Table, ScriptBlock = "$_.DeleteRetentionPolicy.Enabled", Position = 2)] + [Ps1Xml(Label = "DeleteRetentionPolicy.Days", Target = ViewControl.Table, ScriptBlock = "$_.DeleteRetentionPolicy.Days", Position = 3)] + public PSDeleteRetentionPolicy ShareDeleteRetentionPolicy { get; set; } + public PSCorsRules Cors { get; set; } + + public PSFileServiceProperties() + { } + + public PSFileServiceProperties(FileServiceProperties policy) + { + this.ResourceGroupName = (new ResourceIdentifier(policy.Id)).ResourceGroupName; + this.StorageAccountName = PSBlobServiceProperties.GetStorageAccountNameFromResourceId(policy.Id); + this.Id = policy.Id; + this.Name = policy.Name; + this.Type = policy.Type; + this.Cors = policy.Cors is null ? null : new PSCorsRules(policy.Cors); + this.ShareDeleteRetentionPolicy = policy.ShareDeleteRetentionPolicy is null ? null : new PSDeleteRetentionPolicy(policy.ShareDeleteRetentionPolicy); + } + public FileServiceProperties ParseBlobServiceProperties() + { + return new FileServiceProperties + { + Cors = this.Cors is null ? null : this.Cors.ParseCorsRules(), + ShareDeleteRetentionPolicy = this.ShareDeleteRetentionPolicy is null ? null : this.ShareDeleteRetentionPolicy.ParseDeleteRetentionPolicy(), + }; + } + } +} + + \ No newline at end of file diff --git a/src/Storage/Storage.Management/Models/PSShare.cs b/src/Storage/Storage.Management/Models/PSShare.cs index 8521916abe05..f30a39754ade 100644 --- a/src/Storage/Storage.Management/Models/PSShare.cs +++ b/src/Storage/Storage.Management/Models/PSShare.cs @@ -39,6 +39,16 @@ public PSShare(StorageModels.FileShare share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; + this.Version = share.Version; + this.Deleted = share.Deleted; + this.DeletedTime = share.DeletedTime; + this.RemainingRetentionDays = share.RemainingRetentionDays; + this.EnabledProtocols = share.EnabledProtocols; + this.RootSquash = share.RootSquash; + this.ShareUsageBytes = share.ShareUsageBytes; + this.AccessTier = share.AccessTier; + this.AccessTierChangeTime = share.AccessTierChangeTime; + this.AccessTierStatus = share.AccessTierStatus; } public PSShare(FileShareItem share) @@ -52,6 +62,16 @@ public PSShare(FileShareItem share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; + this.Version = share.Version; + this.Deleted = share.Deleted; + this.DeletedTime = share.DeletedTime; + this.RemainingRetentionDays = share.RemainingRetentionDays; + this.EnabledProtocols = share.EnabledProtocols; + this.RootSquash = share.RootSquash; + this.ShareUsageBytes = share.ShareUsageBytes; + this.AccessTier = share.AccessTier; + this.AccessTierChangeTime = share.AccessTierChangeTime; + this.AccessTierStatus = share.AccessTierStatus; } [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.List, Position = 0)] @@ -78,7 +98,26 @@ public PSShare(FileShareItem share) [Ps1Xml(Label = "LastModifiedTime", Target = ViewControl.List, ScriptBlock = "$_.LastModifiedTime.ToString(\"u\")", Position = 5)] public DateTime? LastModifiedTime { get; set; } - + [Ps1Xml(Label = "Version", Target = ViewControl.List, Position = 7)] + public string Version { get; set; } + + public bool? Deleted { get; private set; } + + [Ps1Xml(Label = "DeletedTime", Target = ViewControl.List, ScriptBlock = "$_.DeletedTime.ToString(\"u\")", Position = 6)] + public DateTime? DeletedTime { get; private set; } + + public int? RemainingRetentionDays { get; private set; } + + public string EnabledProtocols { get; set; } + public string RootSquash { get; set; } + + public string AccessTier { get; set; } + public DateTime? AccessTierChangeTime { get; } + public string AccessTierStatus { get; } + + public long? ShareUsageBytes { get; } + + public static string ParseResourceGroupFromId(string idFromServer) { if (!string.IsNullOrEmpty(idFromServer)) diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index 9e45e14b631d..56bc1429b530 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -277,6 +277,54 @@ + + Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties + + Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + StorageAccountName + + + Left + ResourceGroupName + + + Left + $_.ShareDeleteRetentionPolicy.Enabled + + + Left + $_.ShareDeleteRetentionPolicy.Days + + + + + + Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties @@ -336,6 +384,10 @@ Microsoft.Azure.Commands.Management.Storage.Models.PSShare + + $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName + + @@ -344,23 +396,27 @@ Left - + Left - + Left - + Left - + Left - + + + + Left + @@ -372,23 +428,27 @@ Left - StorageAccountName + QuotaGiB Left - ResourceGroupName + EnabledProtocol Left - Etag + AccessTier Left - QuotaGiB + Deleted + + + Left + Version Left - $_.LastModifiedTime.ToString("u") + ShareUsageBytes diff --git a/src/Storage/Storage.Management/help/Az.Storage.md b/src/Storage/Storage.Management/help/Az.Storage.md index 45267cd1795d..6719d1e25ea8 100644 --- a/src/Storage/Storage.Management/help/Az.Storage.md +++ b/src/Storage/Storage.Management/help/Az.Storage.md @@ -116,6 +116,9 @@ Gets the state of a copy operation. ### [Get-AzStorageFileHandle](Get-AzStorageFileHandle.md) Lists file handles of a file share, a file directory or a file. +### [Get-AzStorageFileServiceProperty](Get-AzStorageFileServiceProperty.md) +Gets service properties for Azure Storage File services. + ### [Get-AzStorageObjectReplicationPolicy](Get-AzStorageObjectReplicationPolicy.md) Gets or lists object replication policy of a Storage account. @@ -302,6 +305,9 @@ Removes a storage table. ### [Remove-AzStorageTableStoredAccessPolicy](Remove-AzStorageTableStoredAccessPolicy.md) Removes a stored access policy from an Azure storage table. +### [Restore-AzRmStorageShare](Restore-AzRmStorageShare.md) +Restores a deleted file share. + ### [Restore-AzStorageBlobRange](Restore-AzStorageBlobRange.md) Restores a Storage account for specific blob ranges. @@ -392,6 +398,9 @@ Modifies the service properties for the Azure Storage Blob service. ### [Update-AzStorageEncryptionScope](Update-AzStorageEncryptionScope.md) Modify an encryption scope for a Storage account. +### [Update-AzStorageFileServiceProperty](Update-AzStorageFileServiceProperty.md) +Modifies the service properties for the Azure Storage File service. + ### [Update-AzStorageServiceProperty](Update-AzStorageServiceProperty.md) Modifies the properties for the Azure Storage service. diff --git a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md index c3478636537a..9753c2e11fdf 100644 --- a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md @@ -14,20 +14,31 @@ Gets or lists Storage file shares. ### AccountName (Default) ``` +Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-IncludeDeleted] + [-DefaultProfile ] [] +``` + +### AccountNameSingle +``` Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-Name ] [-DefaultProfile ] [] ``` +### AccountObjectSingle +``` +Get-AzRmStorageShare -StorageAccount -Name + [-DefaultProfile ] [] +``` + ### AccountObject ``` -Get-AzRmStorageShare -StorageAccount [-Name ] +Get-AzRmStorageShare -StorageAccount [-IncludeDeleted] [-DefaultProfile ] [] ``` ### ShareResourceId ``` -Get-AzRmStorageShare [-ResourceId] [-Name ] [-DefaultProfile ] - [] +Get-AzRmStorageShare [-ResourceId] [-DefaultProfile ] [] ``` ## DESCRIPTION @@ -37,38 +48,58 @@ The **Get-AzRmStorageShare** cmdlet gets or lists Storage file shares. ### Example 1: Get a Storage file share with Storage account name and share name ``` -PS C:\>Get-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" +PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -myshare myStorageAccount myResourceGroup "0x8D71F03028DDDC9" 5120 2019-08-12 08:56:48Z + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +myshare 5120 ``` This command gets a Storage file share with Storage account name and share name. ### Example 2: List all Storage file shares of a Storage account ``` -PS C:\>Get-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" +PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -share1 myStorageAccount myResourceGroup "0x8D71F03028DDDC9" 5120 2019-08-12 08:56:48Z -share2 myStorageAccount myResourceGroup "0x8D6FF862774FE57" 5120 2019-07-03 07:14:57Z +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +share1 5120 TransactionOptimized +share2 5120 TransactionOptimized ``` This command lists all Storage file shares of a Storage account with Storage account name. ### Example 3: Get a Storage blob container with Storage account object and container name. ``` -Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" | Get-AzRmStorageShare -Name "myshare" +Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Get-AzRmStorageShare -Name "myshare" -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -myshare myStorageAccount myResourceGroup "0x8D71F03028DDDC9" 5120 2019-08-12 08:56:48Z + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +myshare 5120 ``` This command gets a Storage blob container with Storage account object and container name. +### Example 4: List all Storage file shares of a Storage account, include the deleted shares +``` +PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -IncludeDeleted + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +test 100 TransactionOptimized +share1 100 TransactionOptimized True 01D61FD1FC5498B6 +``` + +This command lists all Storage file shares include the deleted shares of a Storage account with Storage account name. + ## PARAMETERS ### -DefaultProfile @@ -86,12 +117,27 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -IncludeDeleted +Include deleted shares, by default list shares won't include deleted shares + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Name Share Name ```yaml Type: System.String -Parameter Sets: (All) +Parameter Sets: AccountNameSingle Aliases: N, ShareName Required: False @@ -101,12 +147,24 @@ Accept pipeline input: False Accept wildcard characters: False ``` +```yaml +Type: System.String +Parameter Sets: AccountObjectSingle +Aliases: N, ShareName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ResourceGroupName Resource Group Name. ```yaml Type: System.String -Parameter Sets: AccountName +Parameter Sets: AccountName, AccountNameSingle Aliases: Required: True @@ -136,7 +194,7 @@ Storage account object ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount -Parameter Sets: AccountObject +Parameter Sets: AccountObjectSingle, AccountObject Aliases: Required: True @@ -151,7 +209,7 @@ Storage Account Name. ```yaml Type: System.String -Parameter Sets: AccountName +Parameter Sets: AccountName, AccountNameSingle Aliases: AccountName Required: True @@ -162,7 +220,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Get-AzStorageFileServiceProperty.md b/src/Storage/Storage.Management/help/Get-AzStorageFileServiceProperty.md new file mode 100644 index 000000000000..4e4eeebb1225 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzStorageFileServiceProperty.md @@ -0,0 +1,141 @@ +--- +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-azstoragefileserviceproperty +schema: 2.0.0 +--- + +# Get-AzStorageFileServiceProperty + +## SYNOPSIS +Gets service properties for Azure Storage File services. + +## SYNTAX + +### AccountName (Default) +``` +Get-AzStorageFileServiceProperty [-ResourceGroupName] [-StorageAccountName] + [-DefaultProfile ] [] +``` + +### AccountObject +``` +Get-AzStorageFileServiceProperty -StorageAccount [-DefaultProfile ] + [] +``` + +### FileServicePropertiesResourceId +``` +Get-AzStorageFileServiceProperty [-ResourceId] [-DefaultProfile ] + [] +``` + +## DESCRIPTION +The **Get-AzStorageFileServiceProperty** cmdlet gets the service properties for Azure Storage File services. + +## EXAMPLES + +### Example 1: Get Azure Storage File services property of a specified Storage Account +```powershell +PS C:\> Get-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" + +StorageAccountName ResourceGroupName ShareDeleteRetentionPolicy.Enabled ShareDeleteRetentionPolicy.Days +------------------ ----------------- ---------------------------------- ------------------------------- +mystorageaccount myresourcegroup True 5 +``` + +This command gets the File services property of a specified 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 +``` + +### -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 +``` + +### -ResourceId +Input a Storage account Resource Id, or a File service properties Resource Id. + +```yaml +Type: System.String +Parameter Sets: FileServicePropertiesResourceId +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByPropertyName) +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, Name + +Required: True +Position: 1 +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md index 6cd0a5c1be7a..253faf5cb191 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md @@ -32,22 +32,26 @@ The **New-AzRmStorageShare** cmdlet creates a Storage file share. ### Example 1: Create a Storage file share with Storage account name and share name, with metadata and share quota as 100 GiB. ``` -PS C:\>New-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -QuotaGiB 100 -Metadata @{"tag1" = "value1"; "tag2" = "value2" } +PS C:\>New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 100 -Metadata @{"tag1" = "value1"; "tag2" = "value2" } -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -myshare myStorageAccount myResourceGroup + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +myshare ``` This command creates a Storage file share with metadata and share quota as 100 GiB. ### Example 2: Create a Storage file share with Storage account object ``` -Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" | New-AzRmStorageShare -Name "myshare" +Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | New-AzRmStorageShare -Name "myshare" + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -myshare myStorageAccount myResourceGroup +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +myshare ``` This command creates a Storage file share with Storage account object and share name. @@ -191,7 +195,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md index 155edbfcc2ef..12e5467b9d15 100644 --- a/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md @@ -233,7 +233,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Restore-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Restore-AzRmStorageShare.md new file mode 100644 index 000000000000..db11b6ed580d --- /dev/null +++ b/src/Storage/Storage.Management/help/Restore-AzRmStorageShare.md @@ -0,0 +1,217 @@ +--- +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/restore-azrmstorageshare +schema: 2.0.0 +--- + +# Restore-AzRmStorageShare + +## SYNOPSIS +Restores a deleted file share. + +## SYNTAX + +### AccountName (Default) +``` +Restore-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] -Name + -DeletedShareVersion [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### AccountObject +``` +Restore-AzRmStorageShare -StorageAccount -Name -DeletedShareVersion + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### ShareObject +``` +Restore-AzRmStorageShare -InputObject [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Restore-AzRmStorageShare** cmdlet restores a deleted file share within a valid retention days if share soft delete is enabled. + +## EXAMPLES + +### Example 1: Remove and restore a share +```powershell +PS C:\> Remove-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -Force + +PS C:\> Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IncludeDeleted + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +test 100 TransactionOptimized +share1 100 TransactionOptimized True 01D61FD1FC5498B6 + +PS C:\> Restore-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -DeletedShareVersion 01D61FD1FC5498B6 + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +share1 100 +``` + +This command first delete a file share, and then list shares and see the deleted share version, finally restore it back to a normal share. +Need enabled share soft delete with Update-AzStorageFileServiceProperty, before delete the share. + +## 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 +``` + +### -DeletedShareVersion +Deleted Share Version, which will be restored from. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Deleted Share object + +```yaml +Type: Microsoft.Azure.Commands.Management.Storage.Models.PSShare +Parameter Sets: ShareObject +Aliases: Share + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Deleted Share Name, which will be restored. + +```yaml +Type: System.String +Parameter Sets: AccountName, AccountObject +Aliases: N, ShareName + +Required: True +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 +``` + +### -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 + +### Microsoft.Azure.Commands.Management.Storage.Models.PSShare + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSShare + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md index 7b40e4a2ac85..1dbde2657987 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md @@ -44,13 +44,15 @@ The **New-AzRmStorageShare** cmdlet modifies a Storage file share. ### Example 1: Modifies a Storage file share's metadata and share quota with Storage account name and share name ``` -PS C:\>$share = Update-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -QuotaGiB 200 -Metadata @{tag0="value0";tag1="value1"} +PS C:\>$share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 200 -Metadata @{tag0="value0";tag1="value1"} PS C:\>$share -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -myshare myStorageAccount myResourceGroup 200 + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +myshare 200 PS C:\>$share.Metadata @@ -72,12 +74,14 @@ This command modifies metadata on a Storage file share with Storage account obje ### Example 3: Modifies share quota for all Storage file shares in a Storage account with pipeline ``` -PS C:\>Get-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" | Update-AzRmStorageShare -QuotaGiB 5000 +PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Update-AzRmStorageShare -QuotaGiB 5000 + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name StorageAccountName ResourceGroupName Etag QuotaGiB LastModifiedTime ----- ------------------ ----------------- ---- -------- ---------------- -share1 myStorageAccount myResourceGroup 5000 -share2 myStorageAccount myResourceGroup 5000 +Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes +---- -------- --------------- ---------- ------- ------- --------------- +share1 5000 +share2 5000 ``` This command modifies share quota as 5000 GiB for all Storage file shares in a Storage account with pipeline. @@ -251,7 +255,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Update-AzStorageFileServiceProperty.md b/src/Storage/Storage.Management/help/Update-AzStorageFileServiceProperty.md new file mode 100644 index 000000000000..ef8053ec3aae --- /dev/null +++ b/src/Storage/Storage.Management/help/Update-AzStorageFileServiceProperty.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/update-azstoragefileserviceproperty +schema: 2.0.0 +--- + +# Update-AzStorageFileServiceProperty + +## SYNOPSIS +Modifies the service properties for the Azure Storage File service. + +## SYNTAX + +### AccountName (Default) +``` +Update-AzStorageFileServiceProperty [-ResourceGroupName] [-StorageAccountName] + [-EnableShareDeleteRetentionPolicy ] [-ShareRetentionDays ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### AccountObject +``` +Update-AzStorageFileServiceProperty -StorageAccount + [-EnableShareDeleteRetentionPolicy ] [-ShareRetentionDays ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### FileServicePropertiesResourceId +``` +Update-AzStorageFileServiceProperty [-ResourceId] [-EnableShareDeleteRetentionPolicy ] + [-ShareRetentionDays ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Update-AzStorageFileServiceProperty** cmdlet modifies the service properties for the Azure Storage File service. + +## EXAMPLES + +### Example 1: Enable File share softdelete +```powershell +PS C:\> Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableShareDeleteRetentionPolicy $true -ShareRetentionDays 5 + +StorageAccountName ResourceGroupName ShareDeleteRetentionPolicy.Enabled ShareDeleteRetentionPolicy.Days +------------------ ----------------- ---------------------------------- ------------------------------- +mystorageaccount myresourcegroup True 5 +``` + +This command enables File share softdelete delete with retention days as 5 + +## 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 +``` + +### -EnableShareDeleteRetentionPolicy +Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. + +```yaml +Type: System.Boolean +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 +``` + +### -ResourceId +Input a Storage account Resource Id, or a File service properties Resource Id. + +```yaml +Type: System.String +Parameter Sets: FileServicePropertiesResourceId +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ShareRetentionDays +Sets the number of retention days for the share DeleteRetentionPolicy. +The value should only be set when enable share Delete Retention Policy. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: Days, RetentionDays + +Required: False +Position: Named +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, Name + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +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 + +## OUTPUTS + +### Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties + +## NOTES + +## RELATED LINKS diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv index bd9325d85663..2b3e6d547680 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv @@ -161,4 +161,7 @@ "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.UpdateAzureStorageShareCommand","Update-AzRmStorageShare","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.SetAzureStorageContainerImmutabilityPolicyCommand","Set-AzRmStorageContainerImmutabilityPolicy","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy'." "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.InvokeAzureStorageAccountFailoverCommand","Invoke-AzStorageAccountFailover","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." -"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.RevokeAzureStorageAccountUserDelegationKeysCommand","Revoke-AzStorageAccountUserDelegationKeys","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." \ No newline at end of file +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.RevokeAzureStorageAccountUserDelegationKeysCommand","Revoke-AzStorageAccountUserDelegationKeys","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set 'AccountObject' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set 'AccountObject' back to cmdlet 'Get-AzRmStorageShare'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set 'ShareResourceId' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set 'ShareResourceId' back to cmdlet 'Get-AzRmStorageShare'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Get-AzRmStorageShare'." From 88992c82ae018c6a92d0a073ed1985a9f77ec6e2 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Wed, 6 May 2020 22:54:13 +0800 Subject: [PATCH 11/21] [Storage] fix CI failure --- src/Synapse/Synapse.Test/Synapse.Test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Synapse/Synapse.Test/Synapse.Test.csproj b/src/Synapse/Synapse.Test/Synapse.Test.csproj index 518d0c68ac2c..b4249ba89678 100644 --- a/src/Synapse/Synapse.Test/Synapse.Test.csproj +++ b/src/Synapse/Synapse.Test/Synapse.Test.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file From a71b6470794157f27d31c9ebefad8b80f95be839 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Tue, 12 May 2020 18:08:10 +0800 Subject: [PATCH 12/21] Fix a CI failure --- .../ApplicationInsights.Test/ApplicationInsights.Test.csproj | 2 +- .../OperationalInsights.Test/OperationalInsights.Test.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj b/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj index 1d2aea7f42e2..450506ca57e0 100644 --- a/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj +++ b/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj b/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj index 48daf53df70f..41a071ad465d 100644 --- a/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj +++ b/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file From bc2146584364ce4208319ae1467bcb7991d58d8e Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Fri, 15 May 2020 11:41:56 +0800 Subject: [PATCH 13/21] [Storage] Support NFS (#11900) --- .../ScenarioTests/StorageFileTests.ps1 | 16 +- .../TestStorageFileShare.json | 793 +++++++++--------- src/Storage/Storage.Management/ChangeLog.md | 3 + .../File/NewAzureStorageShare.cs | 27 +- .../File/UpdateAzureStorageShare.cs | 13 +- .../Storage.Management/Models/PSShare.cs | 14 +- .../Storage.Management.format.ps1xml | 4 +- .../help/Get-AzRmStorageShare.md | 16 +- .../help/New-AzRmStorageShare.md | 67 +- .../help/Update-AzRmStorageShare.md | 52 +- 10 files changed, 579 insertions(+), 426 deletions(-) diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 index 89fa951a8f1f..6a56cce3901f 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 @@ -28,7 +28,7 @@ function Test-StorageFileShare # Test $stoname = 'sto' + $rgname; $stotype = 'Standard_GRS'; - $loc = Get-ProviderLocation ResourceManagement; + $loc = Get-ProviderLocation_Canary ResourceManagement; $kind = 'StorageV2' $shareName = "share"+ $rgname @@ -68,13 +68,25 @@ function Test-StorageFileShare $quotaGiB = 300 $metadata = @{tag0="value0";tag1="value1";tag2="value2";tag3="value3"} $shareName2 = "share2"+ $rgname - $stos | New-AzRmStorageShare -Name $shareName2 -QuotaGiB $quotaGiB -Metadata $metadata + $stos | New-AzRmStorageShare -Name $shareName2 -QuotaGiB $quotaGiB -Metadata $metadata -EnabledProtocol NFS -RootSquash RootSquash + $share = $stos | Get-AzRmStorageShare -Name $shareName2 + Assert-AreEqual $rgname $share.ResourceGroupName + Assert-AreEqual $stoname $share.StorageAccountName + Assert-AreEqual $shareName2 $share.Name + Assert-AreEqual $quotaGiB $share.QuotaGiB + Assert-AreEqual $metadata.Count $share.Metadata.Count + #Assert-AreEqual "NFS" $share.EnabledProtocols + #Assert-AreEqual "RootSquash" $share.RootSquash + + Update-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName2 -RootSquash NoRootSquash $share = $stos | Get-AzRmStorageShare -Name $shareName2 Assert-AreEqual $rgname $share.ResourceGroupName Assert-AreEqual $stoname $share.StorageAccountName Assert-AreEqual $shareName2 $share.Name Assert-AreEqual $quotaGiB $share.QuotaGiB Assert-AreEqual $metadata.Count $share.Metadata.Count + #Assert-AreEqual "NFS" $share.EnabledProtocols + #Assert-AreEqual "NoRootSquash" $share.RootSquash $shares = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname Assert-AreEqual 2 $shares.Count diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json index cbfc353e2a87..ee0557bf0f37 100644 --- a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json @@ -1,88 +1,28 @@ { "Entries": [ { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "00e71e11-754f-453c-9a86-feb769faa918" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.27817.03", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" - ] - }, - "ResponseHeaders": { - "Cache-Control": [ - "no-cache" - ], - "Pragma": [ - "no-cache" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "11999" - ], - "x-ms-request-id": [ - "54348d59-3531-4182-ad7d-6867b23e4967" - ], - "x-ms-correlation-request-id": [ - "54348d59-3531-4182-ad7d-6867b23e4967" - ], - "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045007Z:54348d59-3531-4182-ad7d-6867b23e4967" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "Date": [ - "Tue, 26 Nov 2019 04:50:07 GMT" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Content-Length": [ - "11808" - ] - }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage\",\r\n \"namespace\": \"Microsoft.Storage\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"a6aa9161-5291-40bb-8c5c-923b567bee3b\",\r\n \"roleDefinitionId\": \"070ab87f-0efc-4423-b18b-756f3bdb0236\"\r\n },\r\n {\r\n \"applicationId\": \"e406a681-f3d4-42a8-90b6-c2b029497af1\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"storageAccounts\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/asyncoperations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listAccountSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/listServiceSas\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/blobServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/tableServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/queueServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/fileServices\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\",\r\n \"2016-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deleteVirtualNetworkOrSubnets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usages\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-03-01-preview\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\",\r\n \"2016-05-01\",\r\n \"2016-01-01\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"North Europe\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"East US 2 (Stage)\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2018-11-01\",\r\n \"2018-07-01\",\r\n \"2018-02-01\",\r\n \"2017-10-01\",\r\n \"2017-06-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"storageAccounts/services/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"West US\",\r\n \"East US 2 (Stage)\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"East US 2\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"West US 2\",\r\n \"West Central US\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg4655?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDY1NT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg1463?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"West US\"\r\n}", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "52e38fcf-192c-4388-a040-1b72588ae46a" + "029dfe65-35ac-45fd-a94a-88261c91fdf8" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "29" + "33" ] }, "ResponseHeaders": { @@ -96,13 +36,13 @@ "1199" ], "x-ms-request-id": [ - "d36620ed-65c2-4cd8-8ce0-754d1758b096" + "e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" ], "x-ms-correlation-request-id": [ - "d36620ed-65c2-4cd8-8ce0-754d1758b096" + "e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045011Z:d36620ed-65c2-4cd8-8ce0-754d1758b096" + "SOUTHEASTASIA:20200514T140335Z:e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -111,10 +51,10 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:10 GMT" + "Thu, 14 May 2020 14:03:34 GMT" ], "Content-Length": [ - "177" + "182" ], "Content-Type": [ "application/json; charset=utf-8" @@ -123,26 +63,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655\",\r\n \"name\": \"pstestrg4655\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463\",\r\n \"name\": \"pstestrg1463\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/checkNameAvailability?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "POST", - "RequestBody": "{\r\n \"name\": \"stopstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestBody": "{\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "870f9c4c-6e17-48dd-ab1e-3b4fa5c24f95" + "6ca06586-59a3-42e9-a320-6af39e6cca18" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -159,7 +99,7 @@ "no-cache" ], "x-ms-request-id": [ - "df7f046e-d015-48a3-8ba6-070d010a4c96" + "666b8ac3-ad21-403c-a512-b535d40dd638" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -168,19 +108,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11999" + "11998" ], "x-ms-correlation-request-id": [ - "f35cce5b-8adc-44f2-9ec6-7ff1a057deee" + "1e8c2f97-0250-4ad6-b124-8abbc59844e7" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045012Z:f35cce5b-8adc-44f2-9ec6-7ff1a057deee" + "SOUTHEASTASIA:20200514T140336Z:1e8c2f97-0250-4ad6-b124-8abbc59844e7" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:12 GMT" + "Thu, 14 May 2020 14:03:35 GMT" ], "Content-Length": [ "22" @@ -196,28 +136,28 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"West US\"\r\n}", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "cb039b17-7602-4be2-a8f9-bd9e6ec2d3f9" + "0c035e55-eb0d-4d65-a8ae-bf637434ccdd" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "99" + "103" ] }, "ResponseHeaders": { @@ -228,13 +168,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/westus/asyncoperations/0c04b75b-72bf-4e91-8391-03c9885cdbd6?monitor=true&api-version=2019-06-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/3a121b18-acf5-4835-abe8-b2138241c6a6?monitor=true&api-version=2019-06-01" ], "Retry-After": [ "17" ], "x-ms-request-id": [ - "0c04b75b-72bf-4e91-8391-03c9885cdbd6" + "3a121b18-acf5-4835-abe8-b2138241c6a6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -246,16 +186,16 @@ "1199" ], "x-ms-correlation-request-id": [ - "37cae911-9135-4645-ba11-42122b4b7e6c" + "c335334e-8c31-4f18-afc1-5b074a6268a8" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045018Z:37cae911-9135-4645-ba11-42122b4b7e6c" + "SOUTHEASTASIA:20200514T140344Z:c335334e-8c31-4f18-afc1-5b074a6268a8" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:18 GMT" + "Thu, 14 May 2020 14:03:43 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -271,16 +211,16 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/providers/Microsoft.Storage/locations/westus/asyncoperations/0c04b75b-72bf-4e91-8391-03c9885cdbd6?monitor=true&api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvd2VzdHVzL2FzeW5jb3BlcmF0aW9ucy8wYzA0Yjc1Yi03MmJmLTRlOTEtODM5MS0wM2M5ODg1Y2RiZDY/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/3a121b18-acf5-4835-abe8-b2138241c6a6?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzNhMTIxYjE4LWFjZjUtNDgzNS1hYmU4LWIyMTM4MjQxYzZhNj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -291,7 +231,7 @@ "no-cache" ], "x-ms-request-id": [ - "5e931116-87d0-426b-a969-f6b68aad0fb6" + "e0f0ff0a-194a-4e0e-b32d-6e470e7d2f5b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -300,22 +240,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11998" + "11997" ], "x-ms-correlation-request-id": [ - "62d34d87-0e4c-4f42-8bac-d8b1397e180a" + "871928d0-0691-48f8-8026-4a762be2d6dd" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045035Z:62d34d87-0e4c-4f42-8bac-d8b1397e180a" + "SOUTHEASTASIA:20200514T140401Z:871928d0-0691-48f8-8026-4a762be2d6dd" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:35 GMT" + "Thu, 14 May 2020 14:04:01 GMT" ], "Content-Length": [ - "1277" + "1333" ], "Content-Type": [ "application/json" @@ -324,26 +264,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655\",\r\n \"name\": \"stopstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-26T04:50:17.6271727Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4655.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4655.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4655.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4655.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4655.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4655.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "399f4057-4601-4aed-bc6e-aa2221d0e585" + "e2fc2cc8-416f-4b4c-a16f-75dad54b7db2" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -354,7 +294,7 @@ "no-cache" ], "x-ms-request-id": [ - "74f8eb43-7a96-4876-b06a-c054dce785d3" + "6d8ff08c-8da0-4fff-8d31-d446f09f9996" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -363,22 +303,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11997" + "11996" ], "x-ms-correlation-request-id": [ - "9830d1df-5f20-4e3f-b12d-4c399dd8d7f5" + "4263d026-2bc4-4d52-9aeb-0af9815b4c6c" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045035Z:9830d1df-5f20-4e3f-b12d-4c399dd8d7f5" + "SOUTHEASTASIA:20200514T140402Z:4263d026-2bc4-4d52-9aeb-0af9815b4c6c" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:35 GMT" + "Thu, 14 May 2020 14:04:01 GMT" ], "Content-Length": [ - "1277" + "1333" ], "Content-Type": [ "application/json" @@ -387,26 +327,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655\",\r\n \"name\": \"stopstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-26T04:50:17.6271727Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4655.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4655.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4655.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4655.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4655.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4655.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "03359157-8a6e-4436-964b-3a7763cfa13d" + "c9bad08d-877c-496f-9665-071d93bb96ba" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -417,7 +357,7 @@ "no-cache" ], "x-ms-request-id": [ - "b64d946e-068c-4a12-9b9e-77308e6ac4a6" + "dd0945d8-41f0-496c-bbc0-1148091d5e6b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -426,22 +366,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11996" + "11995" ], "x-ms-correlation-request-id": [ - "505b6d14-2a0c-4676-b4da-40fc4e0d87aa" + "1ad34bdc-4495-4b3f-9446-f2eefd272cf1" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045036Z:505b6d14-2a0c-4676-b4da-40fc4e0d87aa" + "SOUTHEASTASIA:20200514T140402Z:1ad34bdc-4495-4b3f-9446-f2eefd272cf1" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:35 GMT" + "Thu, 14 May 2020 14:04:01 GMT" ], "Content-Length": [ - "1289" + "1345" ], "Content-Type": [ "application/json" @@ -450,26 +390,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655\",\r\n \"name\": \"stopstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"properties\": {\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 \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-26T04:50:17.6740455Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-26T04:50:17.6271727Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg4655.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg4655.z22.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg4655.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg4655.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg4655.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg4655.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PUT", "RequestBody": "{}", "RequestHeaders": { "x-ms-client-request-id": [ - "50e561c0-b123-48df-a78c-9092f62a0156" + "647101ea-f678-465e-ac00-46913d42404d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -486,10 +426,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2DDB0DAA\"" + "\"0x8D7F80FA8630DCA\"" ], "x-ms-request-id": [ - "b2fd8433-d1ff-46a2-8c1a-b60c4b645039" + "6b10ebd9-9d64-4ca2-8a86-f28caac3487c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -501,16 +441,16 @@ "1198" ], "x-ms-correlation-request-id": [ - "d4884d9b-07e6-4c31-b714-57f9c84619df" + "8796f728-aef5-44c2-bf71-3abd265a0cc3" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045037Z:d4884d9b-07e6-4c31-b714-57f9c84619df" + "SOUTHEASTASIA:20200514T140403Z:8796f728-aef5-44c2-bf71-3abd265a0cc3" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:36 GMT" + "Thu, 14 May 2020 14:04:02 GMT" ], "Content-Length": [ "284" @@ -522,26 +462,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "28b320ef-31a5-4d77-a50b-098d7e8c1cc9" + "acbb2884-5981-4fa0-a290-96ffac30ef36" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -552,10 +492,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2DDB0DAA\"" + "\"0x8D7F80FA8630DCA\"" ], "x-ms-request-id": [ - "27e2dfd3-8055-49bb-91ae-f1529b2501e3" + "d71198cb-acd5-4c73-8fa0-c40d7e9f67bd" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -564,22 +504,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11995" + "11994" ], "x-ms-correlation-request-id": [ - "3e3a5a09-fe01-471b-a339-c72893da344a" + "b9d9eab0-6f27-4444-aea6-e765d9271cee" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045037Z:3e3a5a09-fe01-471b-a339-c72893da344a" + "SOUTHEASTASIA:20200514T140403Z:b9d9eab0-6f27-4444-aea6-e765d9271cee" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:37 GMT" + "Thu, 14 May 2020 14:04:02 GMT" ], "Content-Length": [ - "398" + "460" ], "Content-Type": [ "application/json" @@ -588,26 +528,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2DDB0DAA\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2019-11-26T04:50:36Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA8630DCA\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:02Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "c0fcad53-a925-4882-9ddd-d0fecc4a887d" + "1e8ebc49-5088-4f86-ab18-806b77cb24ba" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -618,10 +558,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2E43315E\"" + "\"0x8D7F80FA8F2ED79\"" ], "x-ms-request-id": [ - "a2ef498d-0ad7-4cb1-9029-0f87914d80b2" + "344152aa-db92-469a-b194-749cd6ee0733" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -630,22 +570,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11994" + "11993" ], "x-ms-correlation-request-id": [ - "24281242-14ec-4fb4-afc7-854c734428e6" + "792fce1d-d8f4-47ca-9337-54260d34990b" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045038Z:24281242-14ec-4fb4-afc7-854c734428e6" + "SOUTHEASTASIA:20200514T140404Z:792fce1d-d8f4-47ca-9337-54260d34990b" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:37 GMT" + "Thu, 14 May 2020 14:04:03 GMT" ], "Content-Length": [ - "442" + "504" ], "Content-Type": [ "application/json" @@ -654,26 +594,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2E43315E\\\"\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2019-11-26T04:50:37Z\",\r\n \"shareQuota\": 100\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA8F2ED79\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:03Z\",\r\n \"shareQuota\": 100\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "ff978de5-e947-4bcf-be95-347b5a096809" + "84a2d666-6d9a-4acc-81b7-fe96f116b516" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -684,10 +624,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2EA6C06C\"" + "\"0x8D7F80FA9784317\"" ], "x-ms-request-id": [ - "2281c0ec-34f7-4c85-862b-1b57b0d6b10b" + "2dcde576-7a4f-4ff6-8354-26142cdbe554" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -696,22 +636,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11993" + "11992" ], "x-ms-correlation-request-id": [ - "83e913bb-dadd-4bd6-aa33-fad6bf8adcdb" + "a1052c40-ecb6-4e11-b72f-867f17c7c89d" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045038Z:83e913bb-dadd-4bd6-aa33-fad6bf8adcdb" + "SOUTHEASTASIA:20200514T140405Z:a1052c40-ecb6-4e11-b72f-867f17c7c89d" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:38 GMT" + "Thu, 14 May 2020 14:04:04 GMT" ], "Content-Length": [ - "458" + "520" ], "Content-Type": [ "application/json" @@ -720,26 +660,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2EA6C06C\\\"\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 200\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA9784317\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:04Z\",\r\n \"shareQuota\": 200\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PATCH", - "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "4615e40f-af50-4071-bb3b-96f6931f489e" + "06219f50-8ec2-4a33-b950-a9bd7e9c65cd" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -756,10 +696,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2E43315E\"" + "\"0x8D7F80FA8F2ED79\"" ], "x-ms-request-id": [ - "18a1b051-aace-4464-ae7f-73dd4bc08763" + "54c47bbf-8b1d-433d-bc9b-495a07dec155" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -771,16 +711,16 @@ "1197" ], "x-ms-correlation-request-id": [ - "5b31cfac-3009-4c0a-8e2a-0d9f073a97d3" + "900799bd-43f6-41de-a20f-046f8370231e" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045037Z:5b31cfac-3009-4c0a-8e2a-0d9f073a97d3" + "SOUTHEASTASIA:20200514T140404Z:900799bd-43f6-41de-a20f-046f8370231e" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:37 GMT" + "Thu, 14 May 2020 14:04:03 GMT" ], "Content-Length": [ "361" @@ -792,26 +732,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PATCH", "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "a39d9ebb-c7b8-4f3e-a50b-9688d322b610" + "48268a5c-f25b-4adc-a59a-a4e4c685e1fe" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -828,10 +768,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2EA6C06C\"" + "\"0x8D7F80FA9784317\"" ], "x-ms-request-id": [ - "fecafef2-5440-4ea1-b5a8-22a1c47481fe" + "ec759faa-6b15-424e-b198-9f9cadf0758e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -843,16 +783,16 @@ "1196" ], "x-ms-correlation-request-id": [ - "e82b2908-7f75-4a25-a49c-0a37a1111dda" + "983d395c-413c-4f3b-bda2-30695d9eb028" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045038Z:e82b2908-7f75-4a25-a49c-0a37a1111dda" + "SOUTHEASTASIA:20200514T140404Z:983d395c-413c-4f3b-bda2-30695d9eb028" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:38 GMT" + "Thu, 14 May 2020 14:04:04 GMT" ], "Content-Length": [ "377" @@ -864,32 +804,32 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc0NjU1P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\",\r\n \"tag3\": \"value3\"\r\n },\r\n \"shareQuota\": 300\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\"\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "1172989a-a1e4-43cf-b7a4-b2d3b6257236" + "fa56e77e-1e5e-4d42-9d42-970af187e47f" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "177" + "242" ] }, "ResponseHeaders": { @@ -900,10 +840,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2F059397\"" + "\"0x8D7F80FAA03DBFB\"" ], "x-ms-request-id": [ - "e3edc9ab-6598-4e2f-9e9a-ce5e4d324fa0" + "2aafde97-7939-4b16-a361-7db8338078b2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -915,19 +855,19 @@ "1195" ], "x-ms-correlation-request-id": [ - "422096fd-92d9-4b67-8d48-8e65d9891ddc" + "a0d300ac-5b0e-4f26-ab4c-25c39432b5ae" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045039Z:422096fd-92d9-4b67-8d48-8e65d9891ddc" + "SOUTHEASTASIA:20200514T140405Z:a0d300ac-5b0e-4f26-ab4c-25c39432b5ae" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:38 GMT" + "Thu, 14 May 2020 14:04:05 GMT" ], "Content-Length": [ - "395" + "446" ], "Content-Type": [ "application/json" @@ -936,26 +876,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655\",\r\n \"name\": \"share2pstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\",\r\n \"tag3\": \"value3\"\r\n },\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc0NjU1P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "55894467-e918-43ed-891e-cd0307b20545" + "e039a28f-96b9-450a-a2df-e17556711b6b" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -966,10 +906,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2F059397\"" + "\"0x8D7F80FAA03DBFB\"" ], "x-ms-request-id": [ - "bfd1737c-c5f4-4480-9694-e73b8c68f2ac" + "5d3621e5-8c43-4c51-acf5-8aefcbd44a31" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -978,22 +918,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11992" + "11991" ], "x-ms-correlation-request-id": [ - "1f113453-8290-4666-b36c-461eafdc8409" + "116a3ad3-6768-4b5b-bb4e-78c134afbf4c" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045039Z:1f113453-8290-4666-b36c-461eafdc8409" + "SOUTHEASTASIA:20200514T140406Z:116a3ad3-6768-4b5b-bb4e-78c134afbf4c" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:38 GMT" + "Thu, 14 May 2020 14:04:05 GMT" ], "Content-Length": [ - "476" + "538" ], "Content-Type": [ "application/json" @@ -1002,26 +942,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655\",\r\n \"name\": \"share2pstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2F059397\\\"\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\",\r\n \"tag3\": \"value3\"\r\n },\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA03DBFB\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:05Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc0NjU1P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "b820463d-3cf2-4493-bec9-62d2adc6c582" + "78053128-99b3-4c1c-b408-1c1fd63592d7" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1032,10 +972,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7722C2F059397\"" + "\"0x8D7F80FAA8783BD\"" ], "x-ms-request-id": [ - "1c023257-2842-40d3-a8da-40a06eb274bb" + "39ec2817-ebbb-46a2-8d78-13b285384144" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1044,22 +984,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11989" + "11990" ], "x-ms-correlation-request-id": [ - "de25cd20-d358-4022-a199-4c5a20cdacf0" + "791ff4d5-f39f-45d4-a0b1-4c0b691968f4" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045040Z:de25cd20-d358-4022-a199-4c5a20cdacf0" + "SOUTHEASTASIA:20200514T140407Z:791ff4d5-f39f-45d4-a0b1-4c0b691968f4" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:40 GMT" + "Thu, 14 May 2020 14:04:06 GMT" ], "Content-Length": [ - "476" + "538" ], "Content-Type": [ "application/json" @@ -1068,26 +1008,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655\",\r\n \"name\": \"share2pstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2F059397\\\"\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\",\r\n \"tag3\": \"value3\"\r\n },\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "55991041-052e-461b-9b6d-a48c6abfd6bf" + "5b2c6aff-86a7-4416-8814-a44e11b7bfc0" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1097,8 +1037,11 @@ "Pragma": [ "no-cache" ], + "ETag": [ + "\"0x8D7F80FAA8783BD\"" + ], "x-ms-request-id": [ - "656072e3-cfd8-437c-b6c5-d2d2da7d8809" + "b3799651-016f-47ce-a3a9-671411bfeeb1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1107,22 +1050,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11991" + "11987" ], "x-ms-correlation-request-id": [ - "3b8ded18-96a9-4094-8d44-ff0a4b9488dc" + "60af206c-7232-45cd-af33-735ec06f258d" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045039Z:3b8ded18-96a9-4094-8d44-ff0a4b9488dc" + "SOUTHEASTASIA:20200514T140408Z:60af206c-7232-45cd-af33-735ec06f258d" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:39 GMT" + "Thu, 14 May 2020 14:04:07 GMT" ], "Content-Length": [ - "915" + "538" ], "Content-Type": [ "application/json" @@ -1131,26 +1074,98 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655\",\r\n \"name\": \"share2pstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2F059397\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\",\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655\",\r\n \"name\": \"sharepstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2EA6C06C\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 200,\r\n \"enabledProtocols\": \"SMB\",\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestMethod": "PATCH", + "RequestBody": "{\r\n \"properties\": {\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b6f0cf5d-091a-4638-9595-f54d0492e8dc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "62" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D7F80FAA8783BD\"" + ], + "x-ms-request-id": [ + "f775eb68-985b-4383-acf4-c4fc7b25ae08" + ], + "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": [ + "1194" + ], + "x-ms-correlation-request-id": [ + "33170534-1f1b-4536-b2ae-624f7edcff60" + ], + "x-ms-routing-request-id": [ + "SOUTHEASTASIA:20200514T140406Z:33170534-1f1b-4536-b2ae-624f7edcff60" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 14 May 2020 14:04:06 GMT" + ], + "Content-Length": [ + "329" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "724fa4e0-5884-498b-be7d-fc8f3125d7a0" + "8686f4b4-01f0-4ed9-aeab-cda70f61678a" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1161,7 +1176,7 @@ "no-cache" ], "x-ms-request-id": [ - "e75bca8e-3469-46d8-914d-3263f759640c" + "d39334b7-4816-4076-9318-84c4a9efe8b5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1170,22 +1185,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11990" + "11989" ], "x-ms-correlation-request-id": [ - "12fbcc17-3b1f-483f-b109-b76381c0ef9e" + "cda7d59f-e8bf-45f0-9571-975dbb7a255d" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045040Z:12fbcc17-3b1f-483f-b109-b76381c0ef9e" + "SOUTHEASTASIA:20200514T140407Z:cda7d59f-e8bf-45f0-9571-975dbb7a255d" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:39 GMT" + "Thu, 14 May 2020 14:04:06 GMT" ], "Content-Length": [ - "464" + "983" ], "Content-Type": [ "application/json" @@ -1194,26 +1209,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655\",\r\n \"name\": \"share2pstestrg4655\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7722C2F059397\\\"\",\r\n \"properties\": {\r\n \"lastModifiedTime\": \"2019-11-26T04:50:38Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\",\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA9784317\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:04Z\",\r\n \"shareQuota\": 200,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "34c35f09-1ad4-497f-89d4-55eaeca33582" + "6fb0d399-a4cc-4710-84eb-659a3ee81ece" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1224,7 +1239,7 @@ "no-cache" ], "x-ms-request-id": [ - "7e61952d-98d7-400a-94ea-86b47af0199e" + "149110e8-f13e-4866-9000-55ef202f21f3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1236,19 +1251,19 @@ "11988" ], "x-ms-correlation-request-id": [ - "e025dc7c-5370-4f60-b66f-da93eaa89746" + "c57fe2e4-8b9b-4d24-89f2-3c374ed3329a" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045041Z:e025dc7c-5370-4f60-b66f-da93eaa89746" + "SOUTHEASTASIA:20200514T140408Z:c57fe2e4-8b9b-4d24-89f2-3c374ed3329a" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:40 GMT" + "Thu, 14 May 2020 14:04:07 GMT" ], "Content-Length": [ - "12" + "498" ], "Content-Type": [ "application/json" @@ -1257,26 +1272,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": []\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/sharepstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzQ2NTU/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", - "RequestMethod": "DELETE", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "18f60048-c2b9-4426-af7a-17cae1bca85a" + "80043a0b-5f9b-4dcb-bfb2-4b9faa6a2857" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1287,7 +1302,7 @@ "no-cache" ], "x-ms-request-id": [ - "93154bc9-e810-4e80-affb-6b1d1c8ea6e5" + "e6704b95-24c6-4a91-ad49-1218395c8f70" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1295,51 +1310,51 @@ "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-ratelimit-remaining-subscription-reads": [ + "11986" ], "x-ms-correlation-request-id": [ - "93aaf981-00da-4c03-9819-8d46a91a6251" + "1666344d-dbc1-4357-9939-0c6388409bf4" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045039Z:93aaf981-00da-4c03-9819-8d46a91a6251" + "SOUTHEASTASIA:20200514T140409Z:1666344d-dbc1-4357-9939-0c6388409bf4" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:39 GMT" + "Thu, 14 May 2020 14:04:08 GMT" + ], + "Content-Length": [ + "12" ], "Content-Type": [ - "text/plain; charset=utf-8" + "application/json" ], "Expires": [ "-1" - ], - "Content-Length": [ - "0" ] }, - "ResponseBody": "", + "ResponseBody": "{\r\n \"value\": []\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655/fileServices/default/shares/share2pstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NS9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc0NjU1P2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "089e645f-88e3-407c-b889-7545f72a661e" + "49d63ae0-62b4-4d61-b296-55b9d03b1ca4" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1350,7 +1365,7 @@ "no-cache" ], "x-ms-request-id": [ - "6653a710-f674-4dd0-ae87-36e91166edfa" + "42b72fc6-686c-4b4c-8250-b59ae2323979" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1362,16 +1377,16 @@ "14998" ], "x-ms-correlation-request-id": [ - "b34f5839-6ded-4776-bb5d-0533f993e2bf" + "19d8b555-4c76-4a95-b137-111c5546f8bd" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045040Z:b34f5839-6ded-4776-bb5d-0533f993e2bf" + "SOUTHEASTASIA:20200514T140407Z:19d8b555-4c76-4a95-b137-111c5546f8bd" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:40 GMT" + "Thu, 14 May 2020 14:04:07 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -1387,22 +1402,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourceGroups/pstestrg4655/providers/Microsoft.Storage/storageAccounts/stopstestrg4655?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNDY1NS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNDY1NT9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "d2c66060-9052-4e66-b882-8305c5a944ac" + "57c9bbd0-09b9-40c6-8933-f7c270d75b5d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/14.1.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1413,7 +1428,7 @@ "no-cache" ], "x-ms-request-id": [ - "67e7c6fb-e94b-4345-b6dd-44179cb9216e" + "c8ec84cf-8748-4998-8e74-a05d201c005d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1425,16 +1440,16 @@ "14997" ], "x-ms-correlation-request-id": [ - "cb93c33d-b111-4bb9-9508-ae150eb36ea5" + "95887c05-1822-4770-8a38-2f767e16db25" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045043Z:cb93c33d-b111-4bb9-9508-ae150eb36ea5" + "SOUTHEASTASIA:20200514T140408Z:95887c05-1822-4770-8a38-2f767e16db25" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:43 GMT" + "Thu, 14 May 2020 14:04:08 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -1450,22 +1465,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/resourcegroups/pstestrg4655?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNDY1NT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "c5725235-d0ae-495d-ac0a-d42b4f305670" + "02d0bf40-8e84-4271-a45a-f1daa44f3be4" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" ] }, "ResponseHeaders": { @@ -1475,32 +1490,32 @@ "Pragma": [ "no-cache" ], - "Location": [ - "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + "x-ms-request-id": [ + "feb34cea-75d0-4d51-9298-c6fb10c9ee99" ], - "Retry-After": [ - "15" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "x-ms-ratelimit-remaining-subscription-deletes": [ - "14999" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "x-ms-request-id": [ - "013ddfb2-1712-4462-8133-23b2e8c9d270" + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14996" ], "x-ms-correlation-request-id": [ - "013ddfb2-1712-4462-8133-23b2e8c9d270" + "29910bc1-ca94-47e5-938b-1f79521b65e0" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045047Z:013ddfb2-1712-4462-8133-23b2e8c9d270" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "SOUTHEASTASIA:20200514T140412Z:29910bc1-ca94-47e5-938b-1f79521b65e0" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:50:46 GMT" + "Thu, 14 May 2020 14:04:11 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" ], "Expires": [ "-1" @@ -1510,19 +1525,25 @@ ] }, "ResponseBody": "", - "StatusCode": 202 + "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelEyTlRVdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", - "RequestMethod": "GET", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg1463?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { + "x-ms-client-request-id": [ + "6325695f-c4f2-473d-b16e-b688881e0595" + ], + "Accept-Language": [ + "en-US" + ], "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ] }, "ResponseHeaders": { @@ -1533,22 +1554,22 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "11998" + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" ], "x-ms-request-id": [ - "f0e55c5c-9ec2-4f09-be99-6b11e0bf7cf3" + "f0b4394a-ad2e-43a8-a700-abc7460ca545" ], "x-ms-correlation-request-id": [ - "f0e55c5c-9ec2-4f09-be99-6b11e0bf7cf3" + "f0b4394a-ad2e-43a8-a700-abc7460ca545" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045103Z:f0e55c5c-9ec2-4f09-be99-6b11e0bf7cf3" + "SOUTHEASTASIA:20200514T140416Z:f0b4394a-ad2e-43a8-a700-abc7460ca545" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1557,7 +1578,7 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:51:03 GMT" + "Thu, 14 May 2020 14:04:16 GMT" ], "Expires": [ "-1" @@ -1570,16 +1591,16 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelEyTlRVdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ] }, "ResponseHeaders": { @@ -1590,22 +1611,22 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11997" + "11999" ], "x-ms-request-id": [ - "253d130a-7a0a-41e0-9d16-e7ec12c28e9d" + "22c9c0ee-acac-4a3d-b417-1745376a8e91" ], "x-ms-correlation-request-id": [ - "253d130a-7a0a-41e0-9d16-e7ec12c28e9d" + "22c9c0ee-acac-4a3d-b417-1745376a8e91" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045118Z:253d130a-7a0a-41e0-9d16-e7ec12c28e9d" + "SOUTHEASTASIA:20200514T140432Z:22c9c0ee-acac-4a3d-b417-1745376a8e91" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1614,7 +1635,7 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:51:18 GMT" + "Thu, 14 May 2020 14:04:32 GMT" ], "Expires": [ "-1" @@ -1627,16 +1648,16 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelEyTlRVdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ] }, "ResponseHeaders": { @@ -1647,22 +1668,22 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11996" + "11998" ], "x-ms-request-id": [ - "ca0d800c-a804-4866-bb6d-ad183e5b3cf6" + "0017d87c-f152-4785-8db5-a80e0f53b56d" ], "x-ms-correlation-request-id": [ - "ca0d800c-a804-4866-bb6d-ad183e5b3cf6" + "0017d87c-f152-4785-8db5-a80e0f53b56d" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045134Z:ca0d800c-a804-4866-bb6d-ad183e5b3cf6" + "SOUTHEASTASIA:20200514T140448Z:0017d87c-f152-4785-8db5-a80e0f53b56d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1671,7 +1692,7 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:51:33 GMT" + "Thu, 14 May 2020 14:04:47 GMT" ], "Expires": [ "-1" @@ -1684,16 +1705,16 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelEyTlRVdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ] }, "ResponseHeaders": { @@ -1704,16 +1725,16 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11995" + "11997" ], "x-ms-request-id": [ - "070fb3cc-c699-42fe-9221-5657e5e5471a" + "191ba594-cace-4cd0-8ed9-90753650df16" ], "x-ms-correlation-request-id": [ - "070fb3cc-c699-42fe-9221-5657e5e5471a" + "191ba594-cace-4cd0-8ed9-90753650df16" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045149Z:070fb3cc-c699-42fe-9221-5657e5e5471a" + "SOUTHEASTASIA:20200514T140503Z:191ba594-cace-4cd0-8ed9-90753650df16" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1722,7 +1743,7 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:51:48 GMT" + "Thu, 14 May 2020 14:05:03 GMT" ], "Expires": [ "-1" @@ -1735,16 +1756,16 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/ce4a7590-4722-4bcf-a2c6-e473e9f11778/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzQ2NTUtV0VTVFVTIiwiam9iTG9jYXRpb24iOiJ3ZXN0dXMifQ?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvY2U0YTc1OTAtNDcyMi00YmNmLWEyYzYtZTQ3M2U5ZjExNzc4L29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSelEyTlRVdFYwVlRWRlZUSWl3aWFtOWlURzlqWVhScGIyNGlPaUozWlhOMGRYTWlmUT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.27817.03", + "FxVersion/4.6.28207.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.2" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" ] }, "ResponseHeaders": { @@ -1755,16 +1776,16 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11994" + "11996" ], "x-ms-request-id": [ - "dee1476e-911c-4880-976f-75214f87420c" + "219e032f-127f-46ed-a295-9df7fcc69208" ], "x-ms-correlation-request-id": [ - "dee1476e-911c-4880-976f-75214f87420c" + "219e032f-127f-46ed-a295-9df7fcc69208" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20191126T045149Z:dee1476e-911c-4880-976f-75214f87420c" + "SOUTHEASTASIA:20200514T140504Z:219e032f-127f-46ed-a295-9df7fcc69208" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1773,7 +1794,7 @@ "nosniff" ], "Date": [ - "Tue, 26 Nov 2019 04:51:49 GMT" + "Thu, 14 May 2020 14:05:03 GMT" ], "Expires": [ "-1" @@ -1788,10 +1809,10 @@ ], "Names": { "Test-StorageFileShare": [ - "pstestrg4655" + "pstestrg1463" ] }, "Variables": { - "SubscriptionId": "ce4a7590-4722-4bcf-a2c6-e473e9f11778" + "SubscriptionId": "45b60d85-fd72-427a-a708-f994d26e593e" } } \ No newline at end of file diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index c813e30fbc41..bd8d0aae690c 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -27,6 +27,9 @@ - `Restore-AzRmStorageShare` * Support enable/disable versioning on Blob Service of a Storage account - `Update-AzStorageBlobServiceProperty` +* Support create file share with NFS/SMB enabledEnabledProtocol and RootSquash, and update share with RootSquash + - `New-AzRmStorageShare` + - `Update-AzRmStorageShare` * Support Set/Get/Remove Object Replication Policy on Storage accounts - `New-AzStorageObjectReplicationPolicyRule` - `Set-AzStorageObjectReplicationPolicy` diff --git a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs index 77b897fcfc7f..87297366108e 100644 --- a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs @@ -87,10 +87,31 @@ public int QuotaGiB [ValidateNotNull] public Hashtable Metadata { get; set; } + [Parameter(Mandatory = false, + HelpMessage = "Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS'")] + [ValidateSet(EnabledProtocols.NFS, + EnabledProtocols.SMB, + IgnoreCase = true)] + public string EnabledProtocol { get; set; } + + [Parameter(Mandatory = false, + HelpMessage = "Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash'")] + [ValidateSet(RootSquashType.NoRootSquash, + RootSquashType.RootSquash, + RootSquashType.AllSquash, + IgnoreCase = true)] + public string RootSquash { get; set; } + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); + if (!string.IsNullOrWhiteSpace(this.RootSquash) + && ! EnabledProtocols.NFS.Equals(this.EnabledProtocol, StringComparison.OrdinalIgnoreCase)) + { + throw new ArgumentException("RootSquash should not be specified when EnabledProtocols is not NFS.", "RootSquash"); + } + if (ShouldProcess(this.Name, "Create share")) { switch (ParameterSetName) @@ -110,10 +131,12 @@ public override void ExecuteCmdlet() this.StorageClient.FileShares.Create( this.ResourceGroupName, this.StorageAccountName, - this.Name, + this.Name, new FileShare( metadata: MetadataDictionary, - shareQuota: shareQuota)); + shareQuota: shareQuota, + enabledProtocols: this.EnabledProtocol, + rootSquash: this.RootSquash)); WriteObject(new PSShare(share)); } diff --git a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs index 0105cc196db3..66dda12627cf 100644 --- a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs @@ -117,7 +117,15 @@ public int QuotaGiB [AllowEmptyCollection] [ValidateNotNull] public Hashtable Metadata { get; set; } - + + [Parameter(Mandatory = false, + HelpMessage = "Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash'")] + [ValidateSet(RootSquashType.NoRootSquash, + RootSquashType.RootSquash, + RootSquashType.AllSquash, + IgnoreCase = true)] + public string RootSquash { get; set; } + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -153,7 +161,8 @@ public override void ExecuteCmdlet() this.Name, new FileShare( metadata: MetadataDictionary, - shareQuota: shareQuota)); + shareQuota: shareQuota, + rootSquash: this.RootSquash)); WriteObject(new PSShare(Share)); } diff --git a/src/Storage/Storage.Management/Models/PSShare.cs b/src/Storage/Storage.Management/Models/PSShare.cs index f30a39754ade..d2f0d7544131 100644 --- a/src/Storage/Storage.Management/Models/PSShare.cs +++ b/src/Storage/Storage.Management/Models/PSShare.cs @@ -39,6 +39,8 @@ public PSShare(StorageModels.FileShare share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; + this.EnabledProtocols = share.EnabledProtocols; + this.RootSquash = share.RootSquash; this.Version = share.Version; this.Deleted = share.Deleted; this.DeletedTime = share.DeletedTime; @@ -62,6 +64,8 @@ public PSShare(FileShareItem share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; + this.EnabledProtocols = share.EnabledProtocols; + this.RootSquash = share.RootSquash; this.Version = share.Version; this.Deleted = share.Deleted; this.DeletedTime = share.DeletedTime; @@ -74,28 +78,26 @@ public PSShare(FileShareItem share) this.AccessTierStatus = share.AccessTierStatus; } - [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.List, Position = 0)] + [Ps1Xml(Label = "ResourceGroupName", Target = ViewControl.Table, Position = 0)] public string ResourceGroupName { get; set; } - [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.List, Position = 1)] + [Ps1Xml(Label = "StorageAccountName", Target = ViewControl.Table, Position = 1)] public string StorageAccountName { get; set; } public string Id { get; set; } - [Ps1Xml(Label = "Name", Target = ViewControl.List, Position = 2)] + [Ps1Xml(Label = "Name", Target = ViewControl.Table, Position = 2)] public string Name { get; set; } public string Type { get; set; } - [Ps1Xml(Label = "Etag", Target = ViewControl.List, Position = 3)] public string Etag { get; set; } - [Ps1Xml(Label = "QuotaGiB", Target = ViewControl.List, Position = 4)] + [Ps1Xml(Label = "QuotaGiB", Target = ViewControl.Table, Position = 3)] public int? QuotaGiB { get; set; } public IDictionary Metadata { get; set; } - [Ps1Xml(Label = "LastModifiedTime", Target = ViewControl.List, ScriptBlock = "$_.LastModifiedTime.ToString(\"u\")", Position = 5)] public DateTime? LastModifiedTime { get; set; } [Ps1Xml(Label = "Version", Target = ViewControl.List, Position = 7)] diff --git a/src/Storage/Storage.Management/Storage.Management.format.ps1xml b/src/Storage/Storage.Management/Storage.Management.format.ps1xml index 56bc1429b530..1d556c0b6a51 100644 --- a/src/Storage/Storage.Management/Storage.Management.format.ps1xml +++ b/src/Storage/Storage.Management/Storage.Management.format.ps1xml @@ -400,7 +400,7 @@ Left - + Left @@ -432,7 +432,7 @@ Left - EnabledProtocol + EnabledProtocols Left diff --git a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md index 9753c2e11fdf..8af8621e8d81 100644 --- a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md @@ -52,8 +52,8 @@ PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccount ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- myshare 5120 ``` @@ -65,8 +65,8 @@ PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccount ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- share1 5120 TransactionOptimized share2 5120 TransactionOptimized ``` @@ -79,8 +79,8 @@ Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "m ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- myshare 5120 ``` @@ -92,8 +92,8 @@ PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccount ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- test 100 TransactionOptimized share1 100 TransactionOptimized True 01D61FD1FC5498B6 ``` diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md index 253faf5cb191..51408466c140 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md @@ -15,14 +15,15 @@ Creates a Storage file share. ### AccountName (Default) ``` New-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] -Name - [-QuotaGiB ] [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-QuotaGiB ] [-Metadata ] [-EnabledProtocol ] [-RootSquash ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` New-AzRmStorageShare -StorageAccount -Name [-QuotaGiB ] - [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-Metadata ] [-EnabledProtocol ] [-RootSquash ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -36,9 +37,9 @@ PS C:\>New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccount ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare ``` This command creates a Storage file share with metadata and share quota as 100 GiB. @@ -49,13 +50,31 @@ Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "m ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare ``` This command creates a Storage file share with Storage account object and share name. +### Example 3: Create a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash +``` +PS C:\>$share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -EnabledProtocol NFS -RootSquash NoRootSquash + +PS C:\> $share + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare NFS + +PS C:\> $share.RootSquash +NoRootSquash +``` + +This command creates a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash. + ## PARAMETERS ### -DefaultProfile @@ -73,6 +92,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnabledProtocol +Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Metadata Share Metadata @@ -133,6 +167,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -RootSquash +Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -StorageAccount Storage account object diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md index 1dbde2657987..1d4c22a8f822 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md @@ -15,26 +15,27 @@ Modifies a Storage file share. ### AccountName (Default) ``` Update-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] -Name - [-QuotaGiB ] [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-QuotaGiB ] [-Metadata ] [-RootSquash ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` Update-AzRmStorageShare -Name -StorageAccount [-QuotaGiB ] - [-Metadata ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-Metadata ] [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] ``` ### ShareResourceId ``` Update-AzRmStorageShare [-ResourceId] [-QuotaGiB ] [-Metadata ] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### ShareObject ``` Update-AzRmStorageShare -InputObject [-QuotaGiB ] [-Metadata ] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -50,8 +51,8 @@ PS C:\>$share ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- myshare 200 PS C:\>$share.Metadata @@ -78,14 +79,32 @@ PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccount ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- share1 5000 share2 5000 ``` This command modifies share quota as 5000 GiB for all Storage file shares in a Storage account with pipeline. +### Example 4: Modifies rootsquash for a file shares in a Storage account +``` +PS C:\>$share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -RootSquash NoRootSquash + +PS C:\>$share + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare + +PS C:\> $share.RootSquash +NoRootSquash +``` + +This command modifies share RootSquash property to NoRootSquash. RootSquash property is only avaialbe on share with EnabledProtocol as NFS. + ## PARAMETERS ### -DefaultProfile @@ -193,6 +212,21 @@ Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` +### -RootSquash +Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -StorageAccount Storage account object From 4258738ac2b60414a37173babe2ebff874c68608 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 21 May 2020 17:30:29 +0800 Subject: [PATCH 14/21] suppress breaking change issues --- .../Exceptions/Az.Storage/BreakingChangeIssues.csv | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv index e69de29bb2d1..35ad6c91a7d4 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv @@ -0,0 +1,4 @@ +"AssemblyFileName","ClassName","Target","Severity","ProblemId","Description","Remediation" +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set 'AccountObject' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set 'AccountObject' back to cmdlet 'Get-AzRmStorageShare'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set 'ShareResourceId' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set 'ShareResourceId' back to cmdlet 'Get-AzRmStorageShare'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.GetAzureStorageShareCommand","Get-AzRmStorageShare","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Get-AzRmStorageShare' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Get-AzRmStorageShare'." \ No newline at end of file From 992f77f125cdc8e42f83fd27f421e6842d3157da Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 21 May 2020 17:52:03 +0800 Subject: [PATCH 15/21] bump up version for Az.Storage --- .../Storage.Management/Az.Storage.psd1 | 76 +++++++------------ src/Storage/Storage.Management/ChangeLog.md | 2 + .../Properties/AssemblyInfo.cs | 4 +- 3 files changed, 33 insertions(+), 49 deletions(-) diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index c884086cf82f..a926a64956a7 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 5/13/2020 +# Generated on: 5/21/2020 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '2.0.0' +ModuleVersion = '2.0.1' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -162,21 +162,22 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'Get-AzStorageFileHandle', 'Close-AzStorageFileHandle', 'New-AzRmStorageShare', 'Remove-AzRmStorageShare', 'Get-AzRmStorageShare', 'Update-AzRmStorageShare', - 'Update-AzStorageFileServiceProperty', + 'Update-AzStorageFileServiceProperty', 'Get-AzStorageFileServiceProperty', 'Restore-AzRmStorageShare', 'Get-AzDataLakeGen2ChildItem', 'Get-AzDataLakeGen2Item', 'New-AzDataLakeGen2Item', 'Move-AzDataLakeGen2Item', 'Remove-AzDataLakeGen2Item', 'Update-AzDataLakeGen2Item', 'Set-AzDataLakeGen2ItemAclObject', 'Get-AzDataLakeGen2ItemContent', - 'Invoke-AzStorageAccountFailover', 'Enable-AzStorageBlobRestorePolicy', 'Disable-AzStorageBlobRestorePolicy', 'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange', 'New-AzStorageEncryptionScope', 'Update-AzStorageEncryptionScope', - 'Get-AzStorageEncryptionScope', - 'New-AzStorageObjectReplicationPolicyRule', 'Set-AzStorageObjectReplicationPolicy', - 'Get-AzStorageObjectReplicationPolicy', 'Remove-AzStorageObjectReplicationPolicy' - + 'Get-AzStorageEncryptionScope', + 'New-AzStorageObjectReplicationPolicyRule', + 'Set-AzStorageObjectReplicationPolicy', + 'Get-AzStorageObjectReplicationPolicy', + 'Remove-AzStorageObjectReplicationPolicy' + # Variables to export from this module # VariablesToExport = @() @@ -219,45 +220,26 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Added ''-AsJob'' to get/list account cmdlet ''Get-AzStorageAccount'' -* Make KeyVersion to optional when update Storage account with KeyvaultEncryption, to support key auto-rotation - - ''Set-AzStorageAccount'' -* Fixed remove Azure File Directory fail with pipeline - - ''Remove-AzStorageDirectory'' -* Fixed [#9880]: Change NetWorkRule DefaultAction value defination to align with swagger. - - ''Update-AzStorageAccountNetworkRuleSet'' - - ''Get-AzStorageAccountNetworkRuleSet'' -* Fixed [#11624]: Skip duplicated rules when add NetworkRules, to avoid server failure - - ''Add-AzStorageAccountNetworkRule'' -* Upgraded Microsoft.Azure.Cosmos.Table SDK to 1.0.7 -* Added a warning message to remind user to list again with ContinuationToken when only part items are returned in list DataLake Gen2 Items, - - ''Get-AzDataLakeGen2ChildItem'' -* Supported to create or update Storage account with Azure Files Active Directory Domain Service Authentication - - ''New-AzStorageAccount'' - - ''Set-AzStorageAccount'' -* Supported to new or list Kerberos keys of Storage account - - ''New-AzStorageAccountKey'' - - ''Get-AzStorageAccountKey'' -* Supported failover Storage account - - ''Invoke-AzStorageAccountFailover'' -* Updated help of ''Get-AzStorageBlobCopyState'' -* Updated help of ''Get-AzStorageFileCopyState'' and ''Start-AzStorageBlobCopy'' -* Integrated Storage client library v12 to Queue and File cmdlets -* Changed output type from CloudFile to AzureStorageFile, the original output will become a child property of the new output - - ''Get-AzStorageFile'' - - ''Remove-AzStorageFile'' - - ''Get-AzStorageFileContent'' - - ''Set-AzStorageFileContent'' - - ''Start-AzStorageFileCopy'' -* Changed output type from CloudFileDirectory to AzureStorageFileDirectory, the original output will become a child property of the new output - - ''New-AzStorageDirectory'' - - ''Remove-AzStorageDirectory'' -* Changed output type from CloudFileShare to AzureStorageFileShare, the original output will become a child property of the new output - - ''Get-AzStorageShare'' - - ''New-AzStorageShare'' - - ''Remove-AzStorageShare'' -* Changed output type from FileShareProperties to AzureStorageFileShare, the original output will become a sub child property of the new output - - ''Set-AzStorageShareQuota''' + ReleaseNotes = '* Support enable/disable/get share soft delete properties on file Service of a Storage account + - ''Update-AzStorageFileServiceProperty'' + - ''Get-AzStorageFileServiceProperty'' +* Support list file shares include the deleted ones of a Storage account, and Get single file share usage + - ''Get-AzRmStorageShare'' +* Support restore a deleted file share + - ''Restore-AzRmStorageShare'' +* Support enable/disable versioning on Blob Service of a Storage account + - ''Update-AzStorageBlobServiceProperty'' +* Support create file share with NFS/SMB enabledEnabledProtocol and RootSquash, and update share with RootSquash + - ''New-AzRmStorageShare'' + - ''Update-AzRmStorageShare'' +* Support Set/Get/Remove Object Replication Policy on Storage accounts + - ''New-AzStorageObjectReplicationPolicyRule'' + - ''Set-AzStorageObjectReplicationPolicy'' + - ''Get-AzStorageObjectReplicationPolicy'' + - ''Remove-AzStorageObjectReplicationPolicy'' +* Supported RoutingPreference settings in create/update Storage account + - ''New-AzStorageAccount'' + - ''Set-AzStorageAccount''' # Prerelease string of this module Prerelease = 'preview' diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 0251bc769d42..2e9e645c85f6 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,8 @@ - Additional information about change #1 --> ## Upcoming Release + +## Version 2.0.1 * Support enable/disable/get share soft delete properties on file Service of a Storage account - `Update-AzStorageFileServiceProperty` - `Get-AzStorageFileServiceProperty` diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index b24d1f9ee9c0..d58a13d1eaa1 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.0")] -[assembly: AssemblyFileVersion("2.0.0")] +[assembly: AssemblyVersion("2.0.1")] +[assembly: AssemblyFileVersion("2.0.1")] From 14db8a97c4b525c94ff898bd4a175bc383ec2097 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Tue, 11 Feb 2020 18:21:46 +0800 Subject: [PATCH 16/21] [Storage] Support share usage --- .../ScenarioTests/StorageFileTests.ps1 | 6 +++ .../Storage.Management.Test.csproj | 2 +- src/Storage/Storage.Management/ChangeLog.md | 4 +- .../File/GetAzureStorageShare.cs | 23 +++++++-- .../Storage.Management/Models/PSShare.cs | 4 -- .../Storage.Management.csproj | 2 +- .../help/Get-AzRmStorageShare.md | 49 +++++++++++++++---- .../help/New-AzRmStorageShare.md | 4 +- .../help/Remove-AzRmStorageShare.md | 2 +- .../help/Update-AzRmStorageShare.md | 4 +- 10 files changed, 75 insertions(+), 25 deletions(-) diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 index 6a56cce3901f..73f6b024258c 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 @@ -153,6 +153,12 @@ function Test-ShareSoftDelete Assert-AreEqual $shareName1 $share.Name New-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName2 + # Get share usage + $share = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 -GetShareUsage + Assert-AreEqual $shareName1 $share.Name + Assert-AreEqual 0 $share.ShareUsageBytes + Assert-AreEqual $null $share.Deleted + #delete share Remove-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName1 -Force diff --git a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj index 267a2b9bd98e..17f0c7c8c24e 100644 --- a/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj +++ b/src/Storage/Storage.Management.Test/Storage.Management.Test.csproj @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 2e9e645c85f6..77f9b0d130c6 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,7 +18,9 @@ - Additional information about change #1 --> ## Upcoming Release - +* Support get single file share usage + - `Get-AzRmStorageShare` + ## Version 2.0.1 * Support enable/disable/get share soft delete properties on file Service of a Storage account - `Update-AzStorageFileServiceProperty` diff --git a/src/Storage/Storage.Management/File/GetAzureStorageShare.cs b/src/Storage/Storage.Management/File/GetAzureStorageShare.cs index b358942a3a70..cb1f5573a5d5 100644 --- a/src/Storage/Storage.Management/File/GetAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/GetAzureStorageShare.cs @@ -23,7 +23,7 @@ namespace Microsoft.Azure.Commands.Management.Storage { - [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMStoragePrefix + StorageShareNounStr, DefaultParameterSetName = AccountNameParameterSet), OutputType(typeof(PSShare))] + [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMStoragePrefix + StorageShareNounStr, DefaultParameterSetName = AccountNameSingleParameterSet), OutputType(typeof(PSShare))] public class GetAzureStorageShareCommand : StorageFileBaseCmdlet { /// @@ -113,7 +113,18 @@ public class GetAzureStorageShareCommand : StorageFileBaseCmdlet HelpMessage = "Include deleted shares, by default list shares won't include deleted shares", ParameterSetName = AccountObjectParameterSet)] public SwitchParameter IncludeDeleted { get; set; } - + + [Parameter(HelpMessage = "Specify this parameter to get the Share Usage in Bytes.", + Mandatory = false, + ParameterSetName = AccountObjectSingleParameterSet)] + [Parameter(HelpMessage = "Specify this parameter to get the Share Usage in Bytes.", + Mandatory = false, + ParameterSetName = AccountNameSingleParameterSet)] + [Parameter(HelpMessage = "Specify this parameter to get the Share Usage in Bytes.", + Mandatory = false, + ParameterSetName = ShareResourceIdParameterSet)] + public SwitchParameter GetShareUsage { get; set; } + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -138,10 +149,16 @@ public override void ExecuteCmdlet() if (!string.IsNullOrEmpty(this.Name)) { + GetShareExpand? expend = null; + if(this.GetShareUsage) + { + expend = GetShareExpand.Stats; + } var Share = this.StorageClient.FileShares.Get( this.ResourceGroupName, this.StorageAccountName, - this.Name); + this.Name, + expend); WriteObject(new PSShare(Share)); } else diff --git a/src/Storage/Storage.Management/Models/PSShare.cs b/src/Storage/Storage.Management/Models/PSShare.cs index d2f0d7544131..c4252e781161 100644 --- a/src/Storage/Storage.Management/Models/PSShare.cs +++ b/src/Storage/Storage.Management/Models/PSShare.cs @@ -39,8 +39,6 @@ public PSShare(StorageModels.FileShare share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; - this.EnabledProtocols = share.EnabledProtocols; - this.RootSquash = share.RootSquash; this.Version = share.Version; this.Deleted = share.Deleted; this.DeletedTime = share.DeletedTime; @@ -64,8 +62,6 @@ public PSShare(FileShareItem share) this.Etag = share.Etag; this.LastModifiedTime = share.LastModifiedTime; this.QuotaGiB = share.ShareQuota; - this.EnabledProtocols = share.EnabledProtocols; - this.RootSquash = share.RootSquash; this.Version = share.Version; this.Deleted = share.Deleted; this.DeletedTime = share.DeletedTime; diff --git a/src/Storage/Storage.Management/Storage.Management.csproj b/src/Storage/Storage.Management/Storage.Management.csproj index 1e2049b88c4b..45aff7817fff 100644 --- a/src/Storage/Storage.Management/Storage.Management.csproj +++ b/src/Storage/Storage.Management/Storage.Management.csproj @@ -14,7 +14,7 @@ $(LegacyAssemblyPrefix)$(PsModuleName) - + diff --git a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md index 8af8621e8d81..0047b67ed403 100644 --- a/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Get-AzRmStorageShare.md @@ -12,21 +12,21 @@ Gets or lists Storage file shares. ## SYNTAX -### AccountName (Default) +### AccountNameSingle (Default) ``` -Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-IncludeDeleted] - [-DefaultProfile ] [] +Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-Name ] + [-GetShareUsage] [-DefaultProfile ] [] ``` -### AccountNameSingle +### AccountName ``` -Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-Name ] +Get-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] [-IncludeDeleted] [-DefaultProfile ] [] ``` ### AccountObjectSingle ``` -Get-AzRmStorageShare -StorageAccount -Name +Get-AzRmStorageShare -StorageAccount -Name [-GetShareUsage] [-DefaultProfile ] [] ``` @@ -38,7 +38,8 @@ Get-AzRmStorageShare -StorageAccount [-IncludeDeleted] ### ShareResourceId ``` -Get-AzRmStorageShare [-ResourceId] [-DefaultProfile ] [] +Get-AzRmStorageShare [-ResourceId] [-GetShareUsage] [-DefaultProfile ] + [] ``` ## DESCRIPTION @@ -100,6 +101,19 @@ share1 100 TransactionOptimized True 01D61FD1FC5498B6 This command lists all Storage file shares include the deleted shares of a Storage account with Storage account name. +### Example 5: Get a Storage file share with the share usage in bytes +``` +PS C:\>Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -GetShareUsage + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocol5 AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare 5120 2097152 +``` + +This command gets a Storage file share with Storage account name and share name, and include the share usage in bytes. + ## PARAMETERS ### -DefaultProfile @@ -117,6 +131,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -GetShareUsage +Specify this parameter to get the Share Usage in Bytes. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: AccountNameSingle, AccountObjectSingle, ShareResourceId +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -IncludeDeleted Include deleted shares, by default list shares won't include deleted shares @@ -164,7 +193,7 @@ Resource Group Name. ```yaml Type: System.String -Parameter Sets: AccountName, AccountNameSingle +Parameter Sets: AccountNameSingle, AccountName Aliases: Required: True @@ -209,7 +238,7 @@ Storage Account Name. ```yaml Type: System.String -Parameter Sets: AccountName, AccountNameSingle +Parameter Sets: AccountNameSingle, AccountName Aliases: AccountName Required: True @@ -220,7 +249,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md index 51408466c140..86284ca83311 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md @@ -57,7 +57,7 @@ myshare This command creates a Storage file share with Storage account object and share name. -### Example 3: Create a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash +### Example 3: Create a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash ``` PS C:\>$share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -EnabledProtocol NFS -RootSquash NoRootSquash @@ -244,7 +244,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md index 12e5467b9d15..155edbfcc2ef 100644 --- a/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Remove-AzRmStorageShare.md @@ -233,7 +233,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md index 1d4c22a8f822..9c090c0f653c 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md @@ -87,7 +87,7 @@ share2 5000 This command modifies share quota as 5000 GiB for all Storage file shares in a Storage account with pipeline. -### Example 4: Modifies rootsquash for a file shares in a Storage account +### Example 4: Modifies rootsquash for a file shares in a Storage account ``` PS C:\>$share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -RootSquash NoRootSquash @@ -289,7 +289,7 @@ 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). +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 From 20a47613b5575e3acbb108694bbc58ab43baf935 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Tue, 21 Apr 2020 18:35:16 +0800 Subject: [PATCH 17/21] [Storage] Support share Accesstier --- .../ApplicationInsights.Test.csproj | 2 +- .../EventGrid.Test/EventGrid.Test.csproj | 2 +- .../OperationalInsights.Test.csproj | 2 +- .../ScenarioTests/StorageFileTests.ps1 | 6 +- .../TestStorageFileShare.json | 604 +++++++++--------- src/Storage/Storage.Management/ChangeLog.md | 3 + .../File/NewAzureStorageShare.cs | 26 +- .../File/UpdateAzureStorageShare.cs | 26 +- .../help/New-AzRmStorageShare.md | 32 +- .../help/Update-AzRmStorageShare.md | 42 +- src/Synapse/Synapse.Test/Synapse.Test.csproj | 2 +- 11 files changed, 429 insertions(+), 318 deletions(-) diff --git a/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj b/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj index 450506ca57e0..b172af3cbe7c 100644 --- a/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj +++ b/src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj index 39eb29a9e26f..0e0b74056e24 100644 --- a/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj +++ b/src/EventGrid/EventGrid.Test/EventGrid.Test.csproj @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj b/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj index 41a071ad465d..a02adf322403 100644 --- a/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj +++ b/src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 index 73f6b024258c..fc23d1d97aed 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1 @@ -68,7 +68,7 @@ function Test-StorageFileShare $quotaGiB = 300 $metadata = @{tag0="value0";tag1="value1";tag2="value2";tag3="value3"} $shareName2 = "share2"+ $rgname - $stos | New-AzRmStorageShare -Name $shareName2 -QuotaGiB $quotaGiB -Metadata $metadata -EnabledProtocol NFS -RootSquash RootSquash + $stos | New-AzRmStorageShare -Name $shareName2 -QuotaGiB $quotaGiB -Metadata $metadata -EnabledProtocol NFS -RootSquash RootSquash -AccessTier Cool $share = $stos | Get-AzRmStorageShare -Name $shareName2 Assert-AreEqual $rgname $share.ResourceGroupName Assert-AreEqual $stoname $share.StorageAccountName @@ -77,8 +77,9 @@ function Test-StorageFileShare Assert-AreEqual $metadata.Count $share.Metadata.Count #Assert-AreEqual "NFS" $share.EnabledProtocols #Assert-AreEqual "RootSquash" $share.RootSquash + Assert-AreEqual "Cool" $share.Accesstier - Update-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName2 -RootSquash NoRootSquash + Update-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName2 -RootSquash NoRootSquash -AccessTier Hot $share = $stos | Get-AzRmStorageShare -Name $shareName2 Assert-AreEqual $rgname $share.ResourceGroupName Assert-AreEqual $stoname $share.StorageAccountName @@ -87,6 +88,7 @@ function Test-StorageFileShare Assert-AreEqual $metadata.Count $share.Metadata.Count #Assert-AreEqual "NFS" $share.EnabledProtocols #Assert-AreEqual "NoRootSquash" $share.RootSquash + Assert-AreEqual "Hot" $share.Accesstier $shares = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname Assert-AreEqual 2 $shares.Count diff --git a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json index ee0557bf0f37..1ac1b92f7775 100644 --- a/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json +++ b/src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json @@ -1,19 +1,19 @@ { "Entries": [ { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg1463?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg6093?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNjA5Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "029dfe65-35ac-45fd-a94a-88261c91fdf8" + "69785659-9241-4d28-88e6-c4829d97284d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -36,13 +36,13 @@ "1199" ], "x-ms-request-id": [ - "e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" + "95438b27-9265-4a41-895f-11d90285fb77" ], "x-ms-correlation-request-id": [ - "e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" + "95438b27-9265-4a41-895f-11d90285fb77" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140335Z:e27fe9aa-7c95-4ecf-aec1-624b3d5bbb44" + "SOUTHEASTASIA:20200528T071212Z:95438b27-9265-4a41-895f-11d90285fb77" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,7 +51,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:03:34 GMT" + "Thu, 28 May 2020 07:12:11 GMT" ], "Content-Length": [ "182" @@ -63,26 +63,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463\",\r\n \"name\": \"pstestrg1463\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093\",\r\n \"name\": \"pstestrg6093\",\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=2019-06-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9jaGVja05hbWVBdmFpbGFiaWxpdHk/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "POST", - "RequestBody": "{\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "RequestBody": "{\r\n \"name\": \"stopstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "6ca06586-59a3-42e9-a320-6af39e6cca18" + "a760a0ff-434d-41ea-837d-be9d976aa5c1" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -99,7 +99,7 @@ "no-cache" ], "x-ms-request-id": [ - "666b8ac3-ad21-403c-a512-b535d40dd638" + "cd82bd3b-c15d-462a-906e-287a6250e087" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -108,19 +108,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11998" + "11999" ], "x-ms-correlation-request-id": [ - "1e8c2f97-0250-4ad6-b124-8abbc59844e7" + "f90810bf-5562-434e-95c5-1745a83095d3" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140336Z:1e8c2f97-0250-4ad6-b124-8abbc59844e7" + "SOUTHEASTASIA:20200528T071213Z:f90810bf-5562-434e-95c5-1745a83095d3" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:03:35 GMT" + "Thu, 28 May 2020 07:12:12 GMT" ], "Content-Length": [ "22" @@ -136,22 +136,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "PUT", "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus2euap\"\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "0c035e55-eb0d-4d65-a8ae-bf637434ccdd" + "335a0496-1f19-4141-a11c-f8ba1b3da4f5" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -168,13 +168,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/3a121b18-acf5-4835-abe8-b2138241c6a6?monitor=true&api-version=2019-06-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/b9e5eb3e-9e34-4d69-8280-83804574a0b2?monitor=true&api-version=2019-06-01" ], "Retry-After": [ "17" ], "x-ms-request-id": [ - "3a121b18-acf5-4835-abe8-b2138241c6a6" + "b9e5eb3e-9e34-4d69-8280-83804574a0b2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,16 +186,16 @@ "1199" ], "x-ms-correlation-request-id": [ - "c335334e-8c31-4f18-afc1-5b074a6268a8" + "1131404b-6cf6-4e70-971e-f3368895a790" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140344Z:c335334e-8c31-4f18-afc1-5b074a6268a8" + "SOUTHEASTASIA:20200528T071224Z:1131404b-6cf6-4e70-971e-f3368895a790" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:03:43 GMT" + "Thu, 28 May 2020 07:12:24 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -211,16 +211,16 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/3a121b18-acf5-4835-abe8-b2138241c6a6?monitor=true&api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zLzNhMTIxYjE4LWFjZjUtNDgzNS1hYmU4LWIyMTM4MjQxYzZhNj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/b9e5eb3e-9e34-4d69-8280-83804574a0b2?monitor=true&api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvYXN5bmNvcGVyYXRpb25zL2I5ZTVlYjNlLTllMzQtNGQ2OS04MjgwLTgzODA0NTc0YTBiMj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -231,7 +231,7 @@ "no-cache" ], "x-ms-request-id": [ - "e0f0ff0a-194a-4e0e-b32d-6e470e7d2f5b" + "d18645bb-4df5-4202-a577-414b6487f914" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -240,19 +240,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11997" + "11998" ], "x-ms-correlation-request-id": [ - "871928d0-0691-48f8-8026-4a762be2d6dd" + "219751ba-dea5-4137-a3e0-abafa95f9dd2" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140401Z:871928d0-0691-48f8-8026-4a762be2d6dd" + "SOUTHEASTASIA:20200528T071241Z:219751ba-dea5-4137-a3e0-abafa95f9dd2" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:01 GMT" + "Thu, 28 May 2020 07:12:41 GMT" ], "Content-Length": [ "1333" @@ -264,26 +264,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093\",\r\n \"name\": \"stopstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-28T07:12:23.9785445Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-28T07:12:23.9785445Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-28T07:12:23.9160856Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg6093.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg6093.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg6093.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg6093.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg6093.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg6093.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "e2fc2cc8-416f-4b4c-a16f-75dad54b7db2" + "60f7d7f9-8dd4-4fa9-a2b5-aa142948af08" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -294,7 +294,7 @@ "no-cache" ], "x-ms-request-id": [ - "6d8ff08c-8da0-4fff-8d31-d446f09f9996" + "8ac76c16-a4c7-4a60-879b-f23b153660e0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -303,19 +303,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11996" + "11997" ], "x-ms-correlation-request-id": [ - "4263d026-2bc4-4d52-9aeb-0af9815b4c6c" + "a2fc294f-6166-4101-8b44-142c7b59fb6a" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140402Z:4263d026-2bc4-4d52-9aeb-0af9815b4c6c" + "SOUTHEASTASIA:20200528T071242Z:a2fc294f-6166-4101-8b44-142c7b59fb6a" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:01 GMT" + "Thu, 28 May 2020 07:12:41 GMT" ], "Content-Length": [ "1333" @@ -327,26 +327,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093\",\r\n \"name\": \"stopstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-28T07:12:23.9785445Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-28T07:12:23.9785445Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-28T07:12:23.9160856Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg6093.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg6093.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg6093.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg6093.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg6093.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg6093.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "c9bad08d-877c-496f-9665-071d93bb96ba" + "e87076d8-c01d-4b61-b171-b2201fb18d8a" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -357,7 +357,7 @@ "no-cache" ], "x-ms-request-id": [ - "dd0945d8-41f0-496c-bbc0-1148091d5e6b" + "3797f9b4-fb8e-4128-b89f-0d674982903b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -366,19 +366,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11995" + "11996" ], "x-ms-correlation-request-id": [ - "1ad34bdc-4495-4b3f-9446-f2eefd272cf1" + "897711c0-a4cf-4166-a408-bed98cba31ae" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140402Z:1ad34bdc-4495-4b3f-9446-f2eefd272cf1" + "SOUTHEASTASIA:20200528T071242Z:897711c0-a4cf-4166-a408-bed98cba31ae" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:01 GMT" + "Thu, 28 May 2020 07:12:42 GMT" ], "Content-Length": [ "1345" @@ -390,26 +390,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463\",\r\n \"name\": \"stopstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-14T14:03:43.6776891Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-14T14:03:43.6776891Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-14T14:03:43.6307714Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg1463.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg1463.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg1463.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg1463.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg1463.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg1463.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"sku\": {\r\n \"name\": \"Standard_GRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093\",\r\n \"name\": \"stopstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": {\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\": \"2020-05-28T07:12:23.9785445Z\"\r\n },\r\n \"blob\": {\r\n \"keyType\": \"Account\",\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2020-05-28T07:12:23.9785445Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2020-05-28T07:12:23.9160856Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://stopstestrg6093.dfs.core.windows.net/\",\r\n \"web\": \"https://stopstestrg6093.z3.web.core.windows.net/\",\r\n \"blob\": \"https://stopstestrg6093.blob.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg6093.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg6093.table.core.windows.net/\",\r\n \"file\": \"https://stopstestrg6093.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2euap\",\r\n \"statusOfPrimary\": \"available\",\r\n \"secondaryLocation\": \"centraluseuap\",\r\n \"statusOfSecondary\": \"available\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PUT", "RequestBody": "{}", "RequestHeaders": { "x-ms-client-request-id": [ - "647101ea-f678-465e-ac00-46913d42404d" + "fc4c6f76-d36b-4a8c-a0c4-df53d1c01f10" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -426,10 +426,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA8630DCA\"" + "\"0x8D802D683D404BC\"" ], "x-ms-request-id": [ - "6b10ebd9-9d64-4ca2-8a86-f28caac3487c" + "4ca397ad-bf00-4aef-8ead-1ade72aefb85" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -441,16 +441,16 @@ "1198" ], "x-ms-correlation-request-id": [ - "8796f728-aef5-44c2-bf71-3abd265a0cc3" + "0de97fce-6fcf-473b-8b6b-3da88c7a3a8a" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140403Z:8796f728-aef5-44c2-bf71-3abd265a0cc3" + "SOUTHEASTASIA:20200528T071243Z:0de97fce-6fcf-473b-8b6b-3da88c7a3a8a" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:02 GMT" + "Thu, 28 May 2020 07:12:42 GMT" ], "Content-Length": [ "284" @@ -462,26 +462,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\"\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "acbb2884-5981-4fa0-a290-96ffac30ef36" + "d2d8c8d6-e213-4f04-bba0-eb03782704d5" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -492,10 +492,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA8630DCA\"" + "\"0x8D802D683D404BC\"" ], "x-ms-request-id": [ - "d71198cb-acd5-4c73-8fa0-c40d7e9f67bd" + "c2acd592-d8fa-408e-be13-a012cdd1180a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -504,19 +504,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11994" + "11995" ], "x-ms-correlation-request-id": [ - "b9d9eab0-6f27-4444-aea6-e765d9271cee" + "3fbb4331-c9db-47d8-80d5-237f5bf6b55a" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140403Z:b9d9eab0-6f27-4444-aea6-e765d9271cee" + "SOUTHEASTASIA:20200528T071243Z:3fbb4331-c9db-47d8-80d5-237f5bf6b55a" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:02 GMT" + "Thu, 28 May 2020 07:12:42 GMT" ], "Content-Length": [ "460" @@ -528,26 +528,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA8630DCA\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:02Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D683D404BC\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-28T07:12:43Z\",\r\n \"shareQuota\": 5120\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "1e8ebc49-5088-4f86-ab18-806b77cb24ba" + "5bc823ea-09d5-42cb-8f82-54929abab2fe" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -558,10 +558,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA8F2ED79\"" + "\"0x8D802D6845138C0\"" ], "x-ms-request-id": [ - "344152aa-db92-469a-b194-749cd6ee0733" + "9695bc7b-9621-4226-b697-270846761395" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -570,19 +570,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11993" + "11994" ], "x-ms-correlation-request-id": [ - "792fce1d-d8f4-47ca-9337-54260d34990b" + "8208dc9f-5177-4490-8e78-2b005dcd32b5" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140404Z:792fce1d-d8f4-47ca-9337-54260d34990b" + "SOUTHEASTASIA:20200528T071244Z:8208dc9f-5177-4490-8e78-2b005dcd32b5" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:03 GMT" + "Thu, 28 May 2020 07:12:43 GMT" ], "Content-Length": [ "504" @@ -594,26 +594,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA8F2ED79\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:03Z\",\r\n \"shareQuota\": 100\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D6845138C0\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-28T07:12:43Z\",\r\n \"shareQuota\": 100\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "84a2d666-6d9a-4acc-81b7-fe96f116b516" + "93d09ba6-937c-4a27-85cc-e550fa5ba60c" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -624,10 +624,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA9784317\"" + "\"0x8D802D684C6098E\"" ], "x-ms-request-id": [ - "2dcde576-7a4f-4ff6-8354-26142cdbe554" + "79e01d5d-fdc2-44d7-942d-79af3c93e505" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -636,19 +636,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11992" + "11993" ], "x-ms-correlation-request-id": [ - "a1052c40-ecb6-4e11-b72f-867f17c7c89d" + "865f6b95-50c2-408d-8e79-4ffde1bf5f85" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140405Z:a1052c40-ecb6-4e11-b72f-867f17c7c89d" + "SOUTHEASTASIA:20200528T071245Z:865f6b95-50c2-408d-8e79-4ffde1bf5f85" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:04 GMT" + "Thu, 28 May 2020 07:12:44 GMT" ], "Content-Length": [ "520" @@ -660,26 +660,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA9784317\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:04Z\",\r\n \"shareQuota\": 200\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D684C6098E\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-28T07:12:44Z\",\r\n \"shareQuota\": 200\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PATCH", - "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "06219f50-8ec2-4a33-b950-a9bd7e9c65cd" + "e3964fba-0947-45b1-a47c-e40838b7493d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -696,10 +696,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA8F2ED79\"" + "\"0x8D802D6845138C0\"" ], "x-ms-request-id": [ - "54c47bbf-8b1d-433d-bc9b-495a07dec155" + "36bda7a0-27fe-4fd6-98e2-d20b365f7115" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -711,16 +711,16 @@ "1197" ], "x-ms-correlation-request-id": [ - "900799bd-43f6-41de-a20f-046f8370231e" + "54be91c4-ce84-47aa-89e7-c61effbb9c71" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140404Z:900799bd-43f6-41de-a20f-046f8370231e" + "SOUTHEASTASIA:20200528T071244Z:54be91c4-ce84-47aa-89e7-c61effbb9c71" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:03 GMT" + "Thu, 28 May 2020 07:12:43 GMT" ], "Content-Length": [ "361" @@ -732,26 +732,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag1\": \"value1\",\r\n \"tag0\": \"value0\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 100\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "PATCH", - "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "48268a5c-f25b-4adc-a59a-a4e4c685e1fe" + "042d3ffc-167d-4ddf-bf15-8d166ae4b248" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -768,10 +768,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FA9784317\"" + "\"0x8D802D684C6098E\"" ], "x-ms-request-id": [ - "ec759faa-6b15-424e-b198-9f9cadf0758e" + "d2495be2-1da9-4158-bd31-e6a8d1c48ed3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -783,16 +783,16 @@ "1196" ], "x-ms-correlation-request-id": [ - "983d395c-413c-4f3b-bda2-30695d9eb028" + "48c694f6-4e0e-4dfa-b18a-5ca32c3961da" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140404Z:983d395c-413c-4f3b-bda2-30695d9eb028" + "SOUTHEASTASIA:20200528T071244Z:48c694f6-4e0e-4dfa-b18a-5ca32c3961da" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:04 GMT" + "Thu, 28 May 2020 07:12:44 GMT" ], "Content-Length": [ "377" @@ -804,32 +804,32 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 200\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\"\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag3\": \"value3\",\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\",\r\n \"accessTier\": \"Cool\"\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "fa56e77e-1e5e-4d42-9d42-970af187e47f" + "ceb7bc5d-2d49-4c94-b608-e84a827f17cc" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "242" + "269" ] }, "ResponseHeaders": { @@ -840,10 +840,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FAA03DBFB\"" + "\"0x8D802D685431689\"" ], "x-ms-request-id": [ - "2aafde97-7939-4b16-a361-7db8338078b2" + "e7fb2004-b58b-4b02-b93e-8d17bd9e3ae2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -855,19 +855,19 @@ "1195" ], "x-ms-correlation-request-id": [ - "a0d300ac-5b0e-4f26-ab4c-25c39432b5ae" + "daf7f861-6b41-47d8-8279-41fb1ba655f5" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140405Z:a0d300ac-5b0e-4f26-ab4c-25c39432b5ae" + "SOUTHEASTASIA:20200528T071245Z:daf7f861-6b41-47d8-8279-41fb1ba655f5" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:05 GMT" + "Thu, 28 May 2020 07:12:45 GMT" ], "Content-Length": [ - "446" + "466" ], "Content-Type": [ "application/json" @@ -876,26 +876,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"accessTier\": \"Cool\",\r\n \"metadata\": {\r\n \"tag3\": \"value3\",\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"NFS\",\r\n \"rootSquash\": \"RootSquash\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "e039a28f-96b9-450a-a2df-e17556711b6b" + "50f2a241-a6ff-47a9-99f9-35c988a8f781" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -906,10 +906,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FAA03DBFB\"" + "\"0x8D802D685431689\"" ], "x-ms-request-id": [ - "5d3621e5-8c43-4c51-acf5-8aefcbd44a31" + "9ba092a1-f325-4c48-9e57-7b361322508e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -918,22 +918,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11991" + "11992" ], "x-ms-correlation-request-id": [ - "116a3ad3-6768-4b5b-bb4e-78c134afbf4c" + "cfb9751f-d700-478a-94a3-cb3d0c6a7541" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140406Z:116a3ad3-6768-4b5b-bb4e-78c134afbf4c" + "SOUTHEASTASIA:20200528T071246Z:cfb9751f-d700-478a-94a3-cb3d0c6a7541" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:05 GMT" + "Thu, 28 May 2020 07:12:45 GMT" ], "Content-Length": [ - "538" + "542" ], "Content-Type": [ "application/json" @@ -942,26 +942,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA03DBFB\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:05Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D685431689\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"Cool\",\r\n \"accessTierChangeTime\": \"5/28/2020 7:12:45 AM\",\r\n \"metadata\": {\r\n \"tag3\": \"value3\",\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-28T07:12:45Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "78053128-99b3-4c1c-b408-1c1fd63592d7" + "a8e0ce13-5282-4099-afa8-a07ee2e1313e" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -972,10 +972,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FAA8783BD\"" + "\"0x8D802D685BFD570\"" ], "x-ms-request-id": [ - "39ec2817-ebbb-46a2-8d78-13b285384144" + "05a25a44-ea37-4ed5-a9b5-fa9b64590393" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -984,22 +984,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11990" + "11991" ], "x-ms-correlation-request-id": [ - "791ff4d5-f39f-45d4-a0b1-4c0b691968f4" + "cdc66fe8-3187-4619-8cfe-b57fdf0929bf" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140407Z:791ff4d5-f39f-45d4-a0b1-4c0b691968f4" + "SOUTHEASTASIA:20200528T071246Z:cdc66fe8-3187-4619-8cfe-b57fdf0929bf" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:06 GMT" + "Thu, 28 May 2020 07:12:46 GMT" ], "Content-Length": [ - "538" + "541" ], "Content-Type": [ "application/json" @@ -1008,26 +1008,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D685BFD570\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"Hot\",\r\n \"accessTierChangeTime\": \"5/28/2020 7:12:46 AM\",\r\n \"metadata\": {\r\n \"tag3\": \"value3\",\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-28T07:12:46Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "5b2c6aff-86a7-4416-8814-a44e11b7bfc0" + "ce7d392c-1130-46d7-9466-7fe579259bdc" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1038,10 +1038,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FAA8783BD\"" + "\"0x8D802D685BFD570\"" ], "x-ms-request-id": [ - "b3799651-016f-47ce-a3a9-671411bfeeb1" + "cd7a5717-b1eb-45ed-85fc-13523164db4f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1050,22 +1050,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11987" + "11988" ], "x-ms-correlation-request-id": [ - "60af206c-7232-45cd-af33-735ec06f258d" + "0353e903-50e0-4b5e-86ae-0ab937489cd7" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140408Z:60af206c-7232-45cd-af33-735ec06f258d" + "SOUTHEASTASIA:20200528T071248Z:0353e903-50e0-4b5e-86ae-0ab937489cd7" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:07 GMT" + "Thu, 28 May 2020 07:12:47 GMT" ], "Content-Length": [ - "538" + "541" ], "Content-Type": [ "application/json" @@ -1074,32 +1074,32 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"metadata\": {\r\n \"tag0\": \"value0\",\r\n \"tag3\": \"value3\",\r\n \"tag1\": \"value1\",\r\n \"tag2\": \"value2\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D685BFD570\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"Hot\",\r\n \"accessTierChangeTime\": \"5/28/2020 7:12:46 AM\",\r\n \"metadata\": {\r\n \"tag3\": \"value3\",\r\n \"tag2\": \"value2\",\r\n \"tag0\": \"value0\",\r\n \"tag1\": \"value1\"\r\n },\r\n \"lastModifiedTime\": \"2020-05-28T07:12:46Z\",\r\n \"shareQuota\": 300\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "PATCH", - "RequestBody": "{\r\n \"properties\": {\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"rootSquash\": \"NoRootSquash\",\r\n \"accessTier\": \"Hot\"\r\n }\r\n}", "RequestHeaders": { "x-ms-client-request-id": [ - "b6f0cf5d-091a-4638-9595-f54d0492e8dc" + "9315d166-0c03-4077-856a-71dbbfa140aa" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "62" + "88" ] }, "ResponseHeaders": { @@ -1110,10 +1110,10 @@ "no-cache" ], "ETag": [ - "\"0x8D7F80FAA8783BD\"" + "\"0x8D802D685BFD570\"" ], "x-ms-request-id": [ - "f775eb68-985b-4383-acf4-c4fc7b25ae08" + "961a83fc-e7ac-4cea-a325-93ff4fcfaf0f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1125,19 +1125,19 @@ "1194" ], "x-ms-correlation-request-id": [ - "33170534-1f1b-4536-b2ae-624f7edcff60" + "ffe1ef39-7652-47bb-8466-41c5bc9283b1" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140406Z:33170534-1f1b-4536-b2ae-624f7edcff60" + "SOUTHEASTASIA:20200528T071246Z:ffe1ef39-7652-47bb-8466-41c5bc9283b1" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:06 GMT" + "Thu, 28 May 2020 07:12:45 GMT" ], "Content-Length": [ - "329" + "348" ], "Content-Type": [ "application/json" @@ -1146,26 +1146,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"properties\": {\r\n \"accessTier\": \"Hot\",\r\n \"rootSquash\": \"NoRootSquash\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "8686f4b4-01f0-4ed9-aeab-cda70f61678a" + "49a86165-b364-4f1f-90ca-eee785fe31f3" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1176,7 +1176,7 @@ "no-cache" ], "x-ms-request-id": [ - "d39334b7-4816-4076-9318-84c4a9efe8b5" + "da2cbeb2-2fda-4d02-bebc-51f5e2ebb099" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1185,22 +1185,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11989" + "11990" ], "x-ms-correlation-request-id": [ - "cda7d59f-e8bf-45f0-9571-975dbb7a255d" + "e5a402f9-b074-4c83-ab99-b225656a8393" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140407Z:cda7d59f-e8bf-45f0-9571-975dbb7a255d" + "SOUTHEASTASIA:20200528T071247Z:e5a402f9-b074-4c83-ab99-b225656a8393" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:06 GMT" + "Thu, 28 May 2020 07:12:46 GMT" ], "Content-Length": [ - "983" + "986" ], "Content-Type": [ "application/json" @@ -1209,26 +1209,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463\",\r\n \"name\": \"sharepstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FA9784317\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:04Z\",\r\n \"shareQuota\": 200,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D685BFD570\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"Hot\",\r\n \"accessTierChangeTime\": \"5/28/2020 7:12:46 AM\",\r\n \"lastModifiedTime\": \"2020-05-28T07:12:46Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093\",\r\n \"name\": \"sharepstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D684C6098E\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-28T07:12:44Z\",\r\n \"shareQuota\": 200,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "6fb0d399-a4cc-4710-84eb-659a3ee81ece" + "29bdcde4-971d-49be-bdba-8c97adc52d58" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1239,7 +1239,7 @@ "no-cache" ], "x-ms-request-id": [ - "149110e8-f13e-4866-9000-55ef202f21f3" + "9a88916e-ee0a-4602-9457-5e4656256a52" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1248,22 +1248,22 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11988" + "11989" ], "x-ms-correlation-request-id": [ - "c57fe2e4-8b9b-4d24-89f2-3c374ed3329a" + "cbd94763-fa27-4f11-a56d-b83f405a3c1f" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140408Z:c57fe2e4-8b9b-4d24-89f2-3c374ed3329a" + "SOUTHEASTASIA:20200528T071247Z:cbd94763-fa27-4f11-a56d-b83f405a3c1f" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:07 GMT" + "Thu, 28 May 2020 07:12:47 GMT" ], "Content-Length": [ - "498" + "501" ], "Content-Type": [ "application/json" @@ -1272,26 +1272,26 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463\",\r\n \"name\": \"share2pstestrg1463\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D7F80FAA8783BD\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"TransactionOptimized\",\r\n \"accessTierChangeTime\": \"\",\r\n \"lastModifiedTime\": \"2020-05-14T14:04:06Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093\",\r\n \"name\": \"share2pstestrg6093\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/fileServices/shares\",\r\n \"etag\": \"\\\"0x8D802D685BFD570\\\"\",\r\n \"properties\": {\r\n \"accessTier\": \"Hot\",\r\n \"accessTierChangeTime\": \"5/28/2020 7:12:46 AM\",\r\n \"lastModifiedTime\": \"2020-05-28T07:12:46Z\",\r\n \"shareQuota\": 300,\r\n \"enabledProtocols\": \"SMB\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "80043a0b-5f9b-4dcb-bfb2-4b9faa6a2857" + "718d0399-e6a4-4894-9900-817d9ed6a45c" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1302,7 +1302,7 @@ "no-cache" ], "x-ms-request-id": [ - "e6704b95-24c6-4a91-ad49-1218395c8f70" + "6d7bc9c4-62f8-453e-b0e8-b6ceb147d2b8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1311,19 +1311,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "11986" + "11987" ], "x-ms-correlation-request-id": [ - "1666344d-dbc1-4357-9939-0c6388409bf4" + "b260a275-6120-4db4-bac4-99bc4c101ca9" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140409Z:1666344d-dbc1-4357-9939-0c6388409bf4" + "SOUTHEASTASIA:20200528T071248Z:b260a275-6120-4db4-bac4-99bc4c101ca9" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:08 GMT" + "Thu, 28 May 2020 07:12:48 GMT" ], "Content-Length": [ "12" @@ -1339,22 +1339,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/sharepstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzE0NjM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/sharepstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmVwc3Rlc3RyZzYwOTM/YXBpLXZlcnNpb249MjAxOS0wNi0wMQ==", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "49d63ae0-62b4-4d61-b296-55b9d03b1ca4" + "3fd3bab0-7b5b-46c6-90ad-c2ee21eecc9d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1365,7 +1365,7 @@ "no-cache" ], "x-ms-request-id": [ - "42b72fc6-686c-4b4c-8250-b59ae2323979" + "d097b410-810e-4950-80f1-ab39f6042c69" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1374,19 +1374,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-deletes": [ - "14998" + "14999" ], "x-ms-correlation-request-id": [ - "19d8b555-4c76-4a95-b137-111c5546f8bd" + "3db07338-cdb0-4a9c-9bc6-7ce5404454c5" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140407Z:19d8b555-4c76-4a95-b137-111c5546f8bd" + "SOUTHEASTASIA:20200528T071247Z:3db07338-cdb0-4a9c-9bc6-7ce5404454c5" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:07 GMT" + "Thu, 28 May 2020 07:12:46 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -1402,22 +1402,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463/fileServices/default/shares/share2pstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmcxNDYzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093/fileServices/default/shares/share2pstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5My9maWxlU2VydmljZXMvZGVmYXVsdC9zaGFyZXMvc2hhcmUycHN0ZXN0cmc2MDkzP2FwaS12ZXJzaW9uPTIwMTktMDYtMDE=", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "57c9bbd0-09b9-40c6-8933-f7c270d75b5d" + "a502c17e-d5fc-488c-bc07-c54e9a1c73a8" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1428,7 +1428,7 @@ "no-cache" ], "x-ms-request-id": [ - "c8ec84cf-8748-4998-8e74-a05d201c005d" + "6d77bc33-b98c-4445-8de2-208faa849df1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1437,19 +1437,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-deletes": [ - "14997" + "14998" ], "x-ms-correlation-request-id": [ - "95887c05-1822-4770-8a38-2f767e16db25" + "94a55512-d76d-4c17-bf30-b6e5a8f6b8bb" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140408Z:95887c05-1822-4770-8a38-2f767e16db25" + "SOUTHEASTASIA:20200528T071248Z:94a55512-d76d-4c17-bf30-b6e5a8f6b8bb" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:08 GMT" + "Thu, 28 May 2020 07:12:47 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -1465,22 +1465,22 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg1463/providers/Microsoft.Storage/storageAccounts/stopstestrg1463?api-version=2019-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnMTQ2My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourceGroups/pstestrg6093/providers/Microsoft.Storage/storageAccounts/stopstestrg6093?api-version=2019-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlR3JvdXBzL3BzdGVzdHJnNjA5My9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b3BzdGVzdHJnNjA5Mz9hcGktdmVyc2lvbj0yMDE5LTA2LTAx", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "02d0bf40-8e84-4271-a45a-f1daa44f3be4" + "5f4057ef-a792-452b-b962-991b30776ae1" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Management.Storage.StorageManagementClient/16.0.0.0" + "Microsoft.Azure.Management.Storage.StorageManagementClient/17.0.0.0" ] }, "ResponseHeaders": { @@ -1491,7 +1491,7 @@ "no-cache" ], "x-ms-request-id": [ - "feb34cea-75d0-4d51-9298-c6fb10c9ee99" + "6d56a02a-473b-42b6-a85b-57b745e6f081" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1500,19 +1500,19 @@ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-deletes": [ - "14996" + "14997" ], "x-ms-correlation-request-id": [ - "29910bc1-ca94-47e5-938b-1f79521b65e0" + "a03a2525-9144-409e-8edf-f83ea9661106" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140412Z:29910bc1-ca94-47e5-938b-1f79521b65e0" + "SOUTHEASTASIA:20200528T071251Z:a03a2525-9144-409e-8edf-f83ea9661106" ], "X-Content-Type-Options": [ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:11 GMT" + "Thu, 28 May 2020 07:12:51 GMT" ], "Content-Type": [ "text/plain; charset=utf-8" @@ -1528,19 +1528,19 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg1463?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnMTQ2Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/resourcegroups/pstestrg6093?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL3Jlc291cmNlZ3JvdXBzL3BzdGVzdHJnNjA5Mz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "6325695f-c4f2-473d-b16e-b688881e0595" + "f7a07be7-1eae-4a5b-ae2f-e18426ee6e73" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -1554,7 +1554,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" @@ -1563,13 +1563,13 @@ "14999" ], "x-ms-request-id": [ - "f0b4394a-ad2e-43a8-a700-abc7460ca545" + "9cf6cb46-752d-468d-8abd-4fc173a8523c" ], "x-ms-correlation-request-id": [ - "f0b4394a-ad2e-43a8-a700-abc7460ca545" + "9cf6cb46-752d-468d-8abd-4fc173a8523c" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140416Z:f0b4394a-ad2e-43a8-a700-abc7460ca545" + "SOUTHEASTASIA:20200528T071256Z:9cf6cb46-752d-468d-8abd-4fc173a8523c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1578,7 +1578,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:16 GMT" + "Thu, 28 May 2020 07:12:55 GMT" ], "Expires": [ "-1" @@ -1591,13 +1591,13 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSell3T1RNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -1611,7 +1611,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" @@ -1620,13 +1620,13 @@ "11999" ], "x-ms-request-id": [ - "22c9c0ee-acac-4a3d-b417-1745376a8e91" + "9e396b3d-c1c2-4dfc-9560-7fdf4b4ee94e" ], "x-ms-correlation-request-id": [ - "22c9c0ee-acac-4a3d-b417-1745376a8e91" + "9e396b3d-c1c2-4dfc-9560-7fdf4b4ee94e" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140432Z:22c9c0ee-acac-4a3d-b417-1745376a8e91" + "SOUTHEASTASIA:20200528T071311Z:9e396b3d-c1c2-4dfc-9560-7fdf4b4ee94e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1635,7 +1635,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:32 GMT" + "Thu, 28 May 2020 07:13:11 GMT" ], "Expires": [ "-1" @@ -1648,13 +1648,13 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSell3T1RNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -1668,7 +1668,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + "https://management.azure.com/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" ], "Retry-After": [ "15" @@ -1677,13 +1677,13 @@ "11998" ], "x-ms-request-id": [ - "0017d87c-f152-4785-8db5-a80e0f53b56d" + "85532212-72b4-4d85-a4dc-25d359826804" ], "x-ms-correlation-request-id": [ - "0017d87c-f152-4785-8db5-a80e0f53b56d" + "85532212-72b4-4d85-a4dc-25d359826804" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140448Z:0017d87c-f152-4785-8db5-a80e0f53b56d" + "SOUTHEASTASIA:20200528T071327Z:85532212-72b4-4d85-a4dc-25d359826804" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1692,7 +1692,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:04:47 GMT" + "Thu, 28 May 2020 07:13:26 GMT" ], "Expires": [ "-1" @@ -1705,13 +1705,13 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSell3T1RNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -1728,13 +1728,13 @@ "11997" ], "x-ms-request-id": [ - "191ba594-cace-4cd0-8ed9-90753650df16" + "ba525ac6-17d9-428e-a3a5-60708b4a96ae" ], "x-ms-correlation-request-id": [ - "191ba594-cace-4cd0-8ed9-90753650df16" + "ba525ac6-17d9-428e-a3a5-60708b4a96ae" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140503Z:191ba594-cace-4cd0-8ed9-90753650df16" + "SOUTHEASTASIA:20200528T071342Z:ba525ac6-17d9-428e-a3a5-60708b4a96ae" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1743,7 +1743,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:05:03 GMT" + "Thu, 28 May 2020 07:13:41 GMT" ], "Expires": [ "-1" @@ -1756,13 +1756,13 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzE0NjMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSekUwTmpNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/45b60d85-fd72-427a-a708-f994d26e593e/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QU1RFU1RSRzYwOTMtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDViNjBkODUtZmQ3Mi00MjdhLWE3MDgtZjk5NGQyNmU1OTNlL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVTFSRlUxUlNSell3T1RNdFJVRlRWRlZUTWtWVlFWQWlMQ0pxYjJKTWIyTmhkR2x2YmlJNkltVmhjM1IxY3pKbGRXRndJbjA/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "User-Agent": [ - "FxVersion/4.6.28207.03", + "FxVersion/4.6.27817.03", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.18363.", "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" @@ -1779,13 +1779,13 @@ "11996" ], "x-ms-request-id": [ - "219e032f-127f-46ed-a295-9df7fcc69208" + "2621b797-2c46-49a1-b9c4-69a63407bbbb" ], "x-ms-correlation-request-id": [ - "219e032f-127f-46ed-a295-9df7fcc69208" + "2621b797-2c46-49a1-b9c4-69a63407bbbb" ], "x-ms-routing-request-id": [ - "SOUTHEASTASIA:20200514T140504Z:219e032f-127f-46ed-a295-9df7fcc69208" + "SOUTHEASTASIA:20200528T071343Z:2621b797-2c46-49a1-b9c4-69a63407bbbb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1794,7 +1794,7 @@ "nosniff" ], "Date": [ - "Thu, 14 May 2020 14:05:03 GMT" + "Thu, 28 May 2020 07:13:42 GMT" ], "Expires": [ "-1" @@ -1809,7 +1809,7 @@ ], "Names": { "Test-StorageFileShare": [ - "pstestrg1463" + "pstestrg6093" ] }, "Variables": { diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 77f9b0d130c6..b720f385fa39 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -20,6 +20,9 @@ ## Upcoming Release * Support get single file share usage - `Get-AzRmStorageShare` +* Support create/update file share with access tier + - `New-AzRmStorageShare` + - `Update-AzRmStorageShare` ## Version 2.0.1 * Support enable/disable/get share soft delete properties on file Service of a Storage account diff --git a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs index 87297366108e..17275ca74e9e 100644 --- a/src/Storage/Storage.Management/File/NewAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/NewAzureStorageShare.cs @@ -102,6 +102,29 @@ public int QuotaGiB IgnoreCase = true)] public string RootSquash { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.")] + [ValidateSet(ShareAccessTier.TransactionOptimized, + ShareAccessTier.Premium, + ShareAccessTier.Hot, + ShareAccessTier.Cool, + IgnoreCase = true)] + [ValidateNotNullOrEmpty] + public string AccessTier + { + get + { + return accessTier; + } + set + { + accessTier = value; + } + } + private string accessTier = null; + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -136,7 +159,8 @@ public override void ExecuteCmdlet() metadata: MetadataDictionary, shareQuota: shareQuota, enabledProtocols: this.EnabledProtocol, - rootSquash: this.RootSquash)); + rootSquash: this.RootSquash, + accessTier: accessTier)); WriteObject(new PSShare(share)); } diff --git a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs index 66dda12627cf..362b3aee3372 100644 --- a/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs +++ b/src/Storage/Storage.Management/File/UpdateAzureStorageShare.cs @@ -13,6 +13,7 @@ // ---------------------------------------------------------------------------------- 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; @@ -126,6 +127,28 @@ public int QuotaGiB IgnoreCase = true)] public string RootSquash { get; set; } + [Parameter( + Mandatory = false, + HelpMessage = "Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.")] + [ValidateSet(ShareAccessTier.TransactionOptimized, + ShareAccessTier.Premium, + ShareAccessTier.Hot, + ShareAccessTier.Cool, + IgnoreCase = true)] + [ValidateNotNullOrEmpty] + public string AccessTier + { + get + { + return accessTier; + } + set + { + accessTier = value; + } + } + private string accessTier = null; + public override void ExecuteCmdlet() { base.ExecuteCmdlet(); @@ -162,7 +185,8 @@ public override void ExecuteCmdlet() new FileShare( metadata: MetadataDictionary, shareQuota: shareQuota, - rootSquash: this.RootSquash)); + rootSquash: this.RootSquash, + accessTier: accessTier)); WriteObject(new PSShare(Share)); } diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md index 86284ca83311..ae4ffeaf86dd 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md @@ -16,13 +16,13 @@ Creates a Storage file share. ``` New-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] -Name [-QuotaGiB ] [-Metadata ] [-EnabledProtocol ] [-RootSquash ] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-AccessTier ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` New-AzRmStorageShare -StorageAccount -Name [-QuotaGiB ] - [-Metadata ] [-EnabledProtocol ] [-RootSquash ] + [-Metadata ] [-EnabledProtocol ] [-RootSquash ] [-AccessTier ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -75,8 +75,36 @@ NoRootSquash This command creates a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash. +### Example 4: Create a Storage file share with accesstier as Hot +``` +PS C:\>$share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Hot + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare Hot +``` + +This command creates a Storage file share with accesstier as Hot. + ## PARAMETERS +### -AccessTier +Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +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. diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md index 9c090c0f653c..a984661d0eb0 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md @@ -15,27 +15,29 @@ Modifies a Storage file share. ### AccountName (Default) ``` Update-AzRmStorageShare [-ResourceGroupName] [-StorageAccountName] -Name - [-QuotaGiB ] [-Metadata ] [-RootSquash ] [-DefaultProfile ] - [-WhatIf] [-Confirm] [] + [-QuotaGiB ] [-Metadata ] [-RootSquash ] [-AccessTier ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### AccountObject ``` Update-AzRmStorageShare -Name -StorageAccount [-QuotaGiB ] - [-Metadata ] [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + [-Metadata ] [-RootSquash ] [-AccessTier ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ### ShareResourceId ``` Update-AzRmStorageShare [-ResourceId] [-QuotaGiB ] [-Metadata ] - [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-RootSquash ] [-AccessTier ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] ``` ### ShareObject ``` Update-AzRmStorageShare -InputObject [-QuotaGiB ] [-Metadata ] - [-RootSquash ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] + [-RootSquash ] [-AccessTier ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -105,8 +107,36 @@ NoRootSquash This command modifies share RootSquash property to NoRootSquash. RootSquash property is only avaialbe on share with EnabledProtocol as NFS. +### Example 5: Modify a Storage file share with accesstier as Cool +``` +PS C:\>$share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Cool + + ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount + +Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes +---- -------- ---------------- ---------- ------- ------- --------------- +myshare Cool +``` + +This command modifies a Storage file share with accesstier as Cool. + ## PARAMETERS +### -AccessTier +Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +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. diff --git a/src/Synapse/Synapse.Test/Synapse.Test.csproj b/src/Synapse/Synapse.Test/Synapse.Test.csproj index b4249ba89678..aca884f0aacb 100644 --- a/src/Synapse/Synapse.Test/Synapse.Test.csproj +++ b/src/Synapse/Synapse.Test/Synapse.Test.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file From 99a484ad3d0f7506207f7df3e7934f01b977df32 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Wed, 3 Jun 2020 17:38:04 +0800 Subject: [PATCH 18/21] upgrade Az.Storage to 2.1.1-preview --- .../Storage.Management/Az.Storage.psd1 | 25 ++++--------------- src/Storage/Storage.Management/ChangeLog.md | 2 ++ .../Properties/AssemblyInfo.cs | 4 +-- .../Storage/Properties/AssemblyInfo.cs | 4 +-- tools/Az/Az.psd1 | 2 +- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index dff66303249b..240af29377c9 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 5/28/2020 +# Generated on: 6/3/2020 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '2.1.0' +ModuleVersion = '2.1.1' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -220,26 +220,11 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Support enable/disable/get share soft delete properties on file Service of a Storage account - - ''Update-AzStorageFileServiceProperty'' - - ''Get-AzStorageFileServiceProperty'' -* Support list file shares include the deleted ones of a Storage account, and Get single file share usage + ReleaseNotes = '* Support get single file share usage - ''Get-AzRmStorageShare'' -* Support restore a deleted file share - - ''Restore-AzRmStorageShare'' -* Support enable/disable versioning on Blob Service of a Storage account - - ''Update-AzStorageBlobServiceProperty'' -* Support create file share with NFS/SMB enabledEnabledProtocol and RootSquash, and update share with RootSquash +* Support create/update file share with access tier - ''New-AzRmStorageShare'' - - ''Update-AzRmStorageShare'' -* Support Set/Get/Remove Object Replication Policy on Storage accounts - - ''New-AzStorageObjectReplicationPolicyRule'' - - ''Set-AzStorageObjectReplicationPolicy'' - - ''Get-AzStorageObjectReplicationPolicy'' - - ''Remove-AzStorageObjectReplicationPolicy'' -* Supported RoutingPreference settings in create/update Storage account - - ''New-AzStorageAccount'' - - ''Set-AzStorageAccount''' + - ''Update-AzRmStorageShare''' # Prerelease string of this module Prerelease = 'preview' diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index ad44949d9b59..9ebdff38bb3a 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,8 @@ - Additional information about change #1 --> ## Upcoming Release + +## Version 2.1.1 * Support get single file share usage - `Get-AzRmStorageShare` * Support create/update file share with access tier diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index d58a13d1eaa1..35eb76e93253 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.1")] -[assembly: AssemblyFileVersion("2.0.1")] +[assembly: AssemblyVersion("2.1.1")] +[assembly: AssemblyFileVersion("2.1.1")] diff --git a/src/Storage/Storage/Properties/AssemblyInfo.cs b/src/Storage/Storage/Properties/AssemblyInfo.cs index e2cadcaca59f..67aebf1c7843 100644 --- a/src/Storage/Storage/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage/Properties/AssemblyInfo.cs @@ -44,8 +44,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyVersion("2.1.0")] -[assembly: AssemblyFileVersion("2.1.0")] +[assembly: AssemblyVersion("2.1.1")] +[assembly: AssemblyFileVersion("2.1.1")] [assembly: CLSCompliant(false)] #if !SIGN [assembly: InternalsVisibleTo("Microsoft.Azure.PowerShell.Cmdlets.Storage.Test")] diff --git a/tools/Az/Az.psd1 b/tools/Az/Az.psd1 index 57b35dee8f71..ed834b4c89f4 100644 --- a/tools/Az/Az.psd1 +++ b/tools/Az/Az.psd1 @@ -105,7 +105,7 @@ RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '1.8.1'; }, @{ModuleName = 'Az.SignalR'; RequiredVersion = '1.1.1'; }, @{ModuleName = 'Az.Sql'; RequiredVersion = '2.7.0'; }, @{ModuleName = 'Az.SqlVirtualMachine'; RequiredVersion = '1.1.0'; }, -# @{ModuleName = 'Az.Storage'; RequiredVersion = '2.1.0'; }, # Storage removed to support preview +# @{ModuleName = 'Az.Storage'; RequiredVersion = '2.1.1'; }, # Storage removed to support preview @{ModuleName = 'Az.StorageSync'; RequiredVersion = '1.2.3'; }, @{ModuleName = 'Az.StreamAnalytics'; RequiredVersion = '1.0.1'; }, @{ModuleName = 'Az.Support'; RequiredVersion = '1.0.0'; }, From 4dd364e64c6ad2a309d47a3fb0830860aca7e2a9 Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Sat, 25 Jul 2020 12:39:08 +0800 Subject: [PATCH 19/21] [Storage] Support blob tag (#12475) --- .../Storage.Management/Az.Storage.psd1 | 4 +- src/Storage/Storage.Management/ChangeLog.md | 20 ++ .../Storage.Management/help/Az.Storage.md | 9 + .../help/Get-AzStorageAccount.md | 4 +- .../help/Get-AzStorageBlob.md | 98 +++++- .../help/Get-AzStorageBlobByTag.md | 236 ++++++++++++++ .../help/Get-AzStorageBlobContent.md | 37 ++- .../help/Get-AzStorageBlobTag.md | 272 +++++++++++++++++ .../help/New-AzRmStorageShare.md | 3 + .../help/Remove-AzStorageBlob.md | 38 ++- .../help/Set-AzStorageBlobContent.md | 61 +++- .../help/Set-AzStorageBlobTag.md | 287 ++++++++++++++++++ .../help/Start-AzStorageBlobCopy.md | 122 ++++++-- .../help/Stop-AzStorageBlobCopy.md | 33 +- .../help/Update-AzRmStorageShare.md | 2 + .../Blob/Cmdlet/GetAzStorageBlobTag.cs | 176 +++++++++++ .../Blob/Cmdlet/GetAzureStorageBlob.cs | 84 ++--- .../Blob/Cmdlet/GetAzureStorageBlobByTag.cs | 144 +++++++++ .../Blob/Cmdlet/GetAzureStorageBlobContent.cs | 1 + .../Cmdlet/GetAzureStorageBlobCopyState.cs | 3 + .../Blob/Cmdlet/GetAzureStorageContainer.cs | 3 + ...AzureStorageContainerStoredAccessPolicy.cs | 3 + .../Cmdlet/NewAzureStorageBlobSasToken.cs | 1 + .../Blob/Cmdlet/NewAzureStorageContainer.cs | 3 + .../NewAzureStorageContainerSasToken.cs | 1 + ...AzureStorageContainerStoredAccessPolicy.cs | 3 + .../Cmdlet/RemoveAzureStorageContainer.cs | 3 + ...AzureStorageContainerStoredAccessPolicy.cs | 3 + .../Blob/Cmdlet/SetAzStorageBlobTag.cs | 193 ++++++++++++ .../Blob/Cmdlet/SetAzureStorageBlobContent.cs | 54 +++- .../Cmdlet/SetAzureStorageContainerAcl.cs | 3 + ...AzureStorageContainerStoredAccessPolicy.cs | 3 + .../Blob/Cmdlet/StartAzureStorageBlobCopy.cs | 48 ++- .../StartAzureStorageBlobIncrementalCopy.cs | 3 + .../Blob/StorageCloudBlobCmdletBase.cs | 49 +-- .../Storage/Common/AzureStorageBlob.cs | 80 ++++- ...isableAzureStorageDeleteRetentionPolicy.cs | 1 + .../DisableAzureStorageStaticWebsite.cs | 1 + ...EnableAzureStorageDeleteRetentionPolicy.cs | 1 + .../Cmdlet/EnableAzureStorageStaticWebsite.cs | 1 + .../Common/Cmdlet/GetAzureStorageCORSRule.cs | 3 + .../Cmdlet/GetAzureStorageServiceLogging.cs | 1 + .../Cmdlet/GetAzureStorageServiceMetrics.cs | 1 + .../GetAzureStorageServiceProperties.cs | 1 + .../Cmdlet/NewAzureStorageAccountSasToken.cs | 1 + .../Cmdlet/RemoveAzureStorageCORSRule.cs | 3 + .../Common/Cmdlet/SetAzureStorageCORSRule.cs | 3 + .../Cmdlet/SetAzureStorageServiceLogging.cs | 1 + .../Cmdlet/SetAzureStorageServiceMetrics.cs | 1 + .../SetAzureStorageServiceProperties.cs | 1 + .../Cmdlet/GetAzDataLakeGen2ChildItem.cs | 1 + .../Cmdlet/GetAzDataLakeGen2FileContent.cs | 1 + .../Cmdlet/GetAzDataLakeGen2Item.cs | 1 + .../Cmdlet/MoveAzDataLakeGen2Item.cs | 1 + .../Cmdlet/NewAzDataLakeGen2Item.cs | 1 + .../Cmdlet/RemoveAzDataLakeGen2Item.cs | 1 + .../Cmdlet/UpdateAzDataLakeGen2Item.cs | 1 + .../Storage/Storage.generated.format.ps1xml | 4 +- .../System.Numerics.Vectors.dll | Bin 163464 -> 0 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 18808 -> 0 bytes .../System.Text.Encodings.Web.dll | Bin 99192 -> 0 bytes .../System.Threading.Tasks.Extensions.dll | Bin 14712 -> 0 bytes 62 files changed, 1940 insertions(+), 178 deletions(-) create mode 100644 src/Storage/Storage.Management/help/Get-AzStorageBlobByTag.md create mode 100644 src/Storage/Storage.Management/help/Get-AzStorageBlobTag.md create mode 100644 src/Storage/Storage.Management/help/Set-AzStorageBlobTag.md create mode 100644 src/Storage/Storage/Blob/Cmdlet/GetAzStorageBlobTag.cs create mode 100644 src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobByTag.cs create mode 100644 src/Storage/Storage/Blob/Cmdlet/SetAzStorageBlobTag.cs delete mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll delete mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll delete mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Text.Encodings.Web.dll delete mode 100644 src/lib/Azure.Core/NetcoreAssemblies/System.Threading.Tasks.Extensions.dll diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index db6a57a251e2..ddaa96217232 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -176,7 +176,9 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'New-AzStorageObjectReplicationPolicyRule', 'Set-AzStorageObjectReplicationPolicy', 'Get-AzStorageObjectReplicationPolicy', - 'Remove-AzStorageObjectReplicationPolicy' + 'Remove-AzStorageObjectReplicationPolicy', + 'Set-AzStorageBlobTag', 'Get-AzStorageBlobTag', + 'Get-AzStorageBlobByTag' # Variables to export from this module # VariablesToExport = @() diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 515ec07816b0..a7c487481b41 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -23,6 +23,26 @@ - `New-AzStorageContainerSASToken` * support create account Sas token with new permission x,t,f - `New-AzStorageAccountSASToken` +* support get/set blob tags on a specific blob + - `Get-AzStorageBlobTag` + - `Set-AzStorageBlobTag` +* support create destination blob with specific blob tags while upload/copy Blob + - `Set-AzStorageBlobContent` + - `Start-AzStorageBlobCopy` +* support list blobs across containers with a blob tag filter sql expression + - `Get-AzStorageBlobByTag` +* support list blobs inside a container and include Blob Tags + - `Get-AzStorageBlob` +* support run blob operation with blob tag condition, and fail the cmdlet when blob tag condition not match + - `Get-AzStorageBlob` + - `Get-AzStorageBlobContent` + - `Get-AzStorageBlobTag` + - `Remove-AzStorageBlob` + - `Set-AzStorageBlobContent` + - `Set-AzStorageBlobTag` + - `Start-AzStorageBlobCopy` + - `Stop-AzStorageBlobCopy` + ## Version 2.3.0 * Fixed the issue that UserAgent is not added for some data plane cmdlets. diff --git a/src/Storage/Storage.Management/help/Az.Storage.md b/src/Storage/Storage.Management/help/Az.Storage.md index 6719d1e25ea8..940b78d3815f 100644 --- a/src/Storage/Storage.Management/help/Az.Storage.md +++ b/src/Storage/Storage.Management/help/Az.Storage.md @@ -83,6 +83,9 @@ Get the NetWorkRule property of a Storage account ### [Get-AzStorageBlob](Get-AzStorageBlob.md) Lists blobs in a container. +### [Get-AzStorageBlobByTag](Get-AzStorageBlobByTag.md) +Lists blobs in a storage account across containers, with a blob tag filter sql expression. + ### [Get-AzStorageBlobContent](Get-AzStorageBlobContent.md) Downloads a storage blob. @@ -92,6 +95,9 @@ Gets the copy status of an Azure Storage blob. ### [Get-AzStorageBlobServiceProperty](Get-AzStorageBlobServiceProperty.md) Gets service properties for Azure Storage Blob services. +### [Get-AzStorageBlobTag](Get-AzStorageBlobTag.md) +Get blob tags of a specific blob. + ### [Get-AzStorageContainer](Get-AzStorageContainer.md) Lists the storage containers. @@ -332,6 +338,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-AzStorageBlobTag](Set-AzStorageBlobTag.md) +Set blob tags of a specific blob. + ### [Set-AzStorageContainerAcl](Set-AzStorageContainerAcl.md) Sets the public access permission to a storage container. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageAccount.md b/src/Storage/Storage.Management/help/Get-AzStorageAccount.md index 10ebbf924971..3a292b331c28 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageAccount.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageAccount.md @@ -27,7 +27,7 @@ Get-AzStorageAccount [-ResourceGroupName] [-Name] [-IncludeGeo ### BlobRestoreStatusParameterSet ``` -Get-AzStorageAccount [-ResourceGroupName] [-Name] [-IncludeBlobRestoreStatus] +Get-AzStorageAccount [-ResourceGroupName] [-Name] [-IncludeBlobRestoreStatus] [-AsJob] [-DefaultProfile ] [] ``` @@ -175,7 +175,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlob.md b/src/Storage/Storage.Management/help/Get-AzStorageBlob.md index d196ebc52ce6..d8e14aca9b70 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageBlob.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlob.md @@ -15,31 +15,32 @@ Lists blobs in a container. ### BlobName (Default) ``` -Get-AzStorageBlob [[-Blob] ] [-Container] [-IncludeDeleted] [-MaxCount ] - [-ContinuationToken ] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [] +Get-AzStorageBlob [[-Blob] ] [-Container] [-IncludeDeleted] [-IncludeTag] [-MaxCount ] + [-ContinuationToken ] [-TagCondition ] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [] ``` ### SingleBlobSnapshotTime ``` -Get-AzStorageBlob [-Blob] [-Container] [-IncludeDeleted] -SnapshotTime - [-MaxCount ] [-ContinuationToken ] [-Context ] - [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [] +Get-AzStorageBlob [-Blob] [-Container] [-IncludeDeleted] [-IncludeTag] + -SnapshotTime [-MaxCount ] [-ContinuationToken ] + [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [] ``` ### SingleBlobVersionID ``` -Get-AzStorageBlob [-Blob] [-Container] [-IncludeDeleted] -VersionId - [-MaxCount ] [-ContinuationToken ] [-Context ] - [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] +Get-AzStorageBlob [-Blob] [-Container] [-IncludeDeleted] [-IncludeTag] -VersionId + [-MaxCount ] [-ContinuationToken ] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [] ``` ### BlobPrefix ``` -Get-AzStorageBlob [-Prefix ] [-Container] [-IncludeDeleted] [-IncludeVersion] +Get-AzStorageBlob [-Prefix ] [-Container] [-IncludeDeleted] [-IncludeVersion] [-IncludeTag] [-MaxCount ] [-ContinuationToken ] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [] @@ -129,7 +130,7 @@ PS C:\> Get-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "202 Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z +blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z ``` This command gets a single blobs verion with VersionId. @@ -142,11 +143,48 @@ PS C:\> Get-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime " Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False +blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False ``` This command gets a single blobs snapshot with SnapshotTime. +### Example 7: Get blob include blob tags +``` +PS C:\> $blobs = Get-AzStorageBlob -Container "containername" -IncludeTag + +PS C:\> $blobs + + AccountName: storageaccountname, ContainerName: containername + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * +testblob2 BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:04Z Hot False 2020-07-23T09:35:04.0856187Z * + + +PS C:\> $blobs[0].Tags +Name Value +---- ----- +tag1 value1 +tag2 value2 +``` + +This command lists blobs from a container with blob tags, and show the tags of the first blob. + +### Example 8: Get a single blob with blob tag condition +``` +PS C:\> Get-AzStorageBlob -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" + + AccountName: storageaccountname, ContainerName: containername + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * +``` + +This command gets a single blob with blob tag condition. +The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. + ## PARAMETERS ### -Blob @@ -291,6 +329,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -IncludeTag +Include blob tags, by default get blob won't include blob tags. + +```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 +``` + ### -IncludeVersion Blob versions will be listed only if this parameter is present, by default get blob won't include blob versions. @@ -370,6 +423,23 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: BlobName, SingleBlobSnapshotTime, SingleBlobVersionID +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -VersionId Blob VersionId diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobByTag.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobByTag.md new file mode 100644 index 000000000000..0e69188ba16a --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobByTag.md @@ -0,0 +1,236 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobbytag +schema: 2.0.0 +--- + +# Get-AzStorageBlobByTag + +## SYNOPSIS +Lists blobs in a storage account across containers, with a blob tag filter sql expression. + +## SYNTAX + +``` +Get-AzStorageBlobByTag -TagFilterSqlExpression [-MaxCount ] + [-ContinuationToken ] [-GetBlobProperty] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [] +``` + +## DESCRIPTION +The **Get-AzStorageBlobByTag** cmdlet lists blobs in a storage account across containers, with a blob tag filter sql expression. + +## EXAMPLES + +### Example 1: List all blobs match a specific blob tag, across containers. +``` +PS C:\> Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -Context $ctx + + AccountName: storageaccountname, ContainerName: containername1 + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob False +testblob2 False + + AccountName: storageaccountname, ContainerName: containername2 + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob3 False +testblob4 False +``` + +This command lists all blobs in a storage accoun, which contains a tag with name "tag1" and value "value1". + +### Example 2: List blobs in a specific container and match a specific blob tag +``` +PS C:\> Get-AzStorageBlobByTag -TagFilterSqlExpression "@container='containername' AND ""tag1""='value1'" -Context $ctx + + AccountName: storageaccountname, ContainerName: containername + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +test1 False +test2 False +``` + +This command lists blobs in a container and match a specific blob tag. + +### Example 3: List all blobs match a specific blob tag, across containers, and get the blob properties. +``` +PS C:\> Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -GetBlobProperty + + AccountName: storageaccountname, ContainerName: containername1 + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * +testblob2 BlockBlob 1048012 application/octet-stream 2020-07-23 09:35:05Z Hot False 2020-07-23T09:35:05.2504530Z * + + AccountName: storageaccountname, ContainerName: containername2 + +Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId +---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- +testblob3 BlockBlob 100 application/octet-stream 2020-07-01 09:55:14Z Hot False 2020-07-01T09:55:14.6507341Z * +testblob4 BlockBlob 2024 application/octet-stream 2020-07-01 09:42:11Z Hot False 2020-07-01T09:42:11.4283807Z * +``` + +This command lists all blobs in a storage accoun, which contains a tag with name "tag1" and value "value1", and get the blob properties. +Please note, to get blob properties with parameter -GetBlobProperty, each blob will need an addtional request, so the cmdlet runs show when there are many blobs. + +## PARAMETERS + +### -ClientTimeoutPerRequest +The client side maximum execution time for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ClientTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConcurrentTaskCount +The total amount of concurrent async tasks. +The default value is 10. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -ContinuationToken +Continuation Token. + +```yaml +Type: Microsoft.Azure.Storage.Blob.BlobContinuationToken +Parameter Sets: (All) +Aliases: + +Required: False +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GetBlobProperty +As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob. + +```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 +``` + +### -MaxCount +The max count of the blobs that can return. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServerTimeoutPerRequest +The server time out for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ServerTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TagFilterSqlExpression +Filters the result set to only include blobs whose tags match the specified expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobContent.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobContent.md index 72900e653d5a..de45fb892468 100644 --- a/src/Storage/Storage.Management/help/Get-AzStorageBlobContent.md +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobContent.md @@ -16,25 +16,27 @@ Downloads a storage blob. ### ReceiveManual (Default) ``` Get-AzStorageBlobContent [-Blob] [-Container] [-Destination ] [-CheckMd5] [-Force] - [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-AsJob] [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### BlobPipeline ``` Get-AzStorageBlobContent -CloudBlob [-BlobBaseClient ] [-Destination ] - [-CheckMd5] [-Force] [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-CheckMd5] [-Force] [-AsJob] [-TagCondition ] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### ContainerPipeline ``` Get-AzStorageBlobContent -CloudBlobContainer [-Blob] [-Destination ] - [-CheckMd5] [-Force] [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-CheckMd5] [-Force] [-AsJob] [-TagCondition ] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -294,6 +296,23 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Confirm Prompts you for confirmation before running the cmdlet. diff --git a/src/Storage/Storage.Management/help/Get-AzStorageBlobTag.md b/src/Storage/Storage.Management/help/Get-AzStorageBlobTag.md new file mode 100644 index 000000000000..d3ccb4e9f317 --- /dev/null +++ b/src/Storage/Storage.Management/help/Get-AzStorageBlobTag.md @@ -0,0 +1,272 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobtag +schema: 2.0.0 +--- + +# Get-AzStorageBlobTag + +## SYNOPSIS +Get blob tags of a specific blob. + +## SYNTAX + +### NamePipeline (Default) +``` +Get-AzStorageBlobTag [-Blob] [-Container] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] +``` + +### BlobPipeline +``` +Get-AzStorageBlobTag -BlobBaseClient [-TagCondition ] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] +``` + +### ContainerPipeline +``` +Get-AzStorageBlobTag -CloudBlobContainer [-Blob] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Get-AzStorageBlobTag** gets blob tags of a specific blob. + +## EXAMPLES + +### Example 1: Get blob tags on a specific blob +``` +PS C:\> Get-AzStorageBlobTag -Container "containername" -Blob testblob + +Name Value +---- ----- +tag1 value1 +tag2 value2 +``` + +This command gets blob tags on a specific blob. + +### Example 2: Get blob tags on a specific blob with tag condition +``` +PS C:\> Get-AzStorageBlobTag -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" + +Name Value +---- ----- +tag1 value1 +tag2 value2 +``` + +This command gets blob tags on a specific blob with tag condition. +The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. + +## PARAMETERS + +### -Blob +Blob name + +```yaml +Type: System.String +Parameter Sets: NamePipeline, ContainerPipeline +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BlobBaseClient +BlobBaseClient Object + +```yaml +Type: Azure.Storage.Blobs.Specialized.BlobBaseClient +Parameter Sets: BlobPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ClientTimeoutPerRequest +The client side maximum execution time for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ClientTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CloudBlobContainer +CloudBlobContainer Object + +```yaml +Type: Microsoft.Azure.Storage.Blob.CloudBlobContainer +Parameter Sets: ContainerPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ConcurrentTaskCount +The total amount of concurrent async tasks. +The default value is 10. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Container +Container name + +```yaml +Type: System.String +Parameter Sets: NamePipeline +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServerTimeoutPerRequest +The server time out for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ServerTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +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 + +### Azure.Storage.Blobs.Specialized.BlobBaseClient + +### Microsoft.Azure.Storage.Blob.CloudBlobContainer + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### System.Collections.Hashtable + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md index ae4ffeaf86dd..cb21e5208c3b 100644 --- a/src/Storage/Storage.Management/help/New-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/New-AzRmStorageShare.md @@ -97,6 +97,7 @@ Access tier for specific share. StorageV2 account can choose between Transaction Type: System.String Parameter Sets: (All) Aliases: +Accepted values: TransactionOptimized, Premium, Hot, Cool Required: False Position: Named @@ -127,6 +128,7 @@ Sets protocols for file shares. It cannot be changed after file share creation. Type: System.String Parameter Sets: (All) Aliases: +Accepted values: NFS, SMB Required: False Position: Named @@ -202,6 +204,7 @@ Sets reduction of the access rights for the remote superuser. Possible values in Type: System.String Parameter Sets: (All) Aliases: +Accepted values: NoRootSquash, RootSquash, AllSquash Required: False Position: Named diff --git a/src/Storage/Storage.Management/help/Remove-AzStorageBlob.md b/src/Storage/Storage.Management/help/Remove-AzStorageBlob.md index d5abefe3dbe9..b6f12863e72d 100644 --- a/src/Storage/Storage.Management/help/Remove-AzStorageBlob.md +++ b/src/Storage/Storage.Management/help/Remove-AzStorageBlob.md @@ -16,24 +16,25 @@ Removes the specified storage blob. ### NamePipeline (Default) ``` Remove-AzStorageBlob [-Blob] [-Container] [-DeleteSnapshot] [-SnapshotTime ] - [-VersionId ] [-Force] [-PassThru] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-VersionId ] [-Force] [-PassThru] [-TagCondition ] [-Context ] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### BlobPipeline ``` Remove-AzStorageBlob -CloudBlob [-BlobBaseClient ] [-DeleteSnapshot] [-Force] - [-PassThru] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-PassThru] [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### ContainerPipeline ``` Remove-AzStorageBlob -CloudBlobContainer [-Blob] [-DeleteSnapshot] - [-SnapshotTime ] [-VersionId ] [-Force] [-PassThru] [-Context ] - [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-SnapshotTime ] [-VersionId ] [-Force] [-PassThru] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -66,14 +67,14 @@ This command uses the asterisk (*) wildcard character and the pipeline to retrie ### Example 4: Remove a single blob version ``` -PS C:\> Remove-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" +PS C:\> Remove-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" ``` This command removes a single blobs verion with VersionId. ### Example 5: Remove a single blob snapshot ``` -PS C:\> Remove-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" +PS C:\> Remove-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" ``` This command removes a single blobs snapshot with SnapshotTime. @@ -303,6 +304,23 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -VersionId Blob VersionId diff --git a/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md b/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md index e65bd0ae4ffe..2deee06d9fb7 100644 --- a/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md +++ b/src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md @@ -16,30 +16,31 @@ Uploads a local file to an Azure Storage blob. ### SendManual (Default) ``` Set-AzStorageBlobContent [-File] [-Container] [-Blob ] [-BlobType ] - [-Properties ] [-Metadata ] [-PremiumPageBlobTier ] - [-StandardBlobTier ] [-EncryptionScope ] [-Force] [-AsJob] [-Context ] - [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-Properties ] [-Metadata ] [-Tag ] + [-PremiumPageBlobTier ] [-StandardBlobTier ] [-EncryptionScope ] [-Force] + [-AsJob] [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### ContainerPipeline ``` Set-AzStorageBlobContent [-File] [-Blob ] -CloudBlobContainer - [-BlobType ] [-Properties ] [-Metadata ] + [-BlobType ] [-Properties ] [-Metadata ] [-Tag ] [-PremiumPageBlobTier ] [-StandardBlobTier ] [-EncryptionScope ] [-Force] - [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-AsJob] [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### BlobPipeline ``` Set-AzStorageBlobContent [-File] -CloudBlob [-BlobType ] [-Properties ] - [-Metadata ] [-PremiumPageBlobTier ] [-StandardBlobTier ] - [-EncryptionScope ] [-Force] [-AsJob] [-Context ] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-Metadata ] [-Tag ] [-PremiumPageBlobTier ] + [-StandardBlobTier ] [-EncryptionScope ] [-Force] [-AsJob] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -415,6 +416,38 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -Tag +Blob Tags + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Confirm Prompts you for confirmation before running the cmdlet. @@ -447,7 +480,7 @@ 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). +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 diff --git a/src/Storage/Storage.Management/help/Set-AzStorageBlobTag.md b/src/Storage/Storage.Management/help/Set-AzStorageBlobTag.md new file mode 100644 index 000000000000..64608bb1d5fc --- /dev/null +++ b/src/Storage/Storage.Management/help/Set-AzStorageBlobTag.md @@ -0,0 +1,287 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +Module Name: Az.Storage +online version: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobtag +schema: 2.0.0 +--- + +# Set-AzStorageBlobTag + +## SYNOPSIS +Set blob tags of a specific blob. + +## SYNTAX + +### NamePipeline (Default) +``` +Set-AzStorageBlobTag [-Blob] [-Container] -Tag [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] +``` + +### BlobPipeline +``` +Set-AzStorageBlobTag -BlobBaseClient -Tag [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] +``` + +### ContainerPipeline +``` +Set-AzStorageBlobTag -CloudBlobContainer [-Blob] -Tag + [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Set-AzStorageBlobTag** sets blob tags of a specific blob. + +## EXAMPLES + +### Example 1: Set blob tags on a specific blob +``` +PS C:\> Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } + +Name Value +---- ----- +tag2 value2 +tag1 value1 +``` + +This command sets blob tags on a specific blob. + +### Example 2: Set blob tags on a specific blob with tag condition +``` +PS C:\> Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } -TagCondition """tag1""='value1'" + +Name Value +---- ----- +tag2 value2 +tag1 value1 +``` + +This command sets blob tags on a specific blob with tag condition. +The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. + +## PARAMETERS + +### -Blob +Blob name + +```yaml +Type: System.String +Parameter Sets: NamePipeline, ContainerPipeline +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BlobBaseClient +BlobBaseClient Object + +```yaml +Type: Azure.Storage.Blobs.Specialized.BlobBaseClient +Parameter Sets: BlobPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ClientTimeoutPerRequest +The client side maximum execution time for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ClientTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CloudBlobContainer +CloudBlobContainer Object + +```yaml +Type: Microsoft.Azure.Storage.Blob.CloudBlobContainer +Parameter Sets: ContainerPipeline +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ConcurrentTaskCount +The total amount of concurrent async tasks. +The default value is 10. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Container +Container name + +```yaml +Type: System.String +Parameter Sets: NamePipeline +Aliases: + +Required: True +Position: 1 +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Context +Azure Storage Context Object + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +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: AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServerTimeoutPerRequest +The server time out for each request in seconds. + +```yaml +Type: System.Nullable`1[System.Int32] +Parameter Sets: (All) +Aliases: ServerTimeoutPerRequestInSeconds + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Blob tags which will set to the blob. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +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 + +### Azure.Storage.Blobs.Specialized.BlobBaseClient + +### Microsoft.Azure.Storage.Blob.CloudBlobContainer + +### Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext + +## OUTPUTS + +### System.Boolean + +## NOTES + +## RELATED LINKS diff --git a/src/Storage/Storage.Management/help/Start-AzStorageBlobCopy.md b/src/Storage/Storage.Management/help/Start-AzStorageBlobCopy.md index cb4a1e98b5e6..ae08b0f93e34 100644 --- a/src/Storage/Storage.Management/help/Start-AzStorageBlobCopy.md +++ b/src/Storage/Storage.Management/help/Start-AzStorageBlobCopy.md @@ -17,8 +17,9 @@ Starts to copy a blob. ``` Start-AzStorageBlobCopy [-SrcBlob] -SrcContainer -DestContainer [-DestBlob ] [-PremiumPageBlobTier ] [-StandardBlobTier ] - [-RehydratePriority ] [-Context ] [-DestContext ] - [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-RehydratePriority ] [-Tag ] [-Context ] + [-DestContext ] [-DestTagCondition ] [-TagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -27,8 +28,9 @@ Start-AzStorageBlobCopy [-SrcBlob] -SrcContainer -DestContaine ``` Start-AzStorageBlobCopy -CloudBlob [-BlobBaseClient ] -DestContainer [-DestBlob ] [-PremiumPageBlobTier ] [-StandardBlobTier ] - [-RehydratePriority ] [-Context ] [-DestContext ] - [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-RehydratePriority ] [-Tag ] [-Context ] + [-DestContext ] [-DestTagCondition ] [-TagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -37,8 +39,9 @@ Start-AzStorageBlobCopy -CloudBlob [-BlobBaseClient ``` Start-AzStorageBlobCopy -CloudBlob [-BlobBaseClient ] -DestCloudBlob [-PremiumPageBlobTier ] [-StandardBlobTier ] - [-RehydratePriority ] [-Context ] [-DestContext ] - [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-RehydratePriority ] [-Tag ] [-Context ] + [-DestContext ] [-DestTagCondition ] [-TagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -47,8 +50,9 @@ Start-AzStorageBlobCopy -CloudBlob [-BlobBaseClient ``` Start-AzStorageBlobCopy -CloudBlobContainer [-SrcBlob] -DestContainer [-DestBlob ] [-PremiumPageBlobTier ] [-StandardBlobTier ] - [-RehydratePriority ] [-Context ] [-DestContext ] - [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-RehydratePriority ] [-Tag ] [-Context ] + [-DestContext ] [-DestTagCondition ] [-TagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -56,55 +60,60 @@ Start-AzStorageBlobCopy -CloudBlobContainer [-SrcBlob] -SrcFilePath -DestContainer - [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] - [-Context ] [-DestContext ] [-Force] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] [-Tag ] + [-Context ] [-DestContext ] [-DestTagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### ShareInstance ``` Start-AzStorageBlobCopy -SrcShare -SrcFilePath -DestContainer - [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] - [-Context ] [-DestContext ] [-Force] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] [-Tag ] + [-Context ] [-DestContext ] [-DestTagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### DirInstance ``` Start-AzStorageBlobCopy -SrcDir -SrcFilePath -DestContainer - [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] - [-Context ] [-DestContext ] [-Force] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-DestBlob ] [-StandardBlobTier ] [-RehydratePriority ] [-Tag ] + [-Context ] [-DestContext ] [-DestTagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### FileInstance ``` Start-AzStorageBlobCopy -SrcFile -DestContainer [-DestBlob ] - [-StandardBlobTier ] [-RehydratePriority ] [-Context ] - [-DestContext ] [-Force] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-StandardBlobTier ] [-RehydratePriority ] [-Tag ] + [-Context ] [-DestContext ] [-DestTagCondition ] [-Force] + [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ### FileInstanceToBlobInstance ``` Start-AzStorageBlobCopy -SrcFile -DestCloudBlob [-StandardBlobTier ] - [-RehydratePriority ] [-Context ] [-DestContext ] - [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-RehydratePriority ] [-Tag ] [-Context ] + [-DestContext ] [-DestTagCondition ] [-Force] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### UriPipeline ``` Start-AzStorageBlobCopy -AbsoluteUri -DestContainer -DestBlob - [-StandardBlobTier ] [-RehydratePriority ] [-Context ] - [-DestContext ] [-Force] [-ServerTimeoutPerRequest ] - [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] - [-WhatIf] [-Confirm] [] + [-StandardBlobTier ] [-RehydratePriority ] [-Tag ] + [-Context ] [-DestContext ] [-DestTagCondition ] + [-TagCondition ] [-Force] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] + [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -385,6 +394,23 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -DestTagCondition +Optional Tag expression statement to check match condition on the destination Blob. +The blob request will fail when the destination blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Force Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. @@ -572,6 +598,38 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -Tag +Blob Tags + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TagCondition +Optional Tag expression statement to check match condition on the source blob. +The blob request will fail when the source blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: ContainerName, BlobInstance, BlobInstanceToBlobInstance, ContainerInstance, UriPipeline +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Confirm Prompts you for confirmation before running the cmdlet. diff --git a/src/Storage/Storage.Management/help/Stop-AzStorageBlobCopy.md b/src/Storage/Storage.Management/help/Stop-AzStorageBlobCopy.md index 761bef010496..c9a73e46335d 100644 --- a/src/Storage/Storage.Management/help/Stop-AzStorageBlobCopy.md +++ b/src/Storage/Storage.Management/help/Stop-AzStorageBlobCopy.md @@ -16,15 +16,15 @@ Stops a copy operation. ### NamePipeline (Default) ``` Stop-AzStorageBlobCopy [-Blob] [-Container] [-Force] [-CopyId ] - [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ### BlobPipeline ``` -Stop-AzStorageBlobCopy -CloudBlob [-Force] [-CopyId ] [-Context ] - [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] +Stop-AzStorageBlobCopy -CloudBlob [-Force] [-CopyId ] [-TagCondition ] + [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] [] ``` @@ -32,9 +32,9 @@ Stop-AzStorageBlobCopy -CloudBlob [-Force] [-CopyId ] [-Cont ### ContainerPipeline ``` Stop-AzStorageBlobCopy -CloudBlobContainer [-Blob] [-Force] [-CopyId ] - [-Context ] [-ServerTimeoutPerRequest ] [-ClientTimeoutPerRequest ] - [-DefaultProfile ] [-ConcurrentTaskCount ] [-WhatIf] [-Confirm] - [] + [-TagCondition ] [-Context ] [-ServerTimeoutPerRequest ] + [-ClientTimeoutPerRequest ] [-DefaultProfile ] [-ConcurrentTaskCount ] + [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -240,6 +240,23 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -TagCondition +Optional Tag expression statement to check match condition. +The blob request will fail when the blob tags does not match the given expression. +See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Confirm Prompts you for confirmation before running the cmdlet. diff --git a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md index a984661d0eb0..06e47f07bfe6 100644 --- a/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md +++ b/src/Storage/Storage.Management/help/Update-AzRmStorageShare.md @@ -129,6 +129,7 @@ Access tier for specific share. StorageV2 account can choose between Transaction Type: System.String Parameter Sets: (All) Aliases: +Accepted values: TransactionOptimized, Premium, Hot, Cool Required: False Position: Named @@ -249,6 +250,7 @@ Sets reduction of the access rights for the remote superuser. Possible values in Type: System.String Parameter Sets: (All) Aliases: +Accepted values: NoRootSquash, RootSquash, AllSquash Required: False Position: Named diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzStorageBlobTag.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzStorageBlobTag.cs new file mode 100644 index 000000000000..e932caa2bbdb --- /dev/null +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzStorageBlobTag.cs @@ -0,0 +1,176 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob +{ + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Blobs.Specialized; + using Microsoft.Azure.Storage.Blob; + using Microsoft.WindowsAzure.Commands.Common; + using Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using System; + using System.Collections; + using System.Collections.Generic; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + + [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageBlobTag", DefaultParameterSetName = NameParameterSet, SupportsShouldProcess = true), OutputType(typeof(Hashtable))] + public class GetAzStorageAzureBlobTagCommand : StorageCloudBlobCmdletBase + { + /// + /// Blob Pipeline parameter set name + /// + private const string BlobPipelineParameterSet = "BlobPipeline"; + + /// + /// container pipeline paremeter set name + /// + private const string ContainerPipelineParameterSet = "ContainerPipeline"; + + /// + /// blob name and container name parameter set + /// + private const string NameParameterSet = "NamePipeline"; + + [Parameter(HelpMessage = "BlobBaseClient Object", Mandatory = true, + ValueFromPipelineByPropertyName = true, ParameterSetName = BlobPipelineParameterSet)] + [ValidateNotNull] + public BlobBaseClient BlobBaseClient { get; set; } + + [Parameter(HelpMessage = "CloudBlobContainer Object", Mandatory = true, + ValueFromPipelineByPropertyName = true, ParameterSetName = ContainerPipelineParameterSet)] + public CloudBlobContainer CloudBlobContainer { get; set; } + + [Parameter(ParameterSetName = ContainerPipelineParameterSet, Mandatory = true, Position = 0, HelpMessage = "Blob name")] + [Parameter(ParameterSetName = NameParameterSet, Mandatory = true, Position = 0, HelpMessage = "Blob name")] + public string Blob + { + get { return BlobName; } + set { BlobName = value; } + } + private string BlobName = String.Empty; + + [Parameter(HelpMessage = "Container name", Mandatory = true, Position = 1, + ParameterSetName = NameParameterSet)] + [ValidateNotNullOrEmpty] + public string Container + { + get { return ContainerName; } + set { ContainerName = value; } + } + private string ContainerName = String.Empty; + + /// + /// Initializes a new instance of the GetAzStorageAzureBlobTagCommand class. + /// + public GetAzStorageAzureBlobTagCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzStorageAzureBlobTagCommand class. + /// + /// IStorageBlobManagement channel + public GetAzStorageAzureBlobTagCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// Cmdlet begin processing + /// + protected override void BeginProcessing() + { + base.BeginProcessing(); + OutputStream.ConfirmWriter = (s1, s2, s3) => ShouldContinue(s2, s3); + } + + internal async Task GetBlobTag(long taskId, IStorageBlobManagement localChannel, BlobBaseClient blob, bool isValidBlob) + { + if (!isValidBlob) + { + ValidatePipelineCloudBlobTrack2(blob); + } + + IDictionary tags = (await blob.GetTagsAsync(BlobRequestConditions, + this.CmdletCancellationToken).ConfigureAwait(false)).Value; + + OutputStream.WriteObject(taskId, tags is null ? null : tags.ToHashtable()); + } + + internal async Task GetBlobTag(long taskId, IStorageBlobManagement localChannel, CloudBlobContainer container, string blobName) + { + if (!NameUtil.IsValidBlobName(blobName)) + { + throw new ArgumentException(String.Format(Resources.InvalidBlobName, blobName)); + } + + ValidatePipelineCloudBlobContainer(container); + + BlobContainerClient track2container = AzureStorageContainer.GetTrack2BlobContainerClient(container, this.Channel.StorageContext, ClientOptions); + + BlobBaseClient blobClient = Util.GetTrack2BlobClient(track2container, blobName, localChannel.StorageContext, null, false, null, ClientOptions); + + await GetBlobTag(taskId, localChannel, blobClient, true).ConfigureAwait(false); + } + + internal async Task GetBlobTag(long taskId, IStorageBlobManagement localChannel, string containerName, string blobName) + { + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + await GetBlobTag(taskId, localChannel, container, blobName).ConfigureAwait(false); + } + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + Func taskGenerator = null; + IStorageBlobManagement localChannel = Channel; + + string blobName = BlobName; + if (ParameterSetName == BlobPipelineParameterSet) + { + blobName = this.BlobBaseClient.Name; + } + + if (ShouldProcess(blobName, "Set blob Tags")) + { + switch (ParameterSetName) + { + case BlobPipelineParameterSet: + taskGenerator = (taskId) => GetBlobTag(taskId, localChannel, this.BlobBaseClient, false); + break; + case ContainerPipelineParameterSet: + CloudBlobContainer localContainer = CloudBlobContainer; + string localName = BlobName; + taskGenerator = (taskId) => GetBlobTag(taskId, localChannel, localContainer, localName); + break; + case NameParameterSet: + default: + string localContainerName = ContainerName; + string localBlobName = BlobName; + taskGenerator = (taskId) => GetBlobTag(taskId, localChannel, localContainerName, localBlobName); + break; + } + RunTask(taskGenerator); + } + } + } +} diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs index 170a27757ea1..1681e0b0d651 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlob.cs @@ -96,6 +96,7 @@ public string Prefix [Parameter(Position = 1, Mandatory = true, HelpMessage = "Container name", ValueFromPipelineByPropertyName = true, ParameterSetName = PrefixParameterSet)] [Parameter(Position = 1, Mandatory = true, HelpMessage = "Container name", ValueFromPipelineByPropertyName = true, ParameterSetName = SingleBlobSnapshotTimeParameterSet)] [Parameter(Position = 1, Mandatory = true, HelpMessage = "Container name", ValueFromPipelineByPropertyName = true, ParameterSetName = SingleBlobVersionIDParameterSet)] + [ValidateNotNullOrEmpty] public string Container { @@ -123,6 +124,10 @@ public string Container [ValidateNotNullOrEmpty] public SwitchParameter IncludeVersion { get; set; } + [Parameter(Mandatory = false, HelpMessage = "Include blob tags, by default get blob won't include blob tags.")] + [ValidateNotNullOrEmpty] + public SwitchParameter IncludeTag { get; set; } + [Parameter(HelpMessage = "Blob SnapshotTime", Mandatory = true, ParameterSetName = SingleBlobSnapshotTimeParameterSet)] [ValidateNotNullOrEmpty] public DateTimeOffset? SnapshotTime { get; set; } @@ -155,9 +160,16 @@ public int? MaxCount private bool NeedWarningForContinuationToken = false; + // Overwrite the parameter, function + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = NameParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = SingleBlobSnapshotTimeParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = SingleBlobVersionIDParameterSet)] + [ValidateNotNullOrEmpty] + public override string TagCondition { get; set; } + protected override bool UseTrack2Sdk() { - if (this.IncludeVersion.IsPresent || this.VersionId != null) + if (this.IncludeVersion.IsPresent || this.IncludeTag.IsPresent || this.VersionId != null) { return true; } @@ -236,6 +248,15 @@ internal async Task ListBlobsByName(long taskId, IStorageBlobManagement localCha blobClient = Util.GetTrack2BlobClient(track2container, blobName, localChannel.StorageContext, this.VersionId, blobProperties.IsLatestVersion, this.SnapshotTime is null ? null : this.SnapshotTime.Value.ToString("o"), ClientOptions, blobProperties.BlobType); AzureStorageBlob outputBlob = new AzureStorageBlob(blobClient, localChannel.StorageContext, blobProperties, ClientOptions); + if (this.IncludeTag.IsPresent) + { + IDictionary tags = (await blobClient.GetTagsAsync(null, this.CmdletCancellationToken).ConfigureAwait(false)).Value; + if (tags != null) + { + outputBlob.Tags = tags.ToHashtable(); + outputBlob.TagCount = tags.Count; + } + } OutputStream.WriteObject(taskId, outputBlob); } else // Use Track1 SDK @@ -284,6 +305,10 @@ internal async Task ListBlobsByPrefix(long taskId, IStorageBlobManagement localC { blobStates = blobStates | BlobStates.Version; } + if (IncludeTag.IsPresent) + { + blobTraits = blobTraits | BlobTraits.Tags; + } do { @@ -356,50 +381,6 @@ internal async Task ListBlobsByPrefix(long taskId, IStorageBlobManagement localC } } - /// - /// list blobs by blob Tag - /// - /// container name - /// blob preifx - /// An enumerable collection of IListBlobItem - internal async Task ListBlobsByTag(long taskId, IStorageBlobManagement localChannel, string tagFilterSqlExpression) - { - - BlobServiceClient blobServiceClient = Util.GetTrack2BlobServiceClient(localChannel.StorageContext, ClientOptions); - - int listCount = InternalMaxCount; - int MaxListCount = 5000; - int requestCount = MaxListCount; - int realListCount = 0; - BlobContinuationToken continuationToken = ContinuationToken; - string track2ContinuationToken = this.ContinuationToken is null ? null : this.ContinuationToken.NextMarker; - - do - { - requestCount = Math.Min(listCount, MaxListCount); - realListCount = 0; - IAsyncEnumerator> enumerator = blobServiceClient.FindBlobsByTagsAsync(tagFilterSqlExpression, CmdletCancellationToken) - .AsPages(track2ContinuationToken, requestCount) - .GetAsyncEnumerator(); - - Page page; - await enumerator.MoveNextAsync().ConfigureAwait(false); - page = enumerator.Current; - foreach (BlobTagItem item in page.Values) - { - BlobContainerClient track2container = blobServiceClient.GetBlobContainerClient(item.BlobContainerName); - OutputStream.WriteObject(taskId, GetAzureStorageBlob(item, track2container, localChannel.StorageContext, page.ContinuationToken, ClientOptions)); - realListCount++; - } - track2ContinuationToken = page.ContinuationToken; - - if (InternalMaxCount != int.MaxValue) - { - listCount -= realListCount; - } - } while (listCount > 0 && !string.IsNullOrEmpty(track2ContinuationToken)); - } - public static AzureStorageBlob GetAzureStorageBlob(BlobItem blobItem, BlobContainerClient track2container, AzureStorageContext context, string continuationToken = null, BlobClientOptions options = null) { BlobBaseClient blobClient = Util.GetTrack2BlobClient(track2container, blobItem.Name, context, blobItem.VersionId, blobItem.IsLatestVersion, blobItem.Snapshot, options, blobItem.Properties.BlobType); @@ -413,19 +394,6 @@ public static AzureStorageBlob GetAzureStorageBlob(BlobItem blobItem, BlobContai return outputblob; } - public static AzureStorageBlob GetAzureStorageBlob(BlobTagItem blobTagItem, BlobContainerClient track2container, AzureStorageContext context, string continuationToken = null, BlobClientOptions options = null) - { - BlobBaseClient blobClient = Util.GetTrack2BlobClient(track2container, blobTagItem.BlobName, context, options: options); - AzureStorageBlob outputblob = new AzureStorageBlob(blobClient, context, options); - if (continuationToken != null) - { - BlobContinuationToken token = new BlobContinuationToken(); - token.NextMarker = continuationToken; - outputblob.ContinuationToken = token; - } - return outputblob; - } - /// /// Execute command /// diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobByTag.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobByTag.cs new file mode 100644 index 000000000000..ac77d6184c6a --- /dev/null +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobByTag.cs @@ -0,0 +1,144 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using Commands.Common.Storage.ResourceModel; + using global::Azure; + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Blobs.Models; + using Microsoft.Azure.Storage.Blob; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using System; + using System.Collections.Generic; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + + /// + /// list azure blobs in specified azure container + /// + [Cmdlet("Get", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageBlobByTag"),OutputType(typeof(AzureStorageBlob))] + public class GetAzureStorageBlobByTagCommand : StorageCloudBlobCmdletBase + { + [Parameter(HelpMessage = "Filters the result set to only include blobs whose tags match the specified expression." + + "See details in https://docs.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks.", + Mandatory = true)] + [ValidateNotNullOrEmpty] + public string TagFilterSqlExpression { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "The max count of the blobs that can return.")] + public int? MaxCount + { + get { return InternalMaxCount; } + set + { + if (value.Value <= 0) + { + InternalMaxCount = int.MaxValue; + } + else + { + InternalMaxCount = value.Value; + } + } + } + private int InternalMaxCount = int.MaxValue; + + [Parameter(Mandatory = false, HelpMessage = "Continuation Token.")] + public BlobContinuationToken ContinuationToken { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob.")] + public SwitchParameter GetBlobProperty { get; set; } + + // Overwrite the useless parameter + public override string TagCondition { get; set; } + protected override bool UseTrack2Sdk() + { + return true; + } + + /// + /// Initializes a new instance of the GetAzureStorageBlobByTagCommand class. + /// + public GetAzureStorageBlobByTagCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzureStorageBlobByTagCommand class. + /// + /// IStorageBlobManagement channel + public GetAzureStorageBlobByTagCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// list blobs by blob Tag + /// + internal async Task ListBlobsByTag(long taskId, IStorageBlobManagement localChannel, string tagFilterSqlExpression) + { + + BlobServiceClient blobServiceClient = Util.GetTrack2BlobServiceClient(localChannel.StorageContext, ClientOptions); + + int listCount = InternalMaxCount; + int MaxListCount = 5000; + int requestCount = MaxListCount; + int realListCount = 0; + BlobContinuationToken continuationToken = ContinuationToken; + string track2ContinuationToken = this.ContinuationToken is null ? null : this.ContinuationToken.NextMarker; + + do + { + requestCount = Math.Min(listCount, MaxListCount); + realListCount = 0; + IAsyncEnumerator> enumerator = blobServiceClient.FindBlobsByTagsAsync(tagFilterSqlExpression, CmdletCancellationToken) + .AsPages(track2ContinuationToken, requestCount) + .GetAsyncEnumerator(); + + Page page; + await enumerator.MoveNextAsync().ConfigureAwait(false); + page = enumerator.Current; + foreach (BlobTagItem item in page.Values) + { + OutputStream.WriteObject(taskId, new AzureStorageBlob(item, Channel.StorageContext, page.ContinuationToken, ClientOptions, this.GetBlobProperty.IsPresent)); + realListCount++; + } + track2ContinuationToken = page.ContinuationToken; + + if (InternalMaxCount != int.MaxValue) + { + listCount -= realListCount; + } + } while (listCount > 0 && !string.IsNullOrEmpty(track2ContinuationToken)); + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + Func taskGenerator = null; + IStorageBlobManagement localChannel = Channel; + + taskGenerator = (taskId) => ListBlobsByTag(taskId, localChannel, this.TagFilterSqlExpression); + + RunTask(taskGenerator); + } + } +} diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobContent.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobContent.cs index 6730e0a57f41..19a3a113ce43 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobContent.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobContent.cs @@ -171,6 +171,7 @@ internal virtual async Task DownloadBlob(long taskId, IStorageBlobManagement loc { Track2Models.BlobProperties blobProperties = blob.GetProperties(cancellationToken: CmdletCancellationToken); + // When DownloadToAsync() support progresshandler, will add progress handler support. if (this.Force.IsPresent || !System.IO.File.Exists(filePath) || ShouldContinue(string.Format(Resources.OverwriteConfirmation, filePath), null)) diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobCopyState.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobCopyState.cs index cd8dd921ab0c..614416a6350f 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobCopyState.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageBlobCopyState.cs @@ -79,6 +79,9 @@ public SwitchParameter WaitForComplete } private bool waitForComplete; + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// CloudBlob objects which need to mointor until copy complete /// diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs index 1e2011e38c1f..78d083ff63b7 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainer.cs @@ -77,6 +77,9 @@ public int? MaxCount [Parameter(Mandatory = false, HelpMessage = "Continuation Token.")] public BlobContinuationToken ContinuationToken { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the GetAzureStorageContainerCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs index 15520c0c9946..8f1af8113385 100644 --- a/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs @@ -42,6 +42,9 @@ public class GetAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlo ValueFromPipelineByPropertyName = true)] public string Policy { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the GetAzureStorageContainerStoredAccessPolicyCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageBlobSasToken.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageBlobSasToken.cs index 5258126dfdf7..f87093b58a20 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageBlobSasToken.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageBlobSasToken.cs @@ -131,6 +131,7 @@ public string Policy public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } protected override bool UseTrack2Sdk() { diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs index d0111eafeacb..3323c3373ed6 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainer.cs @@ -83,6 +83,9 @@ public bool PreventEncryptionScopeOverride } private bool? preventEncryptionScopeOverride; + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the NewAzureStorageContainerCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerSasToken.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerSasToken.cs index 5090005b9bd1..050ca8a3fbff 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerSasToken.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerSasToken.cs @@ -89,6 +89,7 @@ public string Policy public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } protected override bool UseTrack2Sdk() { if (SasTokenHelper.IsTrack2Permission(this.Permission)) diff --git a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs index f935b2dfa32e..d40482897d44 100644 --- a/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs @@ -50,6 +50,9 @@ public class NewAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlo [Parameter(HelpMessage = "Expiry Time")] public DateTime? ExpiryTime { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the NewAzureStorageContainerStoredAccessPolicyCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs index 96e8f86979c1..5015f9042af5 100644 --- a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs +++ b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainer.cs @@ -49,6 +49,9 @@ public SwitchParameter Force [Parameter(Mandatory = false, HelpMessage = "Return whether the specified container is successfully removed")] public SwitchParameter PassThru { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the RemoveAzureStorageContainerCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs index 4a0936fad2fa..ad51e77a09c0 100644 --- a/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs @@ -44,6 +44,9 @@ public class RemoveAzureStorageContainerStoredAccessPolicyCommand : StorageCloud [Parameter(Mandatory = false, HelpMessage = "Return whether the specified policy is successfully removed")] public SwitchParameter PassThru { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the RemoveAzureStorageContainerStoredAccessPolicyCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzStorageBlobTag.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzStorageBlobTag.cs new file mode 100644 index 000000000000..98b2442ee014 --- /dev/null +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzStorageBlobTag.cs @@ -0,0 +1,193 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob +{ + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Blobs.Specialized; + using Microsoft.Azure.Storage.Blob; + using Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using System; + using System.Collections; + using System.Linq; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + + [Cmdlet("Set", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageBlobTag", DefaultParameterSetName = NameParameterSet, SupportsShouldProcess = true),OutputType(typeof(Boolean))] + public class SetAzStorageAzureBlobTagCommand : StorageCloudBlobCmdletBase + { + /// + /// Blob Pipeline parameter set name + /// + private const string BlobPipelineParameterSet = "BlobPipeline"; + + /// + /// container pipeline paremeter set name + /// + private const string ContainerPipelineParameterSet = "ContainerPipeline"; + + /// + /// blob name and container name parameter set + /// + private const string NameParameterSet = "NamePipeline"; + + [Parameter(HelpMessage = "BlobBaseClient Object", Mandatory = true, + ValueFromPipelineByPropertyName = true, ParameterSetName = BlobPipelineParameterSet)] + [ValidateNotNull] + public BlobBaseClient BlobBaseClient { get; set; } + + [Parameter(HelpMessage = "CloudBlobContainer Object", Mandatory = true, + ValueFromPipelineByPropertyName = true, ParameterSetName = ContainerPipelineParameterSet)] + public CloudBlobContainer CloudBlobContainer { get; set; } + + [Parameter(ParameterSetName = ContainerPipelineParameterSet, Mandatory = true, Position = 0, HelpMessage = "Blob name")] + [Parameter(ParameterSetName = NameParameterSet, Mandatory = true, Position = 0, HelpMessage = "Blob name")] + public string Blob + { + get { return BlobName; } + set { BlobName = value; } + } + private string BlobName = String.Empty; + + [Parameter(HelpMessage = "Container name", Mandatory = true, Position = 1, + ParameterSetName = NameParameterSet)] + [ValidateNotNullOrEmpty] + public string Container + { + get { return ContainerName; } + set { ContainerName = value; } + } + private string ContainerName = String.Empty; + + [Parameter(HelpMessage = "Blob Tags", Mandatory = true)] + [ValidateNotNullOrEmpty] + public Hashtable Tag + { + get + { + return BlobTag; + } + + set + { + BlobTag = value; + } + } + + private Hashtable BlobTag = null; + + /// + /// Initializes a new instance of the RemoveStorageAzureBlobCommand class. + /// + public SetAzStorageAzureBlobTagCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the RemoveStorageAzureBlobCommand class. + /// + /// IStorageBlobManagement channel + public SetAzStorageAzureBlobTagCommand(IStorageBlobManagement channel) + { + Channel = channel; + } + + /// + /// Cmdlet begin processing + /// + protected override void BeginProcessing() + { + base.BeginProcessing(); + OutputStream.ConfirmWriter = (s1, s2, s3) => ShouldContinue(s2, s3); + } + + internal async Task SetBlobTag(long taskId, IStorageBlobManagement localChannel, BlobBaseClient blob, bool isValidBlob) + { + if (!isValidBlob) + { + ValidatePipelineCloudBlobTrack2(blob); + } + + await blob.SetTagsAsync( + this.BlobTag.Cast().ToDictionary(d => (string)d.Key, d => (string)d.Value), + this.BlobRequestConditions, this.CmdletCancellationToken).ConfigureAwait(false); + + OutputStream.WriteObject(taskId, this.BlobTag); + } + + internal async Task SetBlobTag(long taskId, IStorageBlobManagement localChannel, CloudBlobContainer container, string blobName) + { + if (!NameUtil.IsValidBlobName(blobName)) + { + throw new ArgumentException(String.Format(Resources.InvalidBlobName, blobName)); + } + + ValidatePipelineCloudBlobContainer(container); + + BlobContainerClient track2container = AzureStorageContainer.GetTrack2BlobContainerClient(container, this.Channel.StorageContext, ClientOptions); + + BlobBaseClient blobClient = Util.GetTrack2BlobClient(track2container, blobName, localChannel.StorageContext, null, false, null, ClientOptions); + + await SetBlobTag(taskId, localChannel, blobClient, true).ConfigureAwait(false); + } + + internal async Task SetBlobTag(long taskId, IStorageBlobManagement localChannel, string containerName, string blobName) + { + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + await SetBlobTag(taskId, localChannel, container, blobName).ConfigureAwait(false); + } + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + Func taskGenerator = null; + IStorageBlobManagement localChannel = Channel; + + string blobName = BlobName; + if (ParameterSetName == BlobPipelineParameterSet) + { + blobName = this.BlobBaseClient.Name; + } + + if (ShouldProcess(blobName, "Set blob Tags")) + { + switch (ParameterSetName) + { + case BlobPipelineParameterSet: + taskGenerator = (taskId) => SetBlobTag(taskId, localChannel, this.BlobBaseClient, false); + break; + case ContainerPipelineParameterSet: + CloudBlobContainer localContainer = CloudBlobContainer; + string localName = BlobName; + taskGenerator = (taskId) => SetBlobTag(taskId, localChannel, localContainer, localName); + break; + case NameParameterSet: + default: + string localContainerName = ContainerName; + string localBlobName = BlobName; + taskGenerator = (taskId) => SetBlobTag(taskId, localChannel, localContainerName, localBlobName); + break; + } + RunTask(taskGenerator); + } + } + } +} diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs index 387cfdcc0c32..86d2e7954dae 100644 --- a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs @@ -163,6 +163,22 @@ public Hashtable Metadata private Hashtable BlobMetadata = null; + [Parameter(HelpMessage = "Blob Tags", Mandatory = false)] + [ValidateNotNullOrEmpty] + public Hashtable Tag + { + get + { + return BlobTag; + } + + set + { + BlobTag = value; + } + } + private Hashtable BlobTag = null; + [Parameter(HelpMessage = "Premium Page Blob Tier", Mandatory = false)] public PremiumPageBlobTier PremiumPageBlobTier { @@ -208,6 +224,20 @@ public string StandardBlobTier [ValidateNotNullOrEmpty] public string EncryptionScope { get; set; } + protected override bool UseTrack2Sdk() + { + if (this.BlobTag != null) + { + return true; + } + if (!string.IsNullOrEmpty(this.EncryptionScope)) + { + return true; + } + + return base.UseTrack2Sdk(); + } + private BlobUploadRequestQueue UploadRequests = new BlobUploadRequestQueue(); /// @@ -375,7 +405,7 @@ protected override void DoEndProcessing() Tuple uploadRequest = UploadRequests.DequeueRequest(); IStorageBlobManagement localChannel = Channel; Func taskGenerator; - if (!UseTrack2Sdk() && string.IsNullOrEmpty(this.EncryptionScope)) + if (!UseTrack2Sdk()) { //Upload with DMlib taskGenerator = (taskId) => Upload2Blob(taskId, localChannel, uploadRequest.Item1, uploadRequest.Item2); @@ -458,15 +488,20 @@ internal virtual async Task UploadBlobwithSdk(long taskId, IStorageBlobManagemen } }); + BlobBaseClient outputBlobClient = null; using (FileStream stream = System.IO.File.OpenRead(ResolvedFileName)) { //block blob if (string.Equals(blobType, BlockBlobType, StringComparison.InvariantCultureIgnoreCase)) { BlobClient blobClient = GetTrack2BlobClient(blob, localChannel.StorageContext, options); + outputBlobClient = blobClient; StorageTransferOptions trasnferOption = new StorageTransferOptions() { MaximumConcurrency = this.GetCmdletConcurrency() }; BlobUploadOptions uploadOptions = new BlobUploadOptions(); - + if (this.BlobTag != null) + { + uploadOptions.Tags = this.BlobTag.Cast().ToDictionary(d => (string)d.Key, d => (string)d.Value); + } uploadOptions.Metadata = metadata; uploadOptions.HttpHeaders = blobHttpHeaders; uploadOptions.Conditions = this.BlobRequestConditions; @@ -491,8 +526,12 @@ internal virtual async Task UploadBlobwithSdk(long taskId, IStorageBlobManagemen throw new ArgumentException(String.Format("File size {0} Bytes is invalid for PageBlob, must be a multiple of 512 bytes.", fileSize.ToString())); } pageblobClient = GetTrack2PageBlobClient(blob, localChannel.StorageContext, options); + outputBlobClient = pageblobClient; PageBlobCreateOptions createOptions = new PageBlobCreateOptions(); - + if (this.BlobTag != null) + { + createOptions.Tags = this.BlobTag.Cast().ToDictionary(d => (string)d.Key, d => (string)d.Value); + } createOptions.Metadata = metadata; createOptions.HttpHeaders = blobHttpHeaders; createOptions.Conditions = this.PageBlobRequestConditions; @@ -501,8 +540,12 @@ internal virtual async Task UploadBlobwithSdk(long taskId, IStorageBlobManagemen else //append { appendblobClient = GetTrack2AppendBlobClient(blob, localChannel.StorageContext, options); + outputBlobClient = appendblobClient; AppendBlobCreateOptions createOptions = new AppendBlobCreateOptions(); - + if (this.BlobTag != null) + { + createOptions.Tags = this.BlobTag.Cast().ToDictionary(d => (string)d.Key, d => (string)d.Value); + } createOptions.Metadata = metadata; createOptions.HttpHeaders = blobHttpHeaders; createOptions.Conditions = this.AppendBlobRequestConditions; @@ -571,8 +614,7 @@ internal virtual async Task UploadBlobwithSdk(long taskId, IStorageBlobManagemen BlobName)); } } - - WriteCloudBlobObject(taskId, localChannel, blob); + AzureStorageBlob outputBlob = new AzureStorageBlob(outputBlobClient, localChannel.StorageContext, null, ClientOptions); } } diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerAcl.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerAcl.cs index 205f5b139c60..bd018315ddbd 100644 --- a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerAcl.cs +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerAcl.cs @@ -49,6 +49,9 @@ public BlobContainerPublicAccessType Permission [Parameter(Mandatory = false, HelpMessage = "Display Container Information")] public SwitchParameter PassThru { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the SetAzureStorageContainerAclCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs index 85396a860ea6..edd3cc972cce 100644 --- a/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs @@ -56,6 +56,9 @@ public class SetAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlo [Parameter(HelpMessage = "Set ExpiryTime as null for the policy")] public SwitchParameter NoExpiryTime { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Initializes a new instance of the SetAzureStorageContainerStoredAccessPolicyCommand class. /// diff --git a/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs b/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs index be81d99a50d8..89c2e9f0d7b3 100644 --- a/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs @@ -250,6 +250,22 @@ public Azure.Storage.Blob.RehydratePriority RehydratePriority } private Azure.Storage.Blob.RehydratePriority? rehydratePriority = null; + [Parameter(HelpMessage = "Blob Tags", Mandatory = false)] + [ValidateNotNullOrEmpty] + public Hashtable Tag + { + get + { + return BlobTag; + } + + set + { + BlobTag = value; + } + } + private Hashtable BlobTag = null; + [Alias("SrcContext", "SourceContext")] [Parameter(HelpMessage = "Source Azure Storage Context Object", ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = ContainerNameParameterSet)] [Parameter(HelpMessage = "Source Azure Storage Context Object", ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = BlobParameterSet)] @@ -267,8 +283,30 @@ public Azure.Storage.Blob.RehydratePriority RehydratePriority [Parameter(HelpMessage = "Destination Storage context object", Mandatory = false)] public IStorageContext DestContext { get; set; } + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Destination Blob. The blob request will fail when the destiantion blob tags not match the given tag conditions.", Mandatory = false)] + [ValidateNotNullOrEmpty] + public virtual string DestTagCondition { get; set; } + + // Overwrite the parameter, function + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = BlobParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = BlobToBlobParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = ContainerParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = ContainerNameParameterSet)] + [Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false, ParameterSetName = UriParameterSet)] + [ValidateNotNullOrEmpty] + public override string TagCondition { get; set; } + public override SwitchParameter AsJob { get; set; } + protected override bool UseTrack2Sdk() + { + if (this.BlobTag != null || this.TagCondition != null || this.DestTagCondition != null) + { + return true; + } + return base.UseTrack2Sdk(); + } + private bool skipSourceChannelInit; /// @@ -756,8 +794,16 @@ private async Task StartCopyFromUri(long taskId, IStorageBlobManagement destChan options.AccessTier = Util.ConvertAccessTier_Track1ToTrack2(standardBlobTier); options.RehydratePriority = Util.ConvertRehydratePriority_Track1ToTrack2(rehydratePriority); } + if (this.BlobTag != null) + { + options.Tags = this.BlobTag.Cast().ToDictionary(d => (string)d.Key, d => (string)d.Value); + } options.SourceConditions = this.BlobRequestConditions; - + if (this.DestTagCondition != null) + { + options.DestinationConditions = new Track2Models.BlobRequestConditions(); + options.DestinationConditions.TagConditions = DestTagCondition; + } Track2Models.CopyFromUriOperation copyId = await destBlob.StartCopyFromUriAsync(srcUri, options, this.CmdletCancellationToken).ConfigureAwait(false); this.OutputStream.WriteVerbose(taskId, String.Format(Resources.CopyDestinationBlobPending, destBlob.Name, destBlob.BlobContainerName, copyId)); diff --git a/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobIncrementalCopy.cs b/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobIncrementalCopy.cs index 9643e6586e6d..ef8d3417e436 100644 --- a/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobIncrementalCopy.cs +++ b/src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobIncrementalCopy.cs @@ -133,6 +133,9 @@ public string SrcContainer private bool skipSourceChannelInit; + // Overwrite the useless parameter + public override string TagCondition { get; set; } + /// /// Create blob client and storage service management channel if need to. /// diff --git a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs index 6e9f6189c313..14942bac3f5a 100644 --- a/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs +++ b/src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs @@ -15,36 +15,35 @@ namespace Microsoft.WindowsAzure.Commands.Storage { using Commands.Common.Storage.ResourceModel; - using Microsoft.WindowsAzure.Commands.Common.Storage; - using Microsoft.WindowsAzure.Commands.Storage.Common; - using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using global::Azure; + using global::Azure.Core; + using global::Azure.Storage; + using global::Azure.Storage.Blobs; + using global::Azure.Storage.Blobs.Specialized; + using global::Azure.Storage.Files.DataLake; + using global::Azure.Storage.Files.DataLake.Models; using Microsoft.Azure.Storage; using Microsoft.Azure.Storage.Blob; + using Microsoft.WindowsAzure.Commands.Common; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; using System; + using System.Collections; using System.Collections.Generic; using System.Globalization; + using System.Management.Automation; using System.Threading.Tasks; - using System.Collections; - using Microsoft.Azure.Commands.Common.Authentication.Abstractions; - using global::Azure.Storage.Blobs; - using global::Azure.Storage.Files.DataLake; - using global::Azure.Storage; - using global::Azure; - using global::Azure.Storage.Files.DataLake.Models; - using global::Azure.Core; - using Microsoft.WindowsAzure.Commands.Common; using Track2blobModel = global::Azure.Storage.Blobs.Models; - using global::Azure.Storage.Blobs.Specialized; - using System.Management.Automation; /// /// Base cmdlet for storage blob/container cmdlet /// public class StorageCloudBlobCmdletBase : StorageCloudCmdletBase { - //[Parameter(HelpMessage = "Optional Query statement to apply to the Tags of the Blob. The blob request will fail when the blob tags not match the given tag conditions.", Mandatory = false)] - //[ValidateNotNullOrEmpty] - //public virtual string TagCondition { get; set; } + [Parameter(HelpMessage = "Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression." + + "See details in https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations.", Mandatory = false)] + [ValidateNotNullOrEmpty] + public virtual string TagCondition { get; set; } /// /// Initializes a new instance of the StorageCloudBlobCmdletBase class. @@ -89,6 +88,10 @@ public BlobClientOptions ClientOptions get { global::Azure.Storage.Blobs.Models.BlobRequestConditions requestConditions = new global::Azure.Storage.Blobs.Models.BlobRequestConditions(); + if (this.TagCondition != null) + { + requestConditions.TagConditions = this.TagCondition; + } return requestConditions; } } @@ -98,6 +101,10 @@ public BlobClientOptions ClientOptions get { global::Azure.Storage.Blobs.Models.PageBlobRequestConditions requestConditions = new global::Azure.Storage.Blobs.Models.PageBlobRequestConditions(); + if (this.TagCondition != null) + { + requestConditions.TagConditions = this.TagCondition; + } return requestConditions; } } @@ -107,6 +114,10 @@ public BlobClientOptions ClientOptions get { global::Azure.Storage.Blobs.Models.AppendBlobRequestConditions requestConditions = new global::Azure.Storage.Blobs.Models.AppendBlobRequestConditions(); + if (this.TagCondition != null) + { + requestConditions.TagConditions = this.TagCondition; + } return requestConditions; } } @@ -922,6 +933,10 @@ public static AppendBlobClient GetTrack2AppendBlobClient(CloudBlob cloubBlob, Az protected virtual bool UseTrack2Sdk() { + if (!string.IsNullOrEmpty(TagCondition)) + { + return true; + } return false; } } diff --git a/src/Storage/Storage/Common/AzureStorageBlob.cs b/src/Storage/Storage/Common/AzureStorageBlob.cs index a52af8a3dd47..b283a2536540 100644 --- a/src/Storage/Storage/Common/AzureStorageBlob.cs +++ b/src/Storage/Storage/Common/AzureStorageBlob.cs @@ -120,9 +120,13 @@ public BlobBaseClient BlobBaseClient { get { - if (privateBlobProperties == null) + // For find blob by Tag, won't auto get blob properties. + if (getLazyProperties) { - privateBlobProperties = BlobBaseClient.GetProperties().Value; + if (privateBlobProperties == null) + { + privateBlobProperties = BlobBaseClient.GetProperties().Value; + } } return privateBlobProperties; } @@ -170,6 +174,11 @@ public BlobBaseClient BlobBaseClient private BlobClientOptions privateClientOptions = null; + /// + /// Get the lazy properties automaticlly, won't get it when the item is created with Find-AzStorageBlobByTag + /// + private bool getLazyProperties = true; + /// /// Blob AccessTier.. /// @@ -178,7 +187,22 @@ public BlobBaseClient BlobBaseClient /// /// Blob TagCount. /// - public long TagCount { get; set; } + public long TagCount + { + get + { + if (tagcount == -1) + { + tagcount = BlobProperties.TagCount; + } + return tagcount; + } + set + { + tagcount = value; + } + } + private long tagcount = -1; /// /// Blob Tags @@ -260,6 +284,47 @@ public AzureStorageBlob(BlobBaseClient track2BlobClient, AzureStorageContext sto SetProperties(track2BlobClient, storageContext, blobProperties, options); } + /// + /// Azure storage blob constructor + /// + /// ICloud blob object + public AzureStorageBlob(BlobTagItem blob, AzureStorageContext storageContext, string continuationToken = null, BlobClientOptions options = null, bool getProperties = false) + { + // Get Track2 blob client + BlobUriBuilder uriBuilder = new BlobUriBuilder(storageContext.StorageAccount.BlobEndpoint) + { + BlobContainerName = blob.BlobContainerName, + BlobName = blob.BlobName + }; + Uri blobUri = uriBuilder.ToUri(); + if (storageContext.StorageAccount.Credentials.IsSAS) + { + blobUri= new Uri(blobUri.ToString() + storageContext.StorageAccount.Credentials.SASToken); + } + this.privateBlobBaseClient = Util.GetTrack2BlobClient(blobUri, storageContext, options); + + // Set continuationToken + if (continuationToken != null) + { + BlobContinuationToken token = new BlobContinuationToken(); + token.NextMarker = continuationToken; + this.ContinuationToken = token; + ICloudBlob = storageContext.StorageAccount.CreateCloudBlobClient().GetContainerReference(blob.BlobContainerName).GetBlobReference(blob.BlobName); + } + + // Set other properties + if (!getProperties) + { + getLazyProperties = false; + Name = blob.BlobName; + this.Context = storageContext; + } + else + { + SetProperties(this.privateBlobBaseClient, storageContext, null, options); + } + } + private void SetProperties(BlobBaseClient track2BlobClient, AzureStorageContext storageContext, global::Azure.Storage.Blobs.Models.BlobProperties blobProperties = null, BlobClientOptions options = null) { if (blobProperties == null) @@ -282,7 +347,14 @@ private void SetProperties(BlobBaseClient track2BlobClient, AzureStorageContext Name = track2BlobClient.Name; this.Context = storageContext; privateClientOptions = options; - ICloudBlob = GetTrack1Blob(track2BlobClient, storageContext.StorageAccount.Credentials, privateBlobProperties.BlobType); + if (privateBlobProperties is null) + { + ICloudBlob = GetTrack1Blob(track2BlobClient, storageContext.StorageAccount.Credentials, null); + } + else + { + ICloudBlob = GetTrack1Blob(track2BlobClient, storageContext.StorageAccount.Credentials, privateBlobProperties.BlobType); + } if (!(ICloudBlob is InvalidCloudBlob)) { BlobType = ICloudBlob.BlobType; diff --git a/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageDeleteRetentionPolicy.cs b/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageDeleteRetentionPolicy.cs index f7a35f2f5916..f2236f0038a7 100644 --- a/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageDeleteRetentionPolicy.cs +++ b/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageDeleteRetentionPolicy.cs @@ -34,6 +34,7 @@ public class DisableAzureStorageServiceDeleteRetentionPolicyCommand : StorageClo public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public DisableAzureStorageServiceDeleteRetentionPolicyCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageStaticWebsite.cs b/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageStaticWebsite.cs index 2593079f079b..72d18b7b8f96 100644 --- a/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageStaticWebsite.cs +++ b/src/Storage/Storage/Common/Cmdlet/DisableAzureStorageStaticWebsite.cs @@ -34,6 +34,7 @@ public class DisableAzureStorageServiceStaticWebsiteCommand : StorageCloudBlobCm public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public DisableAzureStorageServiceStaticWebsiteCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageDeleteRetentionPolicy.cs b/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageDeleteRetentionPolicy.cs index 5017876d9f48..a0ca19963ca2 100644 --- a/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageDeleteRetentionPolicy.cs +++ b/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageDeleteRetentionPolicy.cs @@ -38,6 +38,7 @@ public class EnableAzureStorageServiceDeleteRetentionPolicyCommand : StorageClou public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public EnableAzureStorageServiceDeleteRetentionPolicyCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageStaticWebsite.cs b/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageStaticWebsite.cs index cd554c794b28..c00c9d46e855 100644 --- a/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageStaticWebsite.cs +++ b/src/Storage/Storage/Common/Cmdlet/EnableAzureStorageStaticWebsite.cs @@ -42,6 +42,7 @@ public class EnableAzureStorageServiceStaticWebsiteCommand : StorageCloudBlobCmd public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public EnableAzureStorageServiceStaticWebsiteCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageCORSRule.cs b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageCORSRule.cs index d101aaa51168..6a804217b4b7 100644 --- a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageCORSRule.cs +++ b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageCORSRule.cs @@ -33,6 +33,9 @@ public class GetAzureStorageCORSRuleCommand : StorageCloudBlobCmdletBase [Parameter(Mandatory = true, Position = 0, HelpMessage = GetAzureStorageServiceLoggingCommand.ServiceTypeHelpMessage)] public StorageServiceType ServiceType { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + public GetAzureStorageCORSRuleCommand() { EnableMultiThread = false; diff --git a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceLogging.cs b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceLogging.cs index 3b262cfb9442..8f6ed333b64f 100644 --- a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceLogging.cs +++ b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceLogging.cs @@ -36,6 +36,7 @@ public class GetAzureStorageServiceLoggingCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public GetAzureStorageServiceLoggingCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceMetrics.cs b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceMetrics.cs index a4e58c1b73cc..3c8d01ec322c 100644 --- a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceMetrics.cs +++ b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceMetrics.cs @@ -38,6 +38,7 @@ public class GetAzureStorageServiceMetricsCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public GetAzureStorageServiceMetricsCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceProperties.cs b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceProperties.cs index 1b21856067f4..389707da15ce 100644 --- a/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceProperties.cs +++ b/src/Storage/Storage/Common/Cmdlet/GetAzureStorageServiceProperties.cs @@ -34,6 +34,7 @@ public class GetAzureStorageServicePropertyCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public GetAzureStorageServicePropertyCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/NewAzureStorageAccountSasToken.cs b/src/Storage/Storage/Common/Cmdlet/NewAzureStorageAccountSasToken.cs index e1a0d9dd4174..9babe6ae5174 100644 --- a/src/Storage/Storage/Common/Cmdlet/NewAzureStorageAccountSasToken.cs +++ b/src/Storage/Storage/Common/Cmdlet/NewAzureStorageAccountSasToken.cs @@ -55,6 +55,7 @@ public class NewAzureStorageAccountSasTokenCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } protected override bool UseTrack2Sdk() { diff --git a/src/Storage/Storage/Common/Cmdlet/RemoveAzureStorageCORSRule.cs b/src/Storage/Storage/Common/Cmdlet/RemoveAzureStorageCORSRule.cs index 26ae7ae0e3a0..da3d318cf197 100644 --- a/src/Storage/Storage/Common/Cmdlet/RemoveAzureStorageCORSRule.cs +++ b/src/Storage/Storage/Common/Cmdlet/RemoveAzureStorageCORSRule.cs @@ -29,6 +29,9 @@ public class RemoveAzureStorageCORSRuleCommand : StorageCloudBlobCmdletBase [Parameter(Mandatory = true, Position = 0, HelpMessage = GetAzureStorageServiceLoggingCommand.ServiceTypeHelpMessage)] public StorageServiceType ServiceType { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + public RemoveAzureStorageCORSRuleCommand() { EnableMultiThread = false; diff --git a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageCORSRule.cs b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageCORSRule.cs index 81bc9e0bf278..6912743789cb 100644 --- a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageCORSRule.cs +++ b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageCORSRule.cs @@ -46,6 +46,9 @@ public class SetAzureStorageCORSRuleCommand : StorageCloudBlobCmdletBase [Parameter(Mandatory = false, HelpMessage = "Display ServiceProperties")] public SwitchParameter PassThru { get; set; } + // Overwrite the useless parameter + public override string TagCondition { get; set; } + public SetAzureStorageCORSRuleCommand() { EnableMultiThread = false; diff --git a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceLogging.cs b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceLogging.cs index 487237a3e4d8..6ab811b54fc2 100644 --- a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceLogging.cs +++ b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceLogging.cs @@ -51,6 +51,7 @@ public class SetAzureStorageServiceLoggingCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public SetAzureStorageServiceLoggingCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceMetrics.cs b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceMetrics.cs index d4352f0de326..5e6bf25d6b5c 100644 --- a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceMetrics.cs +++ b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceMetrics.cs @@ -51,6 +51,7 @@ public class SetAzureStorageServiceMetricsCommand : StorageCloudBlobCmdletBase public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public SetAzureStorageServiceMetricsCommand() { diff --git a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceProperties.cs b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceProperties.cs index 41a001d53771..60f682bd8c7b 100644 --- a/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceProperties.cs +++ b/src/Storage/Storage/Common/Cmdlet/SetAzureStorageServiceProperties.cs @@ -42,6 +42,7 @@ public class UpdateAzureStorageServicePropertyCommand : StorageCloudBlobCmdletBa public override int? ServerTimeoutPerRequest { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ConcurrentTaskCount { get; set; } + public override string TagCondition { get; set; } public UpdateAzureStorageServicePropertyCommand() { diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs index 1fcdae969dc2..da154ad8dc11 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2ChildItem.cs @@ -88,6 +88,7 @@ public int? MaxCount public override int? ConcurrentTaskCount { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the GetAzDataLakeGen2ChildItemCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs index d393cca732cc..085140ca07a9 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2FileContent.cs @@ -81,6 +81,7 @@ public SwitchParameter CheckMd5 // Overwrite the useless parameter public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the GetAzDataLakeGen2ItemContentCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs index 705a1b329ae1..1e5c38e1cdfe 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/GetAzDataLakeGen2Item.cs @@ -41,6 +41,7 @@ public class GetDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase public override int? ConcurrentTaskCount { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the GetDataLakeGen2ItemCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs index 3072fb3b714a..6174d2ada63a 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/MoveAzDataLakeGen2Item.cs @@ -73,6 +73,7 @@ public class MoveAzDataLakeGen2ItemCommand : StorageCloudBlobCmdletBase public override int? ConcurrentTaskCount { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the MoveAzDataLakeGen2ItemCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs index 4a86d2cac0d9..345cc1df83c6 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/NewAzDataLakeGen2Item.cs @@ -125,6 +125,7 @@ public Hashtable Metadata // Overwrite the useless parameter public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the NewAzDataLakeGen2ItemCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs index a4a274ce743b..dd13eab2cd14 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/RemoveAzDataLakeGen2Item.cs @@ -70,6 +70,7 @@ public SwitchParameter Force public override int? ConcurrentTaskCount { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// /// Initializes a new instance of the RemoveAzDataLakeGen2ItemCommand class. diff --git a/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs b/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs index 8d156863493a..46f20556ce86 100644 --- a/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs +++ b/src/Storage/Storage/DatalakeGen2/Cmdlet/UpdateAzDataLakeGen2Item.cs @@ -108,6 +108,7 @@ public Hashtable Metadata public override int? ConcurrentTaskCount { get; set; } public override int? ClientTimeoutPerRequest { get; set; } public override int? ServerTimeoutPerRequest { get; set; } + public override string TagCondition { get; set; } /// diff --git a/src/Storage/Storage/Storage.generated.format.ps1xml b/src/Storage/Storage/Storage.generated.format.ps1xml index a9070fce1621..e271b7b7af6b 100644 --- a/src/Storage/Storage/Storage.generated.format.ps1xml +++ b/src/Storage/Storage/Storage.generated.format.ps1xml @@ -275,11 +275,11 @@ Left - BlobType + if ($_.BlobType -ne "Unspecified") {$_.BlobType} Left - Length + if (($_.BlobType -ne "Unspecified") -or ($_.Length -ne 0 )) {$_.Length} Left diff --git a/src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll b/src/lib/Azure.Core/NetcoreAssemblies/System.Numerics.Vectors.dll deleted file mode 100644 index 10205772c39d70f6c83a120b012e25c7a206da7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163464 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

RF{eI=gCp`63&yO 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 aok~A<-HE?W^)_`9L%-_>s-#m5X#WSf38Nzb diff --git a/src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/src/lib/Azure.Core/NetcoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index be64036f12fe7cba2ad12805e011cea81b2320f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18808 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�Q`Ssy68Q3pJ*Q4?78tE6iEZ%EU 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 From fb1eabcc0bfc4815d8e6fc3793d15e44e86f8baa Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Mon, 3 Aug 2020 10:51:10 +0800 Subject: [PATCH 20/21] [Storage] Fix some test cases (#12497) --- .../ScenarioTests/StorageDataPlaneTests.ps1 | 51 +++++++++++-------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 index c5411975f8d2..6a27de217bd7 100644 --- a/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 +++ b/src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1 @@ -70,11 +70,11 @@ function Test-File Assert-AreEqual $file[0].Name $objectName1 if ($Env:OS -eq "Windows_NT") { - $file[0].FetchAttributes() + $file[0].CloudFile.FetchAttributes() $localFileProperties = Get-ItemProperty $localSrcFile - Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime().Ticks $file[0].Properties.CreationTime.ToUniversalTime().Ticks - Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime().Ticks $file[0].Properties.LastWriteTime.ToUniversalTime().Ticks - Assert-AreEqual $localFileProperties.Attributes.ToString() $file[0].Properties.NtfsAttributes.ToString() + Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime().Ticks $file[0].CloudFile.Properties.CreationTime.ToUniversalTime().Ticks + Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime().Ticks $file[0].CloudFile.Properties.LastWriteTime.ToUniversalTime().Ticks + Assert-AreEqual $localFileProperties.Attributes.ToString() $file[0].CloudFile.Properties.NtfsAttributes.ToString() } Start-AzStorageFileCopy -SrcShareName $shareName -SrcFilePath $objectName1 -DestShareName $shareName -DestFilePath $objectName2 -Force -Context $storageContext -DestContext $storageContext @@ -103,9 +103,9 @@ function Test-File { $file = Get-AzStorageFile -ShareName $shareName -Path $objectName1 -Context $storageContext $localFileProperties = Get-ItemProperty $localSrcFile - Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime().Ticks $file[0].Properties.CreationTime.ToUniversalTime().Ticks - Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime().Ticks $file[0].Properties.LastWriteTime.ToUniversalTime().Ticks - Assert-AreEqual $localFileProperties.Attributes.ToString() $file[0].Properties.NtfsAttributes.ToString() + Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime().Ticks $file[0].CloudFile.Properties.CreationTime.ToUniversalTime().Ticks + Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime().Ticks $file[0].CloudFile.Properties.LastWriteTime.ToUniversalTime().Ticks + Assert-AreEqual $localFileProperties.Attributes.ToString() $file[0].CloudFile.Properties.NtfsAttributes.ToString() } Remove-AzStorageFile -ShareName $shareName -Path $objectName1 -Context $storageContext @@ -113,19 +113,19 @@ function Test-File Assert-AreEqual $file.Count 1 Assert-AreEqual $file[0].Name $objectName2 - $dirName = "filetestdir" + $dirName = "filetestdir" New-AzStorageDirectory -ShareName $shareName -Path $dirName -Context $storageContext $file = Get-AzStorageFile -ShareName $shareName -Context $storageContext Assert-AreEqual $file.Count 2 Assert-AreEqual $file[0].Name $objectName2 - Assert-AreEqual $file[0].GetType().Name "CloudFile" + Assert-AreEqual $file[0].GetType().Name "AzureStorageFile" Assert-AreEqual $file[1].Name $dirName - Assert-AreEqual $file[1].GetType().Name "CloudFileDirectory" + Assert-AreEqual $file[1].GetType().Name "AzureStorageFileDirectory" Get-AzStorageFile -ShareName $shareName -Path $dirName -Context $storageContext | Remove-AzStorageDirectory $file = Get-AzStorageFile -ShareName $shareName -Context $storageContext Assert-AreEqual $file.Count 1 Assert-AreEqual $file[0].Name $objectName2 - Assert-AreEqual $file[0].GetType().Name "CloudFile" + Assert-AreEqual $file[0].GetType().Name "AzureStorageFile" # Clean Storage Account Remove-AzStorageShare -Name $shareName -Force -Context $storageContext @@ -202,10 +202,21 @@ function Test-Blob $blob.ICloudBlob.SetStandardBlobTier($StandardBlobTier2, "High") $blob.ICloudBlob.FetchAttributes() Assert-AreEqual $blob.ICloudBlob.Properties.StandardBlobTier $StandardBlobTier2 - Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName2 -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext - $blob = Get-AzStorageContainer -Name $containerName -Context $storageContext | Get-AzStorageBlob - Assert-AreEqual $blob.Count 2 - Get-AzStorageBlob -Container $containerName -Blob $objectName2 -Context $storageContext | Remove-AzStorageBlob -Force + Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName2 -Force -Properties @{"ContentType" = $ContentType; "CacheControl" = "READ"} -Tag @{"tag3" = "value3"; "tag2" = "value2" } -Context $storageContext + $blobs = Get-AzStorageContainer -Name $containerName -Context $storageContext | Get-AzStorageBlob -IncludeTag + Assert-AreEqual $blobs.Count 2 + Assert-AreEqual 2 $blobs[1].TagCount + Assert-AreEqual 2 $blobs[1].Tags.Count + $blob2 = get-AzStorageBlob -Container $containerName -Blob $objectName2 -Context $storageContext -TagCondition """tag2""='value2'" -IncludeTag + Assert-AreEqual 2 $blob2.TagCount + Assert-AreEqual 2 $blob2.Tags.Count + $Tag = Set-AzStorageBlobTag -Container $containerName -Blob $objectName1 -Context $storageContext -Tag @{"tag3" = "value3"; "tag2" = "value2" ; "tag1" = "value1" } + Assert-AreEqual 3 $Tag.Count + $Tag = get-AzStorageBlobTag -Container $containerName -Blob $objectName1 -Context $storageContext -TagCondition """tag2""='value2'" + Assert-AreEqual 3 $Tag.Count + $blobs = get-AzStorageBlobByTag -Context $storageContext -TagFilterSqlExpression "@container='$($containerName)' AND ""tag3""='value3' AND ""tag2""='value2'" + Assert-AreEqual 2 $blobs.Count + Get-AzStorageBlob -Container $containerName -Blob $objectName2 -Context $storageContext | Remove-AzStorageBlob -Force -TagCondition """tag2""='value2'" #check XSCL Track2 Items works for container $container = Get-AzStorageContainer $containerName -Context $storageContext @@ -817,7 +828,7 @@ function Test-DatalakeGen2 Assert-NotNull $items[0].Permissions $items = Get-AzDataLakeGen2ChildItem -Context $storageContext -FileSystem $filesystemName -Recurse Assert-AreEqual $items.Count 4 - Assert-Null $items[0].Permissions + Assert-AreEqual "rw-rw--wx" $items[0].Permissions.ToSymbolicPermissions() #download File $t = Get-AzDataLakeGen2ItemContent -Context $storageContext -FileSystem $filesystemName -Path $filePath1 -Destination $localDestFile -AsJob -Force @@ -831,16 +842,16 @@ function Test-DatalakeGen2 $file3 = Move-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath2 -DestFileSystem $filesystemName -DestPath $filePath3 -Force $file3 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath3 Assert-AreEqual $file3.Path $filePath3 - Assert-AreEqual $file3.Permissions $file2.Permissions + Assert-AreEqual $file3.Permissions.ToSymbolicPermissions() $file2.Permissions.ToSymbolicPermissions() $file2 = $file3 | Move-AzDataLakeGen2Item -DestFileSystem $filesystemName -DestPath $filePath2 $file2 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath2 Assert-AreEqual $file2.Path $filePath2 - Assert-AreEqual $file2.Permissions $file3.Permissions + Assert-AreEqual $file2.Permissions.ToSymbolicPermissions() $file3.Permissions.ToSymbolicPermissions() ## Move Folder $dir3 = Move-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -DestFileSystem $filesystemName -DestPath $directoryPath3 $dir3 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath3 Assert-AreEqual $dir3.Path $directoryPath3 - Assert-AreEqual $dir3.Permissions $dir1.Permissions + Assert-AreEqual $dir3.Permissions.ToSymbolicPermissions() $dir1.Permissions.ToSymbolicPermissions() $dir1 = $dir3 | Move-AzDataLakeGen2Item -DestFileSystem $filesystemName -DestPath $directoryPath1 $dir1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 Assert-AreEqual $dir1.Path $directoryPath1 @@ -876,7 +887,7 @@ function New-TestResourceGroupAndStorageAccount $EnableHNFS = $false ) - $location = Get-ProviderLocation ResourceManagement + $location = Get-ProviderLocation_Canary ResourceManagement $storageAccountType = 'Standard_LRS'# Standard Geo-Reduntand Storage New-AzResourceGroup -Name $ResourceGroupName -Location $location New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $ResourceGroupName -Location $location -Type $storageAccountType -EnableHierarchicalNamespace $EnableHNFS From 4eac0303b58d66ca68c0574c73dc549b07c9e33c Mon Sep 17 00:00:00 2001 From: Yeming Liu Date: Fri, 7 Aug 2020 15:17:16 +0800 Subject: [PATCH 21/21] Bump up version for Storage OOB release (#12499) (#12598) --- .../Storage.Management/Az.Storage.psd1 | 52 +++++++++++-------- src/Storage/Storage.Management/ChangeLog.md | 2 + .../Properties/AssemblyInfo.cs | 4 +- .../Storage/Properties/AssemblyInfo.cs | 4 +- 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/Storage/Storage.Management/Az.Storage.psd1 b/src/Storage/Storage.Management/Az.Storage.psd1 index ddaa96217232..8a1647279f04 100644 --- a/src/Storage/Storage.Management/Az.Storage.psd1 +++ b/src/Storage/Storage.Management/Az.Storage.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 7/9/2020 +# Generated on: 2020/7/27 # @{ @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '2.3.0' +ModuleVersion = '2.3.1' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -176,9 +176,8 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey', 'New-AzStorageObjectReplicationPolicyRule', 'Set-AzStorageObjectReplicationPolicy', 'Get-AzStorageObjectReplicationPolicy', - 'Remove-AzStorageObjectReplicationPolicy', - 'Set-AzStorageBlobTag', 'Get-AzStorageBlobTag', - 'Get-AzStorageBlobByTag' + 'Remove-AzStorageObjectReplicationPolicy', 'Set-AzStorageBlobTag', + 'Get-AzStorageBlobTag', 'Get-AzStorageBlobByTag' # Variables to export from this module # VariablesToExport = @() @@ -222,23 +221,32 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '* Fixed the issue that UserAgent is not added for some data plane cmdlets. -* Supported create/update Storage account with MinimumTlsVersion and AllowBlobPublicAccess - - ''New-AzStorageAccount'' - - ''Set-AzStorageAccount'' -* Support enable/disable versioning on Blob Service of a Storage account - - ''Update-AzStorageBlobServiceProperty'' -* Support list blobs with blob versions - - ''Get-AzStorageBlob'' -* Support get/remove single blob snapshot or blob version - - ''Get-AzStorageBlob'' - - ''Remove-AzStorageBlob'' -* Support pipeline from blob object generated from Azure.Storage.Blobs V12 - - ''Get-AzStorageBlobContent'' - - ''New-AzStorageBlobSASToken'' - - ''Remove-AzStorageBlob'' - - ''Set-AzStorageBlobContent'' - - ''Start-AzStorageBlobCopy''' + ReleaseNotes = '* Supported create container/blob Sas token with new permission x,t + - ''New-AzStorageBlobSASToken'' + - ''New-AzStorageContainerSASToken'' +* support create account Sas token with new permission x,t,f + - ''New-AzStorageAccountSASToken'' +* Support get single file share usage + - ''Get-AzRmStorageShare'' +* support get/set blob tags on a specific blob + - ''Get-AzStorageBlobTag'' + - ''Set-AzStorageBlobTag'' +* support create destination blob with specific blob tags while upload/copy Blob + - ''Set-AzStorageBlobContent'' + - ''Start-AzStorageBlobCopy'' +* support list blobs across containers with a blob tag filter sql expression + - ''Get-AzStorageBlobByTag'' +* support list blobs inside a container and include Blob Tags + - ''Get-AzStorageBlob'' +* support run blob operation with blob tag condition, and fail the cmdlet when blob tag condition not match + - ''Get-AzStorageBlob'' + - ''Get-AzStorageBlobContent'' + - ''Get-AzStorageBlobTag'' + - ''Remove-AzStorageBlob'' + - ''Set-AzStorageBlobContent'' + - ''Set-AzStorageBlobTag'' + - ''Start-AzStorageBlobCopy'' + - ''Stop-AzStorageBlobCopy''' # Prerelease string of this module Prerelease = 'preview' diff --git a/src/Storage/Storage.Management/ChangeLog.md b/src/Storage/Storage.Management/ChangeLog.md index 7d43c259d840..e7d40132d88d 100644 --- a/src/Storage/Storage.Management/ChangeLog.md +++ b/src/Storage/Storage.Management/ChangeLog.md @@ -18,6 +18,8 @@ - Additional information about change #1 --> ## Upcoming Release + +## Version 2.3.1 * Supported create container/blob Sas token with new permission x,t - `New-AzStorageBlobSASToken` - `New-AzStorageContainerSASToken` diff --git a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs index 98b3feee5234..645db66e3a36 100644 --- a/src/Storage/Storage.Management/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage.Management/Properties/AssemblyInfo.cs @@ -46,5 +46,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.3.0")] -[assembly: AssemblyFileVersion("2.3.0")] +[assembly: AssemblyVersion("2.3.1")] +[assembly: AssemblyFileVersion("2.3.1")] diff --git a/src/Storage/Storage/Properties/AssemblyInfo.cs b/src/Storage/Storage/Properties/AssemblyInfo.cs index 7c844e14a32d..efbd99047e5b 100644 --- a/src/Storage/Storage/Properties/AssemblyInfo.cs +++ b/src/Storage/Storage/Properties/AssemblyInfo.cs @@ -44,8 +44,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyVersion("2.3.0")] -[assembly: AssemblyFileVersion("2.3.0")] +[assembly: AssemblyVersion("2.3.1")] +[assembly: AssemblyFileVersion("2.3.1")] [assembly: CLSCompliant(false)] #if !SIGN [assembly: InternalsVisibleTo("Microsoft.Azure.PowerShell.Cmdlets.Storage.Test")]

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 EKMpiCU;qFB literal 0 HcmV?d00001 diff --git a/tools/Az/Az.psd1 b/tools/Az/Az.psd1 index fa46e17acd32..1487f83693f6 100644 --- a/tools/Az/Az.psd1 +++ b/tools/Az/Az.psd1 @@ -101,7 +101,7 @@ RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '1.7.4'; }, @{ModuleName = 'Az.SignalR'; RequiredVersion = '1.1.1'; }, @{ModuleName = 'Az.Sql'; RequiredVersion = '2.5.0'; }, @{ModuleName = 'Az.SqlVirtualMachine'; RequiredVersion = '1.1.0'; }, - @{ModuleName = 'Az.Storage'; RequiredVersion = '1.13.0'; }, +# @{ModuleName = 'Az.Storage'; RequiredVersion = '1.13.0'; }, # Storage removed to support preview @{ModuleName = 'Az.StorageSync'; RequiredVersion = '1.2.3'; }, @{ModuleName = 'Az.StreamAnalytics'; RequiredVersion = '1.0.1'; }, @{ModuleName = 'Az.Support'; RequiredVersion = '1.0.0'; }, diff --git a/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs b/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs index 883bc7168d48..d463a2696c36 100644 --- a/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs +++ b/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs @@ -384,7 +384,7 @@ private void ProcessDirectory(string directoryPath) foreach (var file in Directory.GetFiles(directoryPath).Where(file => file.EndsWith(".dll"))) { var assembly = CreateAssemblyRecord(file); - if (!IsFrameworkAssembly(assembly.Name)) + if (assembly?.Name != null && !IsFrameworkAssembly(assembly.Name)) { _assemblies[assembly.Name] = assembly; AddSharedAssembly(assembly); diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv index 43aae78fb83d..bd9325d85663 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Storage/BreakingChangeIssues.csv @@ -159,4 +159,6 @@ "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.NewAzureStorageShareCommand","New-AzRmStorageShare","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.RemoveAzureStorageShareCommand","Remove-AzRmStorageShare","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.UpdateAzureStorageShareCommand","Update-AzRmStorageShare","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." - "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.SetAzureStorageContainerImmutabilityPolicyCommand","Set-AzRmStorageContainerImmutabilityPolicy","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy'." \ No newline at end of file + "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.SetAzureStorageContainerImmutabilityPolicyCommand","Set-AzRmStorageContainerImmutabilityPolicy","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Set-AzRmStorageContainerImmutabilityPolicy'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.InvokeAzureStorageAccountFailoverCommand","Invoke-AzStorageAccountFailover","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.RevokeAzureStorageAccountUserDelegationKeysCommand","Revoke-AzStorageAccountUserDelegationKeys","0","3000","The type of property 'Sku' of type 'Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount' has changed from 'Microsoft.Azure.Management.Storage.Models.Sku' to 'Microsoft.Azure.Commands.Management.Storage.Models.PSSku'.","Change the type of property 'Sku' back to 'Microsoft.Azure.Management.Storage.Models.Sku'." \ No newline at end of file diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/MissingAssemblies.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/MissingAssemblies.csv index 4926fc3d8c2c..c15dc05b7144 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Storage/MissingAssemblies.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Storage/MissingAssemblies.csv @@ -2,4 +2,14 @@ "Az.Storage","Mono.Posix.NETStandard","1.0.0.0","Microsoft.WindowsAzure.Storage.DataMovement","0","3000","Missing assembly Mono.Posix.NETStandard referenced from Microsoft.WindowsAzure.Storage.DataMovement","Ensure that the assembly is included in the Wix file or directory" "Az.Storage","Microsoft.Win32.Registry","4.1.1.0","System.Management.Automation","0","3000","Missing assembly Microsoft.Win32.Registry referenced from System.Management.Automation","Ensure that the assembly is included in the Wix file or directory" "Az.Storage","Microsoft.PowerShell.CoreCLR.Eventing","6.1.0.0","System.Management.Automation","0","3000","Missing assembly Microsoft.PowerShell.CoreCLR.Eventing referenced from System.Management.Automation","Ensure that the assembly is included in the Wix file or directory" -"Az.Storage","Mono.Posix.NETStandard","1.0.0.0","Microsoft.Azure.Storage.DataMovement","0","3000","Missing assembly Mono.Posix.NETStandard referenced from Microsoft.Azure.Storage.DataMovement","Ensure that the assembly is included in the Wix file or directory" \ No newline at end of file +"Az.Storage","Mono.Posix.NETStandard","1.0.0.0","Microsoft.Azure.Storage.DataMovement","0","3000","Missing assembly Mono.Posix.NETStandard referenced from Microsoft.Azure.Storage.DataMovement","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Buffers","4.0.2.0","Azure.Core","0","3000","Missing assembly System.Buffers referenced from Azure.Core","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Buffers","4.0.2.0","Azure.Storage.Blobs","0","3000","Missing assembly System.Buffers referenced from Azure.Storage.Blobs","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Buffers","4.0.2.0","Azure.Storage.Common","0","3000","Missing assembly System.Buffers referenced from Azure.Storage.Common","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Buffers","4.0.2.0","Azure.Storage.Files.DataLake","0","3000","Missing assembly System.Buffers referenced from Azure.Storage.Files.DataLake","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Text.Encodings.Web","4.0.4.0","System.Text.Json","0","3000","Missing assembly System.Text.Encodings.Web referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Numerics.Vectors","4.1.3.0","System.Text.Json","0","3000","Missing assembly System.Numerics.Vectors referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Buffers","4.0.2.0","System.Text.Json","0","3000","Missing assembly System.Buffers referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Runtime.CompilerServices.Unsafe","4.0.5.0","System.Text.Json","0","3000","Missing assembly System.Runtime.CompilerServices.Unsafe referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Text.Encodings.Web","4.0.4.0","System.Text.Json","0","3000","Missing assembly System.Text.Encodings.Web referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" +"Az.Storage","System.Runtime.CompilerServices.Unsafe","4.0.5.0","System.Text.Json","0","3000","Missing assembly System.Runtime.CompilerServices.Unsafe referenced from System.Text.Json","Ensure that the assembly is included in the Wix file or directory" diff --git a/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv index 043165bcbabd..023ff218ff9e 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Storage/SignatureIssues.csv @@ -61,3 +61,4 @@ "Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll","Microsoft.Azure.Commands.Management.Storage.NewAzureStorageAccountManagementPolicyRuleCommand","New-AzStorageAccountManagementPolicyRule","1","8100","New-AzStorageAccountManagementPolicyRule 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.EnableAzStorageBlobDeleteRetentionPolicyCommand","Enable-AzStorageBlobDeleteRetentionPolicy","1","8410","Parameter RetentionDays of cmdlet Enable-AzStorageBlobDeleteRetentionPolicy 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.RevokeAzureStorageAccountUserDelegationKeysCommand","Revoke-AzStorageAccountUserDelegationKeys","1","8400","Revoke-AzStorageAccountUserDelegationKeys uses the noun 'AzStorageAccountUserDelegationKeys', which does not follow the enforced naming convention of using a singular noun for a cmdlet name.","Consider using a singular noun for the cmdlet name." +"Microsoft.Azure.PowerShell.Cmdlets.Storage.dll","Microsoft.Azure.Commands.Management.Storage.NewAzDataLakeGen2ItemAclObjectCommand","New-AzDataLakeGen2ItemAclObject","1","8100","New-AzDataLakeGen2ItemAclObject 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" \ No newline at end of file From 6b925658dbf3e69ab8c088a42ef1655cacd5d2bd Mon Sep 17 00:00:00 2001 From: Wei Wei Date: Tue, 7 Apr 2020 14:09:31 +0800 Subject: [PATCH 02/21] [Storage] Fix a missing assembly in move preview changes (#11490) Force merge because of low impact --- .../Microsoft.Azure.Storage.DataMovement.dll | Bin 351824 -> 370552 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/lib/Microsoft.Azure.Storage.DataMovement.dll b/src/lib/Microsoft.Azure.Storage.DataMovement.dll index bf5b4e35390207224e2df1249177d44989fefd22..c1822d79863088a5e57b0a33d22a23100f0463be 100644 GIT binary patch literal 370552 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