diff --git a/.gitignore b/.gitignore
index 700f92f325e3..a70e74409312 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,8 @@ msbuild.log
# please do not commit any app.config files.
app.config
!src/ResourceManager/Profile/Commands.Profile.Test/App.config
+!src/ResourceManager/Resources/Commands.Resources.Test/App.config
+!src/ResourceManager/Storage/Commands.Management.Storage.Test/App.config
!src/ResourceManager/ManagedServiceIdentity/Commands.ManagedServiceIdentity.Test/App.config
!src/Storage/Commands.Storage.Test/app.config
diff --git a/.travis.yml b/.travis.yml
index d165d4a85707..166bd1003d33 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@ dotnet: 2.1.200
dist: trusty
env:
- - NAME="azure-powershell-core" CONFIG="Debug"
+ - NAME="azure-powershell-core" CONFIG="Debug" AZURE_TEST_MODE=Playback
services:
- docker
diff --git a/src/Azure.PowerShell.Netcore.Test.sln b/src/Azure.PowerShell.Netcore.Test.sln
index 183b45f4437e..e64b70c0bade 100644
--- a/src/Azure.PowerShell.Netcore.Test.sln
+++ b/src/Azure.PowerShell.Netcore.Test.sln
@@ -59,6 +59,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Commands.DeviceProvisioning
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Commands.PolicyInsights.Test.Netcore", "ResourceManager\PolicyInsights\Commands.PolicyInsights.Test\Commands.PolicyInsights.Test.Netcore.csproj", "{AFA65D3A-FB7E-4DAB-9867-1CA4CBA41BFB}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Commands.TestFx.Netcore", "ResourceManager\Common\Commands.TestFx\Commands.TestFx.Netcore.csproj", "{BFACE421-52D9-4D41-BDE9-444A8A721330}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -405,6 +407,18 @@ Global
{AFA65D3A-FB7E-4DAB-9867-1CA4CBA41BFB}.Release|x64.Build.0 = Release|Any CPU
{AFA65D3A-FB7E-4DAB-9867-1CA4CBA41BFB}.Release|x86.ActiveCfg = Release|Any CPU
{AFA65D3A-FB7E-4DAB-9867-1CA4CBA41BFB}.Release|x86.Build.0 = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|x64.Build.0 = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Debug|x86.Build.0 = Debug|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|x64.ActiveCfg = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|x64.Build.0 = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|x86.ActiveCfg = Release|Any CPU
+ {BFACE421-52D9-4D41-BDE9-444A8A721330}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/Common/Commands.Common.Compute.Tests/Commands.Common.Compute.Tests.csproj b/src/Common/Commands.Common.Compute.Tests/Commands.Common.Compute.Tests.csproj
index 654c8f21d52e..97c84e24c1d5 100644
--- a/src/Common/Commands.Common.Compute.Tests/Commands.Common.Compute.Tests.csproj
+++ b/src/Common/Commands.Common.Compute.Tests/Commands.Common.Compute.Tests.csproj
@@ -34,18 +34,27 @@
4
+
+ False
+ ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.8.1\lib\net452\Microsoft.Azure.Test.HttpRecorder.dll
+ True
+
..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll
True
-
+
False
- ..\..\packages\Microsoft.Rest.ClientRuntime.2.3.11\lib\net452\Microsoft.Rest.ClientRuntime.dll
+ ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.0\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
True
-
+
+ ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.7.2\lib\net452\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
+ True
+
+
False
- ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.3.12\lib\net452\Microsoft.Rest.ClientRuntime.Azure.dll
+ ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -90,6 +99,18 @@
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
@@ -102,11 +123,5 @@
-
+
\ No newline at end of file
diff --git a/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListDisks.json b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListDisks.json
new file mode 100644
index 000000000000..0b4db7544bd8
--- /dev/null
+++ b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListDisks.json
@@ -0,0 +1,72 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/providers/Microsoft.Compute/disks?api-version=2016-04-30-preview",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYzljYmQ5MjAtYzAwYy00MjdjLTg1MmItOGFhZjM4YmFkYWViL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9kaXNrcz9hcGktdmVyc2lvbj0yMDE2LTA0LTMwLXByZXZpZXc=",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "a99916df-037b-48a0-9535-4ff28b5d5815"
+ ],
+ "accept-language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Commands.Common.Compute.Version2016_04_preview.ComputeManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"osType\": \"Windows\",\r\n \"creationData\": {\r\n \"createOption\": \"FromImage\",\r\n \"imageReference\": {\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/eastus2/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2008-R2-SP1/Versions/2.127.20170628\"\r\n }\r\n },\r\n \"diskSizeGB\": 127,\r\n \"timeCreated\": \"2018-07-11T12:20:46.928697-07:00\",\r\n \"ownerId\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/crptestps7596/providers/Microsoft.Compute/virtualMachines/vmcrptestps7596\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"diskState\": \"Attached\"\r\n },\r\n \"type\": \"Microsoft.Compute/disks\",\r\n \"location\": \"eastus2\",\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/CRPTESTPS7596/providers/Microsoft.Compute/disks/vmcrptestps7596_OsDisk_1_978dd480e37c4bacb0d31416324bf793\",\r\n \"name\": \"vmcrptestps7596_OsDisk_1_978dd480e37c4bacb0d31416324bf793\"\r\n },\r\n {\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"osType\": \"Linux\",\r\n \"creationData\": {\r\n \"createOption\": \"FromImage\",\r\n \"imageReference\": {\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/16.04-LTS/Versions/16.04.201807030\"\r\n }\r\n },\r\n \"diskSizeGB\": 30,\r\n \"timeCreated\": \"2018-07-11T11:30:39.3771097-07:00\",\r\n \"ownerId\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/tjp-rg/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"diskState\": \"Attached\"\r\n },\r\n \"type\": \"Microsoft.Compute/disks\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/TJP-RG/providers/Microsoft.Compute/disks/vm1_OsDisk_1_59e4de3d8570465985cb158dc5fc5492\",\r\n \"name\": \"vm1_OsDisk_1_59e4de3d8570465985cb158dc5fc5492\"\r\n }\r\n ]\r\n}",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "1803"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-original-request-ids": [
+ "34f04a89-7957-4db4-b050-ed7bd92bd4d2",
+ "faa58b26-5fa4-4255-a9dc-854f4c4e86d6"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "14999"
+ ],
+ "x-ms-request-id": [
+ "32f6cbf6-80c3-4352-b0fd-02dffd2cb476"
+ ],
+ "x-ms-correlation-request-id": [
+ "32f6cbf6-80c3-4352-b0fd-02dffd2cb476"
+ ],
+ "x-ms-routing-request-id": [
+ "WESTUS2:20180711T192723Z:32f6cbf6-80c3-4352-b0fd-02dffd2cb476"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Date": [
+ "Wed, 11 Jul 2018 19:27:22 GMT"
+ ]
+ },
+ "StatusCode": 200
+ }
+ ],
+ "Names": {},
+ "Variables": {
+ "SubscriptionId": "c9cbd920-c00c-427c-852b-8aaf38badaeb"
+ }
+}
\ No newline at end of file
diff --git a/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachine.json b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachine.json
new file mode 100644
index 000000000000..b506b336c7b0
--- /dev/null
+++ b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachine.json
@@ -0,0 +1,72 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/providers/Microsoft.Compute/virtualMachines?api-version=2016-04-30-preview",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYzljYmQ5MjAtYzAwYy00MjdjLTg1MmItOGFhZjM4YmFkYWViL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXM/YXBpLXZlcnNpb249MjAxNi0wNC0zMC1wcmV2aWV3",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "96f4af86-d1b0-4a99-a6f5-0af7f54dc28b"
+ ],
+ "accept-language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Commands.Common.Compute.Version2016_04_preview.ComputeManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"vmId\": \"101b7f2e-e501-4de3-94f6-80d050b571c5\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A4\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2008-R2-SP1\",\r\n \"version\": \"2.127.20170628\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Windows\",\r\n \"name\": \"vmcrptestps7596_OsDisk_1_978dd480e37c4bacb0d31416324bf793\",\r\n \"createOption\": \"FromImage\",\r\n \"caching\": \"ReadWrite\",\r\n \"managedDisk\": {\r\n \"storageAccountType\": \"Standard_LRS\",\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/crptestps7596/providers/Microsoft.Compute/disks/vmcrptestps7596_OsDisk_1_978dd480e37c4bacb0d31416324bf793\"\r\n },\r\n \"diskSizeGB\": 127\r\n },\r\n \"dataDisks\": []\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"Foo12\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true,\r\n \"enableAutomaticUpdates\": false\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/crptestps7596/providers/Microsoft.Network/networkInterfaces/niccrptestps7596\",\r\n \"properties\": {\r\n \"primary\": true\r\n }\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps7596.blob.core.windows.net/\"\r\n }\r\n },\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"resources\": [\r\n {\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/CRPTESTPS7596/providers/Microsoft.Compute/virtualMachines/vmcrptestps7596/extensions/BGInfo\"\r\n }\r\n ],\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus2\",\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/CRPTESTPS7596/providers/Microsoft.Compute/virtualMachines/vmcrptestps7596\",\r\n \"name\": \"vmcrptestps7596\"\r\n },\r\n {\r\n \"properties\": {\r\n \"vmId\": \"445871d2-a782-41f4-bc1f-c25bd029924c\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_DS1_v2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Linux\",\r\n \"name\": \"vm1_OsDisk_1_59e4de3d8570465985cb158dc5fc5492\",\r\n \"createOption\": \"FromImage\",\r\n \"caching\": \"ReadWrite\",\r\n \"managedDisk\": {\r\n \"storageAccountType\": \"Premium_LRS\",\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/tjp-rg/providers/Microsoft.Compute/disks/vm1_OsDisk_1_59e4de3d8570465985cb158dc5fc5492\"\r\n },\r\n \"diskSizeGB\": 30\r\n },\r\n \"dataDisks\": []\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"vm1\",\r\n \"adminUsername\": \"trpresco\",\r\n \"linuxConfiguration\": {\r\n \"disablePasswordAuthentication\": true,\r\n \"ssh\": {\r\n \"publicKeys\": [\r\n {\r\n \"path\": \"/home/trpresco/.ssh/authorized_keys\",\r\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLkUy/BFb7o47gQqFcMiioYD4w3Tu/7bpy7t/3pQVhjmsEEaWk09dA1Ju1UbukKaLpOprch/r9bgUWu1oTEP7E5evwaJl0TvLX0gsxGGItfPc58bbQ77uxuXhMfYEZ6oiS+Ybt5nUjjDUUNhSIrKSLhCHCmQ9JnOd/AObf9G4iR38bsABIAVxmbYT6OQKm4oRwNs1c99B5TsfnREFs7yawCV3hjKVHsD3bRo83bBbBG3d/CHYfcnEbpK4weagw899YodAXDiUh0qYfOy0mGz4zWaQ4rcCitk9od/WSDhLAOy74cqwzKJwoR9DcALxkWVMuJW7xBF9tWEroVvFrh6/N\"\r\n }\r\n ]\r\n }\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/tjp-rg/providers/Microsoft.Network/networkInterfaces/vm1VMNic\"\r\n }\r\n ]\r\n },\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"westus\",\r\n \"tags\": {},\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/resourceGroups/TJP-RG/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n \"name\": \"vm1\"\r\n }\r\n ]\r\n}",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "3252"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-original-request-ids": [
+ "b0656306-378b-4782-bb7f-58957e8c94fb",
+ "7538a576-d3c7-4795-a506-eca731f4c0af"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "14999"
+ ],
+ "x-ms-request-id": [
+ "7a408ec4-7c80-4507-88e0-df04def5605c"
+ ],
+ "x-ms-correlation-request-id": [
+ "7a408ec4-7c80-4507-88e0-df04def5605c"
+ ],
+ "x-ms-routing-request-id": [
+ "WESTUS2:20180711T192729Z:7a408ec4-7c80-4507-88e0-df04def5605c"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Date": [
+ "Wed, 11 Jul 2018 19:27:29 GMT"
+ ]
+ },
+ "StatusCode": 200
+ }
+ ],
+ "Names": {},
+ "Variables": {
+ "SubscriptionId": "c9cbd920-c00c-427c-852b-8aaf38badaeb"
+ }
+}
\ No newline at end of file
diff --git a/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineImagePublishers.json b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineImagePublishers.json
new file mode 100644
index 000000000000..2d1e6a4442f0
--- /dev/null
+++ b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineImagePublishers.json
@@ -0,0 +1,75 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/providers/Microsoft.Compute/locations/WestUs/publishers?api-version=2016-04-30-preview",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYzljYmQ5MjAtYzAwYy00MjdjLTg1MmItOGFhZjM4YmFkYWViL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvV2VzdFVzL3B1Ymxpc2hlcnM/YXBpLXZlcnNpb249MjAxNi0wNC0zMC1wcmV2aWV3",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "fbb5f641-a1e5-40cd-adc5-ea91ecccc91b"
+ ],
+ "accept-language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Commands.Common.Compute.Version2016_04_preview.ComputeManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "[\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"1e\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/1e\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"4psa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/4psa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"5nine-software-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/5nine-software-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"7isolutions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/7isolutions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"a10networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/a10networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"abiquo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/abiquo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"accellion\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/accellion\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"accessdata-group\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/accessdata-group\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"accops\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/accops\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Acronis\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Acronis\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Acronis.Backup\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Acronis.Backup\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"actian-corp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/actian-corp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"actian_matrix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/actian_matrix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"actifio\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/actifio\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"activeeon\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/activeeon\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"adobe_test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/adobe_test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"advantech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/advantech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"advantech-webaccess\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/advantech-webaccess\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aerospike\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aerospike\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aerospike-database\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aerospike-database\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"affinio\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/affinio\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aiscaler-cache-control-ddos-and-url-rewriting-\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aiscaler-cache-control-ddos-and-url-rewriting-\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"akamai-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/akamai-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"akumina\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/akumina\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alachisoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alachisoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alces-flight-limited\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alces-flight-limited\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alertlogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alertlogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"AlertLogic.Extension\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/AlertLogic.Extension\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alienvault\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alienvault\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alldigital-brevity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alldigital-brevity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"altair-engineering-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/altair-engineering-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"altamira-corporation\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/altamira-corporation\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"alteryx\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/alteryx\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"altova\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/altova\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aod\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aod\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"apigee\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/apigee\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"appcelerator\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/appcelerator\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"appex-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/appex-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"appistry\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/appistry\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"appscale-marketplace\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/appscale-marketplace\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"appspace\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/appspace\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aptean-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aptean-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aqua-security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aqua-security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aquaforest\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aquaforest\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"arabesque-group\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/arabesque-group\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"arangodb\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/arangodb\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aras\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aras\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"arista-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/arista-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"array_networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/array_networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"artificial-intelligence-techniques-sl\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/artificial-intelligence-techniques-sl\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"asigra\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/asigra\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aspex-managed-cloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aspex-managed-cloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"atlassian\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/atlassian\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"atomicorp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/atomicorp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"attunity_cloudbeam\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/attunity_cloudbeam\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"auraportal\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/auraportal\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"auriq-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/auriq-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"avepoint\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/avepoint\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"avi-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/avi-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"aviatrix-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/aviatrix-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"awingu\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/awingu\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"axway\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/axway\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"azul\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/azul\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"AzureDatabricks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/AzureDatabricks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"AzureRT.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/AzureRT.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"azuresyncfusion\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/azuresyncfusion\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"azuretesting\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/azuretesting\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"azuretesting2\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/azuretesting2\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"azuretesting3\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/azuretesting3\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"AzureTools1type\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/AzureTools1type\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"baas-techbureau\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/baas-techbureau\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"baffle-io\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/baffle-io\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"balabit\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/balabit\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"barracudanetworks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/barracudanetworks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"basho\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/basho\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"batch\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/batch\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bdy\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bdy\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"beyondtrust\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/beyondtrust\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bi-builders-as\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bi-builders-as\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Bitnami\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Bitnami\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bizagi\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bizagi\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"biztalk360\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/biztalk360\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"black-duck-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/black-duck-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"blackberry\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/blackberry\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"blk-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/blk-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"blockapps\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/blockapps\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"blockchain-foundry\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/blockchain-foundry\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"blockstack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/blockstack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bloombase\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bloombase\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bluecat\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bluecat\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bluetalon\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bluetalon\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bmc.ctm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bmc.ctm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bmcctm.test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bmcctm.test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"brainshare-it\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/brainshare-it\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bravura-software-llc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bravura-software-llc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"brocade_communications\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/brocade_communications\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"bssw\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/bssw\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"buddhalabs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/buddhalabs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Canonical\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"carto\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/carto\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cask\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cask\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"catechnologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/catechnologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cautelalabs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cautelalabs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cavirin\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cavirin\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cbreplicator\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cbreplicator\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cds\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cds\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"celum-gmbh\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/celum-gmbh\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"center-for-internet-security-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/center-for-internet-security-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"certivox\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/certivox\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cfd-direct\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cfd-direct\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"chain\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/chain\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"checkpoint\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/checkpoint\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"chef-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/chef-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Chef.Bootstrap.WindowsAzure\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Chef.Bootstrap.WindowsAzure\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cinegy-gmbh\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cinegy-gmbh\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"circleci\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/circleci\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cires21\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cires21\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cisco\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cisco\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"citrix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/citrix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"clear-linux-project\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/clear-linux-project\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"clouber\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/clouber\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloud-checkr\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloud-checkr\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloud-cruiser\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloud-cruiser\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloud-infrastructure-services\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloud-infrastructure-services\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudbees\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudbees\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudbees-enterprise-jenkins\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudbees-enterprise-jenkins\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudbolt-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudbolt-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudboost\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudboost\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudenablers-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudenablers-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudera\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudera\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudera1qaz2wsx\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudera1qaz2wsx\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudhouse\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudhouse\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudhub-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudhub-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudify\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudify\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudlanes\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudlanes\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudlink\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudlink\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"CloudLinkEMC.SecureVM\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/CloudLinkEMC.SecureVM\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudneeti\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudneeti\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudplan-gmbh\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudplan-gmbh\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudsecurity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudsecurity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cloudsoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cloudsoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"clustrix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/clustrix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"codelathe\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/codelathe\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"codenvy\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/codenvy\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cognosys\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cognosys\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cohesity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cohesity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cohesive\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cohesive\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"commvault\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/commvault\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"composable\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/composable\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"comunity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/comunity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Confer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Confer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"confluentinc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/confluentinc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"connecting-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/connecting-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"convertigo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/convertigo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"corda\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/corda\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"CoreOS\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/CoreOS\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cortex-ag\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cortex-ag\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"couchbase\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/couchbase\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"crate-io\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/crate-io\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"credativ\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/credativ\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cryptzone\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cryptzone\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ctm.bmc.com\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ctm.bmc.com\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cybernetica-as\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cybernetica-as\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"cyxtera\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/cyxtera\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"danielsol.AzureTools1\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/danielsol.AzureTools1\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Dans.Windows.App\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Dans.Windows.App\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Dans3.Windows.App\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Dans3.Windows.App\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dataart\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dataart\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"databricks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/databricks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"datacore\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/datacore\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Datadog.Agent\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Datadog.Agent\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dataiku\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dataiku\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"datalayer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/datalayer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"datastax\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/datastax\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"datasunrise\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/datasunrise\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"datometry\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/datometry\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dellemc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dellemc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dell_software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dell_software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"delphix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/delphix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"denodo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/denodo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"denyall\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/denyall\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"derdack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/derdack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dgsecure\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dgsecure\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"diagramics\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/diagramics\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"digitaloffice\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/digitaloffice\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"diladele\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/diladele\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dimensionalmechanics-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dimensionalmechanics-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"docker\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/docker\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"docscorp-us\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/docscorp-us\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dome9\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dome9\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"drizti\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/drizti\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"drone\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/drone\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dsi\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dsi\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dundas\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dundas\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dyadic_security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dyadic_security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dynatrace\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dynatrace\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"dynatrace.ruxit\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/dynatrace.ruxit\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"eastbanctech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/eastbanctech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"eastwind-networks-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/eastwind-networks-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"edevtech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/edevtech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"egnyte\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/egnyte\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"eip\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/eip\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"eip-eipower\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/eip-eipower\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ekran-system-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ekran-system-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"elasticbox\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/elasticbox\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"elecard\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/elecard\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"electric-cloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/electric-cloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"elementrem\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/elementrem\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"elfiqnetworks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/elfiqnetworks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"emercoin\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/emercoin\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"enforongo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/enforongo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"enterprise-ethereum-alliance\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/enterprise-ethereum-alliance\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"enterprisedb-corp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/enterprisedb-corp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"equalum\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/equalum\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"equilibrium\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/equilibrium\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"esdenera\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/esdenera\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ESET\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ESET\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"esri\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/esri\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ethereum\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ethereum\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"eventtracker\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/eventtracker\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"evostream-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/evostream-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"exasol\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/exasol\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"f5-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/f5-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"falconstorsoftware\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/falconstorsoftware\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"fidesys\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/fidesys\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"filecatalyst\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/filecatalyst\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"firehost\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/firehost\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"flashgrid-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/flashgrid-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"flynet\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/flynet\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"foghorn-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/foghorn-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"forcepoint-llc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/forcepoint-llc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"forscene\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/forscene\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"fortinet\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/fortinet\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"fortycloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/fortycloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"fw\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/fw\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gbs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gbs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gemalto-safenet\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gemalto-safenet\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"genesys-source\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/genesys-source\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gigamon-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gigamon-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"GitHub\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/GitHub\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gitlab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gitlab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"globalscape\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/globalscape\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gordic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gordic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"graphitegtc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/graphitegtc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"great-software-laboratory-private-limited\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/great-software-laboratory-private-limited\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"greathorn\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/greathorn\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"greensql\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/greensql\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"gridgain\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/gridgain\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"guardicore\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/guardicore\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"h2o-ai\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/h2o-ai\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"haivision\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/haivision\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hanu\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hanu\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"haproxy-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/haproxy-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"harpaitalia\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/harpaitalia\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hcl-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hcl-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"heimdall-data\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/heimdall-data\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"help-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/help-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hewlett-packard\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hewlett-packard\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hillstone-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hillstone-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hitachi-solutions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hitachi-solutions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hortonworks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hortonworks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hpe\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hpe\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"HPE.Security.ApplicationDefender\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/HPE.Security.ApplicationDefender\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"huawei\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/huawei\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"humanlogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/humanlogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hush-hush\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hush-hush\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hvr\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hvr\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hyperglance\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hyperglance\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hypergrid\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hypergrid\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"hytrust\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/hytrust\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"iaansys\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/iaansys\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ibabs-eu\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ibabs-eu\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ibm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ibm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"iboss\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/iboss\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ikan\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ikan\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"imaginecommunications\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/imaginecommunications\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"imperva\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/imperva\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"incredibuild\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/incredibuild\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"infoblox\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/infoblox\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"infolibrarian\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/infolibrarian\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"informatica\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/informatica\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"informationbuilders\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/informationbuilders\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"infront-consulting-group-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/infront-consulting-group-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ingrammicro\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ingrammicro\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"integration-objects\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/integration-objects\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intel\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intel\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intel-bigdl\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intel-bigdl\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intel-fpga\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intel-fpga\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intellicus-technologies-pvt-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intellicus-technologies-pvt-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intelligent-plant-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intelligent-plant-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"intigua\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/intigua\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ipswitch\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ipswitch\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"iquest\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/iquest\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ishlangu-load-balancer-adc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ishlangu-load-balancer-adc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"issp-corporation\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/issp-corporation\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"itelios\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/itelios\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jamcracker\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jamcracker\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jedox\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jedox\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jelastic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jelastic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jetnexus\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jetnexus\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jetware-srl\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jetware-srl\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jfrog\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jfrog\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jitterbit_integration\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jitterbit_integration\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"jm-technology-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/jm-technology-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"juniper-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/juniper-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kaazing\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kaazing\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kali-linux\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kali-linux\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Kaspersky.Lab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Kaspersky.Lab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"KasperskyLab.SecurityAgent\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/KasperskyLab.SecurityAgent\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kaspersky_lab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kaspersky_lab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kelverion\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kelverion\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kemptech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kemptech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kepion\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kepion\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kinetica\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kinetica\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"knime\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/knime\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"kobalt\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/kobalt\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"krypc-technologies-pvt-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/krypc-technologies-pvt-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"lansa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/lansa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"leostream-corporation\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/leostream-corporation\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"liebsoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/liebsoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"liquid-files\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/liquid-files\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"liquidware\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/liquidware\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"literatu\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/literatu\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"loadbalancer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/loadbalancer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"logsign\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/logsign\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"logtrust\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/logtrust\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"looker\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/looker\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"lti-lt-infotech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/lti-lt-infotech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"luminate-security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/luminate-security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mactores_inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mactores_inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"maketv\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/maketv\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"manageengine\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/manageengine\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mapr-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mapr-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mariadb\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mariadb\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"marklogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/marklogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"massiveanalytic-\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/massiveanalytic-\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mathworks-deployment\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mathworks-deployment\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mathworks-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mathworks-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mavinglobal\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mavinglobal\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"McAfee.EndpointSecurity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/McAfee.EndpointSecurity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"McAfee.EndpointSecurity.test3\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/McAfee.EndpointSecurity.test3\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"meanio\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/meanio\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"media3-technologies-llc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/media3-technologies-llc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"memsql\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/memsql\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mendix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mendix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mfe_azure\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mfe_azure\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mfiles\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mfiles\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mico\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mico\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"micro-focus\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/micro-focus\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsec-zrt\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsec-zrt\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-ads\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-ads\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-avere\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-avere\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-azure-batch\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-azure-batch\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-azure-compute\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-azure-compute\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-dsvm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-dsvm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoft-hyperv\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-hyperv\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.AKS\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.AKS\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.ActiveDirectory.LinuxSSH\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.ActiveDirectory.LinuxSSH\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Applications\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Applications\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Backup.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Backup.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Backup.Test.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Backup.Test.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Diagnostics\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Diagnostics\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Diagnostics.Build.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Diagnostics.Build.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Extensions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Extensions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.KeyVault\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.KeyVault\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.KeyVault.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.KeyVault.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Monitoring.DependencyAgent\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Monitoring.DependencyAgent\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Networking.SDN\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Networking.SDN\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.NetworkWatcher\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.NetworkWatcher\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Performance.Diagnostics\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Performance.Diagnostics\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.RecoveryServices\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.RecoveryServices.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices.SiteRecovery\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.RecoveryServices.SiteRecovery\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices.SiteRecovery2\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.RecoveryServices.SiteRecovery2\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices.WorkloadBackup\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.RecoveryServices.WorkloadBackup\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Security.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Security.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Security.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Security.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.SiteRecovery.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.SiteRecovery.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.SiteRecovery2.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.SiteRecovery2.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.Test.Identity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.Test.Identity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Azure.WindowsFabric.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Azure.WindowsFabric.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoring\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoring\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoringTest\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoringTest\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.AzureSecurity.JITAccess\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.AzureSecurity.JITAccess\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.CloudBackup.Workload.Extension\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.CloudBackup.Workload.Extension\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.CloudBackup.Workload.Extension.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.CloudBackup.Workload.Extension.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Compute\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Compute\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.CPlat.Core\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.CPlat.Core\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.CPlat.Core.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.CPlat.Core.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.DscPolicy2.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.DscPolicy2.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.EnterpriseCloud.Monitoring\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.EnterpriseCloud.Monitoring.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Golive.Extensions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Golive.Extensions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.GuestConfig.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.GuestConfig.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.GuestConfiguration.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.GuestConfiguration.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.HpcCompute\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.HpcCompute\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.HpcPack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.HpcPack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.ManagedIdentity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.ManagedIdentity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.ManagedServices\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.ManagedServices\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.OSTCExtensions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.OSTCExtensions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.OSTCExtensions.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.OSTCExtensions.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.OSTCExtensions.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.OSTCExtensions.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Powershell\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Powershell\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Powershell.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Powershell.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Powershell.Test01\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Powershell.Test01\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.SqlServer.Managability.IaaS.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.SqlServer.Managability.IaaS.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.SqlServer.Management\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.SqlServer.Management\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.SystemCenter\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.SystemCenter\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.TestSqlServer.Edp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.TestSqlServer.Edp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.ETWTraceListenerService\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.VisualStudio.Azure.ETWTraceListenerService\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug.Json\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug.Json\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.VisualStudio.ServiceProfiler\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.VisualStudio.ServiceProfiler\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.VisualStudio.Services\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.VisualStudio.Services\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Windows.AzureRemoteApp.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Windows.AzureRemoteApp.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.Windows.RemoteDesktop\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.Windows.RemoteDesktop\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Microsoft.WindowsAzure.Compute\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Microsoft.WindowsAzure.Compute\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftAzureSiteRecovery\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftAzureSiteRecovery\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftBizTalkServer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftBizTalkServer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftDynamicsAX\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftDynamicsAX\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftDynamicsGP\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftDynamicsGP\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftDynamicsNAV\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftDynamicsNAV\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftHybridCloudStorage\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftHybridCloudStorage\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftOSTC\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftOSTC\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microsoftoxa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoftoxa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftRServer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftRServer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftSharePoint\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftSharePoint\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftSQLServer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftSQLServer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftVisualStudio\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftVisualStudio\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftWindowsDesktop\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsDesktop\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftWindowsServer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsServer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"MicrosoftWindowsServerHPCPack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsServerHPCPack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"microstrategy\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/microstrategy\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"midfin\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/midfin\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"midvision\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/midvision\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mindcti\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mindcti\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"miraclelinux\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/miraclelinux\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"miracl_linux\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/miracl_linux\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mobilab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mobilab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"moogsoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/moogsoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"moviemasher\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/moviemasher\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"msopentech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/msopentech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"msrazuresapservices\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/msrazuresapservices\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mtnfog\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mtnfog\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"multisoft-ab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/multisoft-ab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mvp-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mvp-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"mxhero\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/mxhero\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"my-com\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/my-com\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"narrativescience\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/narrativescience\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nasuni\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nasuni\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ncbi\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ncbi\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ndl\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ndl\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nebbiolo-technologies-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nebbiolo-technologies-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netapp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netapp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netatwork\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netatwork\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netgate\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netgate\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netikus-net-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netikus-net-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netiq\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netiq\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netmail\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netmail\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netsil\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netsil\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netsweeper\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netsweeper\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"netwrix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/netwrix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"neusoft-neteye\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/neusoft-neteye\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nextlimit\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nextlimit\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nginxinc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nginxinc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nicepeopleatwork\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nicepeopleatwork\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nodejsapi\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nodejsapi\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"noobaa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/noobaa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"norsync\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/norsync\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"northbridge-secure\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/northbridge-secure\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nri\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nri\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ntt-data-intellilink-corporation\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ntt-data-intellilink-corporation\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nubeva-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nubeva-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nuco-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nuco-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"nuxeo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/nuxeo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"o2mc-real-time-data-platform\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/o2mc-real-time-data-platform\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"oceanblue-cloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/oceanblue-cloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"OctopusDeploy.Tentacle\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/OctopusDeploy.Tentacle\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"omega-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/omega-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"onapsis\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/onapsis\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"onyx-point-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/onyx-point-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"op5\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/op5\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"opencell\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/opencell\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"OpenLogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/OpenLogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"opentext\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/opentext\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"openvpn\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/openvpn\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"opslogix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/opslogix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"opsview-limited\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/opsview-limited\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Oracle\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Oracle\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"oriana\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/oriana\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"orientdb\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/orientdb\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"osirium-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/osirium-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"osisoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/osisoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"osnexus\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/osnexus\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"paloaltonetworks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/paloaltonetworks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"panorama-necto\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/panorama-necto\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"panzura-file-system\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/panzura-file-system\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"parallels\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/parallels\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"parasoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/parasoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"passlogy\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/passlogy\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"paxata\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/paxata\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"peer-software-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/peer-software-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"penta-security-systems-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/penta-security-systems-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"percona\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/percona\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"pivotal\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/pivotal\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"plesk\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/plesk\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"portalarchitects\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/portalarchitects\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"postgres-pro\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/postgres-pro\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"prestashop\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/prestashop\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"prime-strategy\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/prime-strategy\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"process-one\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/process-one\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Profiler.Master.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Profiler.Master.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"profisee\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/profisee\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"progelspa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/progelspa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ptsecurity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ptsecurity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"pulse-secure\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/pulse-secure\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"puppet\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/puppet\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"PuppetLabs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/PuppetLabs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"PuppetLabs.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/PuppetLabs.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"pydio\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/pydio\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"pyramidanalytics\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/pyramidanalytics\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"qlik\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/qlik\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"qore-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/qore-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Qualys\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Qualys\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Qualys.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Qualys.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"qualysguard\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/qualysguard\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"quasardb\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/quasardb\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"qubole\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/qubole\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"qubole-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/qubole-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"quest\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/quest\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"racknap\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/racknap\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"radiant-logic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/radiant-logic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"radware\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/radware\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rancher\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rancher\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rapid7\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rapid7\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Rapid7.InsightPlatform\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Rapid7.InsightPlatform\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rapidminer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rapidminer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"realm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/realm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"reblaze\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/reblaze\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"RedHat\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/RedHat\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"redpoint-global\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/redpoint-global\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"relevance-lab\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/relevance-lab\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"remotelearner\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/remotelearner\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"res\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/res\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"resco\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/resco\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"responder-corp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/responder-corp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"revolution-analytics\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/revolution-analytics\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"RightScaleLinux\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/RightScaleLinux\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"RightScaleWindowsServer\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/RightScaleWindowsServer\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"riverbed\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/riverbed\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"RiverbedTechnology\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/RiverbedTechnology\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rocketsoftware\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rocketsoftware\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"roktech\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/roktech\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rsa-security-llc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rsa-security-llc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rsk-labs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rsk-labs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rtts\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rtts\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"rubrik-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/rubrik-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"saama\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/saama\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"saasame-limited\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/saasame-limited\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"saltstack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/saltstack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"samsung-sds\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/samsung-sds\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"samsungsds-cello\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/samsungsds-cello\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sap\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sap\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"scalearc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/scalearc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"scalegrid\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/scalegrid\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"scality\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/scality\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"scsk\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/scsk\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"secureworks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/secureworks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sentryone\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sentryone\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"service-control-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/service-control-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"shadow-soft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/shadow-soft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sharefile\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sharefile\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"shareshiftneeraj.test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/shareshiftneeraj.test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"shieldx-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/shieldx-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sidm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sidm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sightapps\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sightapps\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"signal-sciences\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/signal-sciences\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"silver-peak-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/silver-peak-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"simmachinesinc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/simmachinesinc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"simplygon\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/simplygon\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sinefa\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sinefa\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sios_datakeeper\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sios_datakeeper\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sisense\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sisense\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Site24x7\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Site24x7\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"skyarc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/skyarc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"smartmessage-autoflow\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/smartmessage-autoflow\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"snaplogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/snaplogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"soasta\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/soasta\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"softnas\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/softnas\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"soha\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/soha\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"solanolabs\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/solanolabs\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"solar-security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/solar-security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"solarwinds\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/solarwinds\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sonicwall-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sonicwall-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sophos\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sophos\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"south-river-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/south-river-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"spacecurve\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/spacecurve\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"spagobi\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/spagobi\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sparklinglogic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sparklinglogic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sphere3d\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sphere3d\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"splunk\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/splunk\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sqlstream\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sqlstream\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"src-solution\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/src-solution\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stackato-platform-as-a-service\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stackato-platform-as-a-service\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Stackify.LinuxAgent.Extension\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Stackify.LinuxAgent.Extension\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stackstorm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stackstorm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"startekfingerprintmatch\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/startekfingerprintmatch\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"starwind\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/starwind\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"StatusReport.Diagnostics.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/StatusReport.Diagnostics.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stealthbits\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stealthbits\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"steelhive\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/steelhive\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stonefly\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stonefly\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stormshield\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stormshield\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"storreduce\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/storreduce\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stratalux\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stratalux\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stratis-group-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stratis-group-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"stratumn\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/stratumn\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"streamsets\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/streamsets\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"striim\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/striim\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"sumologic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/sumologic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"SUSE\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/SUSE\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.CloudWorkloadProtection\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.CloudWorkloadProtection\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.CloudWorkloadProtection.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.CloudWorkloadProtection.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.CloudWorkloadProtection.TestOnStage\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.CloudWorkloadProtection.TestOnStage\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.QA\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.QA\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.staging\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.staging\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Symantec.test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Symantec.test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"symantectest1\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/symantectest1\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"synack-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/synack-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"syncfusion\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/syncfusion\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"syncfusionbigdataplatfor\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/syncfusionbigdataplatfor\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"syncfusiondashboard\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/syncfusiondashboard\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"synechron-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/synechron-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"syte\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/syte\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tableau\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tableau\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tactic\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tactic\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"talari-networks\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/talari-networks\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"talena-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/talena-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"talon\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/talon\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"targit\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/targit\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tavendo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tavendo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"te-systems\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/te-systems\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"techdivision\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/techdivision\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"techlatest\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/techlatest\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"telepat\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/telepat\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tenable\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tenable\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"teradata\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/teradata\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Teradici\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Teradici\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test.Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test.Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test.HP.AppDefender\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test.HP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test.Microsoft.VisualStudio.Services\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test.Microsoft.VisualStudio.Services\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test.TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test1.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test1.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Test3.Microsoft.VisualStudio.Services\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Test3.Microsoft.VisualStudio.Services\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"thales-vormetric\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/thales-vormetric\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"thoughtspot-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/thoughtspot-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tibco-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tibco-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tig\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tig\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"timextender\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/timextender\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tmaxsoft\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tmaxsoft\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tokyosystemhouse\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tokyosystemhouse\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"topdesk\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/topdesk\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"torusware\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/torusware\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"totemo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/totemo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"townsend-security\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/townsend-security\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"transvault\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/transvault\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"trendmicro\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/trendmicro\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"TrendMicro.PortalProtect\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/TrendMicro.PortalProtect\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tresorit\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tresorit\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"truestack\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/truestack\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tsa-public-service\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tsa-public-service\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"tunnelbiz\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/tunnelbiz\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"twistlock\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/twistlock\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"typesafe\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/typesafe\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ubeeko\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ubeeko\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ubercloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ubercloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"ulex\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/ulex\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"unidesk\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/unidesk\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"unidesk-corp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/unidesk-corp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"unifi-software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/unifi-software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"uniprint-net\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/uniprint-net\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"unitrends\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/unitrends\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"usp\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/usp\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"varnish\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/varnish\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vaultive-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vaultive-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vbot\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vbot\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"veeam\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/veeam\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"velocitydb-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/velocitydb-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"velocloud\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/velocloud\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"velostrata\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/velostrata\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"velostrata-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/velostrata-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"veritas\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/veritas\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"versasec\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/versasec\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vidispine\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vidispine\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vidizmo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vidizmo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vigyanlabs-innovations-pvt-ltd\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vigyanlabs-innovations-pvt-ltd\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vintegris\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vintegris\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"viptela\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/viptela\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vircom\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vircom\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vizixiotplatformretail001\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vizixiotplatformretail001\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vmturbo\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vmturbo\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"Vormetric\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/Vormetric\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vte\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vte\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"vu-llc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/vu-llc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"WAD2AI.Diagnostics.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/WAD2AI.Diagnostics.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"WAD2EventHub.Diagnostics.Test\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/WAD2EventHub.Diagnostics.Test\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"wallix\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/wallix\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"wanpath-dba-myworkdrive\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/wanpath-dba-myworkdrive\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"waratek\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/waratek\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"wardy-it-solutions\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/wardy-it-solutions\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"warewolf-esb\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/warewolf-esb\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"watchguard-technologies\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/watchguard-technologies\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"waves\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/waves\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"websense-apmailpe\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/websense-apmailpe\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"winmagic_securedoc_cloudvm\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/winmagic_securedoc_cloudvm\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"wmspanel\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/wmspanel\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"workshare-technology\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/workshare-technology\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"workspot\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/workspot\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"wowza\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/wowza\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"xendata-inc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/xendata-inc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"xfinityinc\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/xfinityinc\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"xtremedata\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/xtremedata\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"xyzrd-group-ou\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/xyzrd-group-ou\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"yellowfin\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/yellowfin\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"your-shop-online\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/your-shop-online\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"z1\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/z1\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"z4it-aps\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/z4it-aps\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"zend\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/zend\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"zerodown_software\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/zerodown_software\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"zerto\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/zerto\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"zoomdata\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/zoomdata\"\r\n },\r\n {\r\n \"location\": \"westus\",\r\n \"name\": \"zscaler\",\r\n \"id\": \"/Subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/Providers/Microsoft.Compute/Locations/westus/Publishers/zscaler\"\r\n }\r\n]",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "150194"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "x-ms-served-by": [
+ "2747c2e2-3160-4ce0-a683-abb6a835b6e9_131696986048482852"
+ ],
+ "x-ms-request-id": [
+ "f005b905-9f25-4a04-aa88-8726f6b733cf"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Server": [
+ "Microsoft-HTTPAPI/2.0",
+ "Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "14999"
+ ],
+ "x-ms-correlation-request-id": [
+ "79003797-db39-4941-a325-f633c30d5b34"
+ ],
+ "x-ms-routing-request-id": [
+ "WESTUS2:20180711T192733Z:79003797-db39-4941-a325-f633c30d5b34"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 11 Jul 2018 19:27:32 GMT"
+ ]
+ },
+ "StatusCode": 200
+ }
+ ],
+ "Names": {},
+ "Variables": {
+ "SubscriptionId": "c9cbd920-c00c-427c-852b-8aaf38badaeb"
+ }
+}
\ No newline at end of file
diff --git a/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineSizes.json b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineSizes.json
new file mode 100644
index 000000000000..317b04e27d44
--- /dev/null
+++ b/src/Common/Commands.Common.Compute.Tests/SessionRecords/Microsoft.Azure.Commands.Common.Compute.Tests.Version2016_04_preview.ComputeManagementClientShould/ListVirtualMachineSizes.json
@@ -0,0 +1,78 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb/providers/Microsoft.Compute/locations/WestUs/vmSizes?api-version=2016-04-30-preview",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYzljYmQ5MjAtYzAwYy00MjdjLTg1MmItOGFhZjM4YmFkYWViL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvV2VzdFVzL3ZtU2l6ZXM/YXBpLXZlcnNpb249MjAxNi0wNC0zMC1wcmV2aWV3",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "x-ms-client-request-id": [
+ "38fea5ab-5024-4ce7-9dd6-635ce1d1627a"
+ ],
+ "accept-language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Commands.Common.Compute.Version2016_04_preview.ComputeManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"name\": \"Standard_B1ms\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 4096,\r\n \"memoryInMB\": 2048,\r\n \"maxDataDiskCount\": 2\r\n },\r\n {\r\n \"name\": \"Standard_B1s\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2048,\r\n \"memoryInMB\": 1024,\r\n \"maxDataDiskCount\": 2\r\n },\r\n {\r\n \"name\": \"Standard_B2ms\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 16384,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_B2s\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 8192,\r\n \"memoryInMB\": 4096,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_B4ms\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_B8ms\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS1_v2\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 7168,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_DS2_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 14336,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS3_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS4_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS5_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS11-1_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS11_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS12-1_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS12-2_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS12_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS13-2_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS13-4_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS13_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS14-4_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS14-8_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS14_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS15_v2\",\r\n \"numberOfCores\": 20,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 286720,\r\n \"memoryInMB\": 143360,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS2_v2_Promo\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 14336,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS3_v2_Promo\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS4_v2_Promo\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS5_v2_Promo\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS11_v2_Promo\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS12_v2_Promo\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS13_v2_Promo\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS14_v2_Promo\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_F1s\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 4096,\r\n \"memoryInMB\": 2048,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_F2s\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 8192,\r\n \"memoryInMB\": 4096,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_F4s\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 16384,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_F8s\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_F16s\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D2s_v3\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 16384,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_D4s_v3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D8s_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D16s_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D32s_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_A0\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 20480,\r\n \"memoryInMB\": 768,\r\n \"maxDataDiskCount\": 1\r\n },\r\n {\r\n \"name\": \"Standard_A1\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 71680,\r\n \"memoryInMB\": 1792,\r\n \"maxDataDiskCount\": 2\r\n },\r\n {\r\n \"name\": \"Standard_A2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 138240,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_A3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 291840,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_A5\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 138240,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_A4\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 619520,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_A6\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 291840,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_A7\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 619520,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Basic_A0\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 20480,\r\n \"memoryInMB\": 768,\r\n \"maxDataDiskCount\": 1\r\n },\r\n {\r\n \"name\": \"Basic_A1\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 40960,\r\n \"memoryInMB\": 1792,\r\n \"maxDataDiskCount\": 2\r\n },\r\n {\r\n \"name\": \"Basic_A2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 61440,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Basic_A3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 122880,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Basic_A4\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 245760,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D1_v2\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 51200,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_D2_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D3_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D4_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D5_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D11_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D12_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D13_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D14_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D15_v2\",\r\n \"numberOfCores\": 20,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 286720,\r\n \"memoryInMB\": 143360,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D2_v2_Promo\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D3_v2_Promo\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D4_v2_Promo\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D5_v2_Promo\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D11_v2_Promo\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D12_v2_Promo\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D13_v2_Promo\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D14_v2_Promo\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_F1\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 16384,\r\n \"memoryInMB\": 2048,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_F2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 4096,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_F4\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_F8\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_F16\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_A1_v2\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 10240,\r\n \"memoryInMB\": 2048,\r\n \"maxDataDiskCount\": 2\r\n },\r\n {\r\n \"name\": \"Standard_A2m_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 20480,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_A2_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 20480,\r\n \"memoryInMB\": 4096,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_A4m_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 40960,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_A4_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 40960,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_A8m_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 81920,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_A8_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 81920,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D2_v3\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 51200,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_D4_v3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D8_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D16_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 65636,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D32_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D1\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 51200,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_D2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D4\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D11\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_D12\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_D13\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D14\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_DS1\",\r\n \"numberOfCores\": 1,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 7168,\r\n \"memoryInMB\": 3584,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_DS2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 14336,\r\n \"memoryInMB\": 7168,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS4\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS11\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 28672,\r\n \"memoryInMB\": 14336,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_DS12\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_DS13\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_DS14\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_D64_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1638400,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_D64s_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 524288,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E2_v3\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 51200,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_E4_v3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 102400,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_E8_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 204800,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_E16_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 409600,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E20_v3\",\r\n \"numberOfCores\": 20,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 512000,\r\n \"memoryInMB\": 163840,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E32_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 819200,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64i_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1638400,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1638400,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E2s_v3\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_E4-2s_v3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_E4s_v3\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_E8-2s_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_E8-4s_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_E8s_v3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_E16-4s_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E16-8s_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E16s_v3\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E20s_v3\",\r\n \"numberOfCores\": 20,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 327680,\r\n \"memoryInMB\": 163840,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E32-8s_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 524288,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E32-16s_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 524288,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E32s_v3\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 524288,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64-16s_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 884736,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64-32s_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 884736,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64is_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 884736,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_E64s_v3\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 884736,\r\n \"memoryInMB\": 442368,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_G1\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 393216,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_G2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 786432,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_G3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1572864,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_G4\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 3145728,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_G5\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 6291456,\r\n \"memoryInMB\": 458752,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS1\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 57344,\r\n \"memoryInMB\": 28672,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_GS2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 114688,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_GS3\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 229376,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_GS4\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 458752,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS4-4\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 458752,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS4-8\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 458752,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS5\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 917504,\r\n \"memoryInMB\": 458752,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS5-8\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 917504,\r\n \"memoryInMB\": 458752,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_GS5-16\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 917504,\r\n \"memoryInMB\": 458752,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_L4s\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 694272,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_L8s\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1421312,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_L16s\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2874368,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_L32s\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 5765120,\r\n \"memoryInMB\": 262144,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_A8\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 391168,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_A9\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 391168,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_A10\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 391168,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_A11\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 391168,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_H8\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1024000,\r\n \"memoryInMB\": 57344,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_H16\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2048000,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_H8m\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 1024000,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_H16m\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2048000,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_H16r\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2048000,\r\n \"memoryInMB\": 114688,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_H16mr\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 2048000,\r\n \"memoryInMB\": 229376,\r\n \"maxDataDiskCount\": 64\r\n },\r\n {\r\n \"name\": \"Standard_F2s_v2\",\r\n \"numberOfCores\": 2,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 16384,\r\n \"memoryInMB\": 4096,\r\n \"maxDataDiskCount\": 4\r\n },\r\n {\r\n \"name\": \"Standard_F4s_v2\",\r\n \"numberOfCores\": 4,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 32768,\r\n \"memoryInMB\": 8192,\r\n \"maxDataDiskCount\": 8\r\n },\r\n {\r\n \"name\": \"Standard_F8s_v2\",\r\n \"numberOfCores\": 8,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 65536,\r\n \"memoryInMB\": 16384,\r\n \"maxDataDiskCount\": 16\r\n },\r\n {\r\n \"name\": \"Standard_F16s_v2\",\r\n \"numberOfCores\": 16,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 131072,\r\n \"memoryInMB\": 32768,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_F32s_v2\",\r\n \"numberOfCores\": 32,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 262144,\r\n \"memoryInMB\": 65536,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_F64s_v2\",\r\n \"numberOfCores\": 64,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 524288,\r\n \"memoryInMB\": 131072,\r\n \"maxDataDiskCount\": 32\r\n },\r\n {\r\n \"name\": \"Standard_F72s_v2\",\r\n \"numberOfCores\": 72,\r\n \"osDiskSizeInMB\": 1047552,\r\n \"resourceDiskSizeInMB\": 589824,\r\n \"memoryInMB\": 147456,\r\n \"maxDataDiskCount\": 32\r\n }\r\n ]\r\n}",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "34466"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "x-ms-ratelimit-remaining-resource": [
+ "Microsoft.Compute/GetSubscriptionInfo3Min;479"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=31536000; includeSubDomains"
+ ],
+ "x-ms-served-by": [
+ "92ee2ba5-d1cb-4536-af4e-e306b67c70d2_131757701560880137"
+ ],
+ "x-ms-request-id": [
+ "3b81816c-6e5d-4b34-92ae-595bce366364"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Server": [
+ "Microsoft-HTTPAPI/2.0",
+ "Microsoft-HTTPAPI/2.0"
+ ],
+ "x-ms-ratelimit-remaining-subscription-reads": [
+ "14998"
+ ],
+ "x-ms-correlation-request-id": [
+ "5ff56ad5-e8d2-4704-a4f5-f55e62afce1f"
+ ],
+ "x-ms-routing-request-id": [
+ "WESTUS2:20180711T192736Z:5ff56ad5-e8d2-4704-a4f5-f55e62afce1f"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "Date": [
+ "Wed, 11 Jul 2018 19:27:36 GMT"
+ ]
+ },
+ "StatusCode": 200
+ }
+ ],
+ "Names": {},
+ "Variables": {
+ "SubscriptionId": "c9cbd920-c00c-427c-852b-8aaf38badaeb"
+ }
+}
\ No newline at end of file
diff --git a/src/Common/Commands.Common.Compute.Tests/Version2016-04-preview/ComputeManagementClientShould.cs b/src/Common/Commands.Common.Compute.Tests/Version2016-04-preview/ComputeManagementClientShould.cs
index 714fa5e1346f..274f3e8a156e 100644
--- a/src/Common/Commands.Common.Compute.Tests/Version2016-04-preview/ComputeManagementClientShould.cs
+++ b/src/Common/Commands.Common.Compute.Tests/Version2016-04-preview/ComputeManagementClientShould.cs
@@ -12,64 +12,76 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-
-
namespace Microsoft.Azure.Commands.Common.Compute.Tests
{
using Compute.Version2016_04_preview;
- using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Xunit;
+ using System;
using System.Linq;
+ using System.IO;
+ using Microsoft.Azure.Test.HttpRecorder;
+ using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
+ using Microsoft.WindowsAzure.Commands.ScenarioTest;
namespace Version2016_04_preview
{
public class ComputeManagementClientShould
{
- private IComputeManagementClient Client {get;}
-
public ComputeManagementClientShould()
{
- var credManager = CredentialManager.FromServicePrincipalEnvVariable();
- Client = new ComputeManagementClient(credManager.TokenCredentials)
- {
- SubscriptionId = credManager.SubscriptionId
- };
+ HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords");
}
[Fact]
- [Trait(Category.RunType, Category.LiveOnly)]
+ [Trait(Category.RunType, Category.CheckIn)]
public void ListVirtualMachine()
{
- var vmClient = Client.VirtualMachines;
- var vms = vmClient.ListAll().ToList();
- Assert.True(vms.Count > 0);
+ using (var context = MockContext.Start(this.GetType().FullName))
+ {
+ var client = context.GetServiceClient();
+ var vmClient = client.VirtualMachines;
+ var vms = vmClient.ListAll().ToList();
+ Assert.True(vms.Count > 0);
+ }
}
[Fact]
- [Trait(Category.RunType, Category.LiveOnly)]
+ [Trait(Category.RunType, Category.CheckIn)]
public void ListVirtualMachineSizes()
{
- var vmSizeClient = Client.VirtualMachineSizes;
- var vmSizes = vmSizeClient.List("WestUs").ToList();
- Assert.True(vmSizes.Count > 0);
+ using (var context = MockContext.Start(this.GetType().FullName))
+ {
+ var client = context.GetServiceClient();
+ var vmSizeClient = client.VirtualMachineSizes;
+ var vmSizes = vmSizeClient.List("WestUs").ToList();
+ Assert.True(vmSizes.Count > 0);
+ }
}
[Fact]
- [Trait(Category.RunType, Category.LiveOnly)]
+ [Trait(Category.RunType, Category.CheckIn)]
public void ListVirtualMachineImagePublishers()
{
- var vmImagesClient = Client.VirtualMachineImages;
- var vmImagePublisers = vmImagesClient.ListPublishers("WestUs").ToList();
- Assert.True(vmImagePublisers.Count > 0);
+ using (var context = MockContext.Start(this.GetType().FullName))
+ {
+ var client = context.GetServiceClient();
+ var vmImagesClient = client.VirtualMachineImages;
+ var vmImagePublisers = vmImagesClient.ListPublishers("WestUs").ToList();
+ Assert.True(vmImagePublisers.Count > 0);
+ }
}
[Fact]
- [Trait(Category.RunType, Category.LiveOnly)]
+ [Trait(Category.RunType, Category.CheckIn)]
public void ListDisks()
{
- var disksClient = Client.Disks;
- var disks = disksClient.List().ToList();
- Assert.True(disks.Count > 0);
+ using (var context = MockContext.Start(this.GetType().FullName))
+ {
+ var client = context.GetServiceClient();
+ var disksClient = client.Disks;
+ var disks = disksClient.List().ToList();
+ Assert.True(disks.Count > 0);
+ }
}
}
}
diff --git a/src/Common/Commands.Common.Compute.Tests/packages.config b/src/Common/Commands.Common.Compute.Tests/packages.config
index 7ee6464e10a1..2d8e069fcb55 100644
--- a/src/Common/Commands.Common.Compute.Tests/packages.config
+++ b/src/Common/Commands.Common.Compute.Tests/packages.config
@@ -1,6 +1,9 @@
+
+
+
diff --git a/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.Netcore.csproj b/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.Netcore.csproj
new file mode 100644
index 000000000000..f026b23e2485
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.Netcore.csproj
@@ -0,0 +1,45 @@
+
+
+
+
+
+ netcoreapp2.0
+ Microsoft.Azure.Commands.TestFx
+ Microsoft.Azure.Commands.TestFx
+ false
+
+
+
+ false
+ TRACE;DEBUG;NETSTANDARD
+ true
+
+
+
+
+ true
+ true
+ MSSharedLibKey.snk
+ TRACE;RELEASE;NETSTANDARD;SIGN
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
\ No newline at end of file
diff --git a/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.csproj b/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.csproj
new file mode 100644
index 000000000000..d5690e01f7fa
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/Commands.TestFx.csproj
@@ -0,0 +1,115 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}
+ Library
+ Properties
+ Microsoft.Azure.Commands.TestFx
+ Microsoft.Azure.Commands.TestFx
+ v4.5.2
+ 512
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\..\packages\Hyak.Common.1.1.0\lib\net45\Hyak.Common.dll
+
+
+ ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.8.1\lib\net452\Microsoft.Azure.Test.HttpRecorder.dll
+
+
+ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll
+
+
+ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll
+
+
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.0\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
+
+
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.7.2\lib\net452\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll
+
+
+ ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll
+
+
+ ..\..\..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll
+
+
+
+ ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {70527617-7598-4aef-b5bd-db9186b8184b}
+ Commands.Common.Authentication.Abstractions
+
+
+ {d3804b64-c0d3-48f8-82ec-1f632f833c9e}
+ Commands.Common.Authentication
+
+
+ {269ACF73-0A34-42DC-AB9C-4B15931A489D}
+ Commands.Common.Graph.RBAC
+
+
+ {69C2EB6B-CD63-480A-89A0-C489706E9299}
+ Commands.Common.Authentication.ResourceManager
+
+
+ {3436a126-edc9-4060-8952-9a1be34cdd95}
+ Commands.ScenarioTests.ResourceManager.Common
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ResourceManager/Common/Commands.TestFx/ITestRunner.cs b/src/ResourceManager/Common/Commands.TestFx/ITestRunner.cs
new file mode 100644
index 000000000000..b833046a9792
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/ITestRunner.cs
@@ -0,0 +1,21 @@
+// ----------------------------------------------------------------------------------
+//
+// 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.TestFx
+{
+ public interface ITestRunner
+ {
+ void RunTestScript(params string[] scripts);
+ }
+}
diff --git a/src/ResourceManager/Common/Commands.TestFx/ITestRunnerFactory.cs b/src/ResourceManager/Common/Commands.TestFx/ITestRunnerFactory.cs
new file mode 100644
index 000000000000..6de9e740857a
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/ITestRunnerFactory.cs
@@ -0,0 +1,32 @@
+// ----------------------------------------------------------------------------------
+//
+// 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;
+using System.Collections.Generic;
+using Microsoft.WindowsAzure.Commands.ScenarioTest;
+
+namespace Microsoft.Azure.Commands.TestFx
+{
+ public interface ITestRunnerFactory
+ {
+ ITestRunner Build();
+ ITestRunnerFactory WithProjectSubfolderForTests(string folderName);
+ ITestRunnerFactory WithCommonPsScripts(string[] psScriptList);
+ ITestRunnerFactory WithNewPsScriptFilename(string psScriptName);
+ ITestRunnerFactory WithExtraRmModules(Func buildModuleList);
+ ITestRunnerFactory WithNewRmModules(Func buildModuleList);
+ ITestRunnerFactory WithExtraUserAgentsToIgnore(Dictionary userAgentsToIgnore);
+ ITestRunnerFactory WithBuildMatcher(BuildMatcherDelegate buildMatcher);
+ }
+}
diff --git a/src/ResourceManager/Common/Commands.TestFx/Properties/AssemblyInfo.cs b/src/ResourceManager/Common/Commands.TestFx/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000000..9d5372ca7ccc
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/Properties/AssemblyInfo.cs
@@ -0,0 +1,31 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Commands.TestFx")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Microsoft Azure Powershell")]
+[assembly: AssemblyCopyright("Copyright © Microsoft")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("8c625de3-0067-454a-af2c-efd672eeb31a")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// 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.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/ResourceManager/Common/Commands.TestFx/TestClientFactory.cs b/src/ResourceManager/Common/Commands.TestFx/TestClientFactory.cs
new file mode 100644
index 000000000000..164f91e5778e
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/TestClientFactory.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.
+// ----------------------------------------------------------------------------------
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using Microsoft.Azure.Commands.Common.Authentication;
+using Microsoft.Azure.Commands.Common.Authentication.Abstractions;
+using Microsoft.Azure.Commands.Common.Authentication.Models;
+using Microsoft.Azure.Graph.RBAC.Version1_6;
+using Microsoft.Rest;
+using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
+
+namespace Microsoft.Azure.Commands.TestFx
+{
+ public class TestClientFactory : IClientFactory
+ {
+ private readonly MockContext _mockContext;
+
+ public TestClientFactory(MockContext mockContext)
+ {
+ if (mockContext == null) throw new ArgumentNullException(nameof(mockContext));
+ _mockContext = mockContext;
+ }
+
+ public TClient CreateArmClient(IAzureContext context, string endpoint) where TClient : ServiceClient
+ {
+ if (typeof(TClient) != typeof(GraphRbacManagementClient))
+ {
+ return _mockContext.GetServiceClient();
+ }
+
+ var graphClient = _mockContext.GetGraphServiceClient();
+ graphClient.TenantID = context.Tenant.Id;
+ return graphClient as TClient;
+ }
+
+ public TClient CreateCustomArmClient(params object[] parameters) where TClient : ServiceClient
+ {
+ return _mockContext.GetServiceClient();
+ }
+
+ public HttpClient CreateHttpClient(string endpoint, ICredentials credentials)
+ {
+ throw new NotImplementedException();
+ }
+
+ public HttpClient CreateHttpClient(string endpoint, HttpMessageHandler effectiveHandler)
+ {
+ throw new NotImplementedException();
+ }
+
+ #region Action and Handler
+
+ public void AddAction(IClientAction action)
+ {
+ // Do nothing
+ }
+
+ public void RemoveAction(Type actionType)
+ {
+ // Do nothing
+ }
+
+ public void AddHandler(T handler) where T : DelegatingHandler, ICloneable
+ {
+ // Do nothing
+ }
+
+ public void RemoveHandler(Type handlerType)
+ {
+ // Do nothing
+ }
+ public DelegatingHandler[] GetCustomHandlers()
+ {
+ // Do nothing
+ return new DelegatingHandler[0];
+ }
+
+ #endregion
+
+ #region UserAgent
+
+ public HashSet UniqueUserAgents { get; set; } = new HashSet();
+
+ public void AddUserAgent(string productName, string productVersion)
+ {
+ UniqueUserAgents.Add(new ProductInfoHeaderValue(productName, productVersion));
+ }
+
+ public void AddUserAgent(string productName)
+ {
+ AddUserAgent(productName, string.Empty);
+ }
+
+ public void RemoveUserAgent(string name)
+ {
+ UniqueUserAgents.RemoveWhere(p => string.Equals(p.Product.Name, name, StringComparison.OrdinalIgnoreCase));
+ }
+
+ public ProductInfoHeaderValue[] UserAgents => UniqueUserAgents.ToArray();
+
+ #endregion
+
+ #region Hyak
+
+ public TClient CreateClient(IAzureContext context, string endpoint) where TClient : Hyak.Common.ServiceClient
+ {
+ throw new NotImplementedException();
+ }
+
+ public TClient CreateClient(IAzureContextContainer profile, string endpoint) where TClient : Hyak.Common.ServiceClient
+ {
+ throw new NotImplementedException();
+ }
+
+ public TClient CreateClient(IAzureContextContainer profile, IAzureSubscription subscription, string endpoint) where TClient : Hyak.Common.ServiceClient
+ {
+ throw new NotImplementedException();
+ }
+
+ public TClient CreateCustomClient(params object[] parameters) where TClient : Hyak.Common.ServiceClient
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+
+ }
+}
diff --git a/src/ResourceManager/Common/Commands.TestFx/TestManager.cs b/src/ResourceManager/Common/Commands.TestFx/TestManager.cs
new file mode 100644
index 000000000000..4124bff6f059
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/TestManager.cs
@@ -0,0 +1,296 @@
+// ----------------------------------------------------------------------------------
+//
+// 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;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using Microsoft.Azure.Commands.Common.Authentication;
+using Microsoft.Azure.Commands.Common.Authentication.Abstractions;
+using Microsoft.Azure.Commands.Common.Authentication.Models;
+using Microsoft.Azure.Commands.ResourceManager.Common;
+using Microsoft.Azure.ServiceManagemenet.Common.Models;
+using Microsoft.Azure.Test.HttpRecorder;
+using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
+using Microsoft.WindowsAzure.Commands.ScenarioTest;
+using Xunit.Abstractions;
+
+namespace Microsoft.Azure.Commands.TestFx
+{
+ public delegate IRecordMatcher BuildMatcherDelegate (bool ignoreResourcesClient, Dictionary resourceProviders, Dictionary userAgentsToIgnore);
+
+ public class TestManager : ITestRunnerFactory, ITestRunner
+ {
+ private readonly string _callingClassName;
+ private string _projectSubfolderForTestsName = null;
+ private string _newPsScriptFilename = null;
+ private Dictionary _userAgentsToIgnore;
+ protected EnvironmentSetupHelper Helper;
+ protected readonly List RmModules;
+ protected readonly List CommonPsScripts = new List();
+
+ protected BuildMatcherDelegate BuildMatcher { get; set; }
+
+ protected XunitTracingInterceptor Logger { get; set; }
+
+ ///
+ /// Factory method
+ ///
+ ///
+ ///
+ ///
+ public static ITestRunnerFactory CreateInstance(ITestOutputHelper output, [CallerFilePath] string callerFilePath = null)
+ {
+ var callingClassName = string.IsNullOrEmpty(callerFilePath)
+ ? null
+ : Path.GetFileNameWithoutExtension(callerFilePath);
+ return new TestManager(callingClassName).WithTestOutputHelper(output);
+ }
+
+ ///
+ /// ctor
+ ///
+ ///
+ protected TestManager(string callingClassName)
+ {
+ Helper = new EnvironmentSetupHelper();
+ _callingClassName = callingClassName;
+
+ RmModules = new List
+ {
+ Helper.RMProfileModule,
+ Helper.RMResourceModule,
+ };
+
+ BuildMatcher = (ignoreResourcesClient, resourceProviders, userAgentsToIgnore) =>
+ new PermissiveRecordMatcherWithApiExclusion(ignoreResourcesClient, resourceProviders, userAgentsToIgnore);
+ }
+
+ #region Builder impl
+
+ ///
+ /// Sets a name of the subfolder where a test project keeps tests
+ ///
+ ///
+ /// self
+ public ITestRunnerFactory WithProjectSubfolderForTests(string folderName)
+ {
+ _projectSubfolderForTestsName = folderName ?? "ScenarioTests";
+ return this;
+ }
+
+ ///
+ /// Add helper scripts
+ ///
+ ///
+ /// self
+ public ITestRunnerFactory WithCommonPsScripts(string[] psScriptList)
+ {
+ CommonPsScripts.AddRange(psScriptList);
+ return this;
+ }
+
+ ///
+ /// Overrided default script name, which by convension is the cs test class name with ps1 extension.
+ ///
+ ///
+ /// self
+ public ITestRunnerFactory WithNewPsScriptFilename(string psScriptName)
+ {
+ _newPsScriptFilename = psScriptName;
+ return this;
+ }
+
+ ///
+ /// Adds extra RM modules in addition to the RMProfileModule and RMResourceModule,
+ /// witch are added in the constructor.
+ ///
+ ///
+ ///
+ public ITestRunnerFactory WithExtraRmModules(Func buildModuleList)
+ {
+ var moduleList = buildModuleList(Helper);
+ RmModules.AddRange(moduleList);
+ return this;
+ }
+
+ ///
+ /// Clears default RM modules list and sets a brand new
+ ///
+ ///
+ ///
+ public ITestRunnerFactory WithNewRmModules(Func buildModuleList)
+ {
+ RmModules.Clear();
+ var moduleList = buildModuleList(Helper);
+ RmModules.AddRange(moduleList);
+ return this;
+ }
+
+ ///
+ /// Sets a new HttpMockServer.Matcher implementation. By defauls it's PermissiveRecordMatcherWithApiExclusion
+ ///
+ /// delegate
+ /// self
+ public ITestRunnerFactory WithBuildMatcher(BuildMatcherDelegate buildMatcher)
+ {
+ BuildMatcher = buildMatcher;
+ return this;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// Dictionary to store pairs: {user agent name, version-api to ignore}.
+ /// Initial pair is {"Microsoft.Azure.Management.Resources.ResourceManagementClient", "2016-02-01"}
+ ///
+ /// self
+ public ITestRunnerFactory WithExtraUserAgentsToIgnore(Dictionary userAgentsToIgnore)
+ {
+ _userAgentsToIgnore = userAgentsToIgnore;
+ return this;
+ }
+
+ public ITestRunnerFactory WithTestOutputHelper(ITestOutputHelper output)
+ {
+ Logger = new XunitTracingInterceptor(output);
+ XunitTracingInterceptor.AddToContext(Logger);
+ Helper.TracingInterceptor = Logger;
+ return this;
+ }
+
+ public ITestRunner Build()
+ {
+ SetupSessionAndProfile();
+ SetupMockServerMatcher();
+ HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords");
+ Helper.SetupModules(AzureModule.AzureResourceManager, BuildModulesList());
+ return this;
+ }
+
+ public void RunTestScript(params string[] scripts)
+ {
+ var sf = new StackTrace().GetFrame(1);
+ var className = sf.GetMethod().ReflectedType?.ToString();
+ var methodName = sf.GetMethod().Name;
+
+ using (var mockContext = MockContext.Start(className, methodName))
+ {
+ AzureSession.Instance.ClientFactory = new TestClientFactory(mockContext);
+ Helper.SetupEnvironment(AzureModule.AzureResourceManager);
+ SetupAzureContext();
+ Helper.RunPowerShellTest(scripts);
+ }
+ }
+
+ #endregion
+
+ #region Helpers
+
+ protected string[] BuildModulesList()
+ {
+ if (string.IsNullOrEmpty(_callingClassName)
+ && string.IsNullOrEmpty(_newPsScriptFilename))
+ throw new ArgumentNullException($"Both {nameof(_callingClassName)} and {nameof(_newPsScriptFilename)} are null");
+
+ var allScripts = CommonPsScripts;
+ allScripts.Add(_newPsScriptFilename ?? $"{_callingClassName}.ps1");
+
+ var allScriptsWithPath = _projectSubfolderForTestsName == null
+ ? allScripts
+ : allScripts.Select(s => Path.Combine(_projectSubfolderForTestsName, s));
+
+ var allModules = RmModules;
+ allModules.AddRange(allScriptsWithPath);
+
+ return allModules.ToArray();
+ }
+
+ protected void SetupSessionAndProfile()
+ {
+ AzureSessionInitializer.InitializeAzureSession();
+ AzureSession.Instance.ARMContextSaveMode = ContextSaveMode.Process;
+ ResourceManagerProfileProvider.InitializeResourceManagerProfile();
+ if (!(AzureSession.Instance?.DataStore is MemoryDataStore))
+ {
+ AzureSession.Instance.DataStore = new MemoryDataStore();
+ }
+ }
+
+ protected void SetupAzureContext()
+ {
+ const string tenantIdKey = "TenantId";
+ const string domainKey = "Domain";
+ const string subscriptionIdKey = "SubscriptionId";
+ const string undefined = "Undefined";
+ var zeroGuild = Guid.Empty.ToString();
+
+ string tenantId = null;
+ string userDomain = null;
+ string subscriptionId = null;
+
+ if (HttpMockServer.Mode == HttpRecorderMode.Record)
+ {
+ var environment = TestEnvironmentFactory.GetTestEnvironment();
+ tenantId = environment.Tenant;
+ userDomain = string.IsNullOrEmpty(environment.UserName)
+ ? string.Empty
+ : environment.UserName.Split(new[] { "@" }, StringSplitOptions.RemoveEmptyEntries).Last();
+
+ subscriptionId = environment.SubscriptionId;
+ }
+ else if (HttpMockServer.Mode == HttpRecorderMode.Playback)
+ {
+ tenantId = HttpMockServer.Variables.ContainsKey(tenantIdKey)
+ ? HttpMockServer.Variables[tenantIdKey]
+ : zeroGuild;
+ userDomain = HttpMockServer.Variables.ContainsKey(domainKey)
+ ? HttpMockServer.Variables[domainKey]
+ : "testdomain.onmicrosoft.com";
+ subscriptionId = HttpMockServer.Variables.ContainsKey(subscriptionIdKey)
+ ? HttpMockServer.Variables[subscriptionIdKey]
+ : zeroGuild;
+ }
+
+ AzureRmProfileProvider.Instance.Profile.DefaultContext.Tenant.Id = tenantId ?? undefined;
+ AzureRmProfileProvider.Instance.Profile.DefaultContext.Tenant.Directory = userDomain ?? undefined;
+ AzureRmProfileProvider.Instance.Profile.DefaultContext.Subscription.Id = subscriptionId ?? undefined;
+ }
+
+ protected void SetupMockServerMatcher()
+ {
+ var resourceProviders = new Dictionary
+ {
+ {"Microsoft.Resources", null},
+ {"Microsoft.Features", null},
+ {"Microsoft.Authorization", null},
+ {"Providers.Test", null},
+ };
+
+ var userAgentsToIgnore = new Dictionary
+ {
+ {"Microsoft.Azure.Management.Resources.ResourceManagementClient", "2016-02-01"},
+ };
+
+ _userAgentsToIgnore?.Keys.ForEach(k=> userAgentsToIgnore.Add(k, _userAgentsToIgnore[k]));
+
+ HttpMockServer.Matcher = BuildMatcher(true, resourceProviders, userAgentsToIgnore);
+ }
+
+ #endregion
+ }
+}
diff --git a/src/ResourceManager/Common/Commands.TestFx/TestRunnerBase.cs b/src/ResourceManager/Common/Commands.TestFx/TestRunnerBase.cs
new file mode 100644
index 000000000000..f1a6fa44c1cb
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/TestRunnerBase.cs
@@ -0,0 +1,31 @@
+// ----------------------------------------------------------------------------------
+//
+// 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 Xunit.Abstractions;
+
+namespace Microsoft.Azure.Commands.TestFx
+{
+ public class TestRunnerBase
+ {
+ protected readonly ITestRunner TestRunner;
+
+ protected TestRunnerBase(ITestOutputHelper output)
+ {
+ TestRunner = TestManager
+ .CreateInstance(output)
+ .WithNewPsScriptFilename($"{GetType().Name}.ps1")
+ .Build();
+ }
+ }
+}
diff --git a/src/ResourceManager/Common/Commands.TestFx/packages.config b/src/ResourceManager/Common/Commands.TestFx/packages.config
new file mode 100644
index 000000000000..6257334dbbf8
--- /dev/null
+++ b/src/ResourceManager/Common/Commands.TestFx/packages.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ArgumentCompleterTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/ArgumentCompleterTests.cs
index 5628a67b809e..918f03dc19fc 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/ArgumentCompleterTests.cs
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/ArgumentCompleterTests.cs
@@ -12,48 +12,39 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.Commands.ResourceManager.Common;
-using Microsoft.Azure.Commands.Resources.Test.ScenarioTests;
-using Microsoft.Azure.Commands.ScenarioTest;
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
+using Microsoft.Azure.Commands.TestFx;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Profile.Test
{
- public class ArgumentCompleterTests : RMTestBase
+ public class ArgumentCompleterTests : TestRunnerBase
{
- private XunitTracingInterceptor xunitLogger;
-
- public ArgumentCompleterTests(ITestOutputHelper output)
+ public ArgumentCompleterTests(ITestOutputHelper output)
+ : base(output)
{
- TestExecutionHelpers.SetUpSessionAndProfile();
- ResourceManagerProfileProvider.InitializeResourceManagerProfile(true);
-
- xunitLogger = new XunitTracingInterceptor(output);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestLocationCompleter()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-LocationCompleter");
+ TestRunner.RunTestScript("Test-LocationCompleter");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestResourceGroupCompleter()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-ResourceGroupCompleter");
+ TestRunner.RunTestScript("Test-ResourceGroupCompleter");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestResourceIdCompleter()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-ResourceIdCompleter");
+ TestRunner.RunTestScript("Test-ResourceIdCompleter");
}
}
}
\ No newline at end of file
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.Netcore.csproj b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.Netcore.csproj
index 9855d2b375fd..178db687395f 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.Netcore.csproj
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.Netcore.csproj
@@ -32,6 +32,7 @@
+
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj
index 980d43680b0a..e906426a6a76 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj
@@ -246,6 +246,10 @@
{3819d8a7-c62c-4c47-8ddd-0332d9ce1252}
Commands.ResourceManager.Common
+
+ {8c625de3-0067-454a-af2c-efd672eeb31a}
+ Commands.TestFx
+
{142d7b0b-388a-4ceb-a228-7f6d423c5c2e}
Commands.Profile
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/DefaultCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/DefaultCmdletTests.cs
index f4ba350857cd..401cad089663 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/DefaultCmdletTests.cs
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/DefaultCmdletTests.cs
@@ -12,35 +12,25 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.Commands.ResourceManager.Common;
-using Microsoft.Azure.Commands.Resources.Test.ScenarioTests;
-using Microsoft.Azure.Commands.ScenarioTest;
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
-using System.Threading;
+using Microsoft.Azure.Commands.TestFx;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Profile.Test
{
- public class DefaultCmdletTests : RMTestBase
+ public class DefaultCmdletTests : TestRunnerBase
{
- private XunitTracingInterceptor xunitLogger;
-
public DefaultCmdletTests(ITestOutputHelper output)
+ : base(output)
{
- TestExecutionHelpers.SetUpSessionAndProfile();
- ResourceManagerProfileProvider.InitializeResourceManagerProfile(true);
-
- xunitLogger = new XunitTracingInterceptor(output);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void DefaultResourceGroup()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-DefaultResourceGroup");
+ TestRunner.RunTestScript("Test-DefaultResourceGroup");
}
}
}
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.SubscriptionCmdletTests/SetAzureRmContextWithoutSubscription.json b/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.SubscriptionCmdletTests/SetAzureRmContextWithoutSubscription.json
index 4f6482da069a..8d616121d941 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.SubscriptionCmdletTests/SetAzureRmContextWithoutSubscription.json
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.SubscriptionCmdletTests/SetAzureRmContextWithoutSubscription.json
@@ -1,115 +1,28 @@
{
"Entries": [
{
- "RequestUri": "/tenants?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3RlbmFudHM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
+ "RequestUri": "/tenants?api-version=2016-06-01",
+ "EncodedRequestUri": "L3RlbmFudHM/YXBpLXZlcnNpb249MjAxNi0wNi0wMQ==",
"RequestMethod": "GET",
"RequestBody": "",
"RequestHeaders": {
- "User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
- ]
- },
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/tenants/1449d5b7-8a83-47db-ae4c-9b03e888bad0\",\r\n \"tenantId\": \"1449d5b7-8a83-47db-ae4c-9b03e888bad0\"\r\n },\r\n {\r\n \"id\": \"/tenants/6b895ed6-b009-45a0-84a4-636430b25084\",\r\n \"tenantId\": \"6b895ed6-b009-45a0-84a4-636430b25084\"\r\n },\r\n {\r\n \"id\": \"/tenants/9fe145f5-4a27-4c1f-8ace-230be8b23bcd\",\r\n \"tenantId\": \"9fe145f5-4a27-4c1f-8ace-230be8b23bcd\"\r\n }\r\n ]\r\n}",
- "ResponseHeaders": {
- "Content-Length": [
- "326"
- ],
- "Content-Type": [
- "application/json; charset=utf-8"
- ],
- "Expires": [
- "-1"
- ],
- "Pragma": [
- "no-cache"
- ],
- "x-ms-ratelimit-remaining-tenant-reads": [
- "14999"
- ],
- "x-ms-request-id": [
- "b14ae26d-3601-4de7-9fea-83bd494e519f"
- ],
- "x-ms-correlation-request-id": [
- "b14ae26d-3601-4de7-9fea-83bd494e519f"
- ],
- "x-ms-routing-request-id": [
- "WESTUS:20151029T035402Z:b14ae26d-3601-4de7-9fea-83bd494e519f"
- ],
- "Strict-Transport-Security": [
- "max-age=31536000; includeSubDomains"
+ "x-ms-client-request-id": [
+ "079ef5ce-c3c7-48bc-8a30-eb87a3a35521"
],
- "Cache-Control": [
- "no-cache"
+ "accept-language": [
+ "en-US"
],
- "Date": [
- "Thu, 29 Oct 2015 03:54:01 GMT"
- ]
- },
- "StatusCode": 200
- },
- {
- "RequestUri": "/tenants?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3RlbmFudHM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
- "RequestMethod": "GET",
- "RequestBody": "",
- "RequestHeaders": {
"User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Internal.Subscriptions.SubscriptionClient/4.1.0"
]
},
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/tenants/1449d5b7-8a83-47db-ae4c-9b03e888bad0\",\r\n \"tenantId\": \"1449d5b7-8a83-47db-ae4c-9b03e888bad0\"\r\n },\r\n {\r\n \"id\": \"/tenants/6b895ed6-b009-45a0-84a4-636430b25084\",\r\n \"tenantId\": \"6b895ed6-b009-45a0-84a4-636430b25084\"\r\n },\r\n {\r\n \"id\": \"/tenants/9fe145f5-4a27-4c1f-8ace-230be8b23bcd\",\r\n \"tenantId\": \"9fe145f5-4a27-4c1f-8ace-230be8b23bcd\"\r\n }\r\n ]\r\n}",
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/tenants/72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\r\n }\r\n ]\r\n}",
"ResponseHeaders": {
"Content-Length": [
- "326"
- ],
- "Content-Type": [
- "application/json; charset=utf-8"
- ],
- "Expires": [
- "-1"
- ],
- "Pragma": [
- "no-cache"
- ],
- "x-ms-ratelimit-remaining-tenant-reads": [
- "14995"
- ],
- "x-ms-request-id": [
- "527caad0-6db2-4eb1-9455-a32a1b2acec0"
- ],
- "x-ms-correlation-request-id": [
- "527caad0-6db2-4eb1-9455-a32a1b2acec0"
- ],
- "x-ms-routing-request-id": [
- "WESTUS:20151029T035416Z:527caad0-6db2-4eb1-9455-a32a1b2acec0"
- ],
- "Strict-Transport-Security": [
- "max-age=31536000; includeSubDomains"
- ],
- "Cache-Control": [
- "no-cache"
- ],
- "Date": [
- "Thu, 29 Oct 2015 03:54:15 GMT"
- ]
- },
- "StatusCode": 200
- },
- {
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
- "RequestMethod": "GET",
- "RequestBody": "",
- "RequestHeaders": {
- "User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
- ]
- },
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
- "ResponseHeaders": {
- "Content-Length": [
- "274"
+ "116"
],
"Content-Type": [
"application/json; charset=utf-8"
@@ -124,136 +37,52 @@
"14998"
],
"x-ms-request-id": [
- "d551dce4-8f6b-41de-ad50-9d7b0d3aa7b2"
+ "673ef1bd-52f2-4ab1-b6f3-e3f76eef876c"
],
"x-ms-correlation-request-id": [
- "d551dce4-8f6b-41de-ad50-9d7b0d3aa7b2"
+ "673ef1bd-52f2-4ab1-b6f3-e3f76eef876c"
],
"x-ms-routing-request-id": [
- "WESTUS:20151029T035402Z:d551dce4-8f6b-41de-ad50-9d7b0d3aa7b2"
+ "WESTUS2:20180707T000901Z:673ef1bd-52f2-4ab1-b6f3-e3f76eef876c"
],
"Strict-Transport-Security": [
"max-age=31536000; includeSubDomains"
],
- "Cache-Control": [
- "no-cache"
- ],
- "Date": [
- "Thu, 29 Oct 2015 03:54:01 GMT"
- ]
- },
- "StatusCode": 200
- },
- {
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
- "RequestMethod": "GET",
- "RequestBody": "",
- "RequestHeaders": {
- "User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
- ]
- },
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
- "ResponseHeaders": {
- "Content-Length": [
- "274"
- ],
- "Content-Type": [
- "application/json; charset=utf-8"
- ],
- "Expires": [
- "-1"
- ],
- "Pragma": [
- "no-cache"
- ],
- "x-ms-ratelimit-remaining-tenant-reads": [
- "14997"
- ],
- "x-ms-request-id": [
- "d5148bbf-3244-4b3a-aa0c-a4b3906da70b"
- ],
- "x-ms-correlation-request-id": [
- "d5148bbf-3244-4b3a-aa0c-a4b3906da70b"
- ],
- "x-ms-routing-request-id": [
- "WESTUS:20151029T035402Z:d5148bbf-3244-4b3a-aa0c-a4b3906da70b"
- ],
- "Strict-Transport-Security": [
- "max-age=31536000; includeSubDomains"
+ "X-Content-Type-Options": [
+ "nosniff"
],
"Cache-Control": [
"no-cache"
],
"Date": [
- "Thu, 29 Oct 2015 03:54:01 GMT"
+ "Sat, 07 Jul 2018 00:09:00 GMT"
]
},
"StatusCode": 200
},
{
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
+ "RequestUri": "/subscriptions?api-version=2016-06-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNi0wNi0wMQ==",
"RequestMethod": "GET",
"RequestBody": "",
"RequestHeaders": {
- "User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
- ]
- },
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
- "ResponseHeaders": {
- "Content-Length": [
- "274"
+ "x-ms-client-request-id": [
+ "c6dbd578-a243-4f80-95a9-fbbe6f7e1935"
],
- "Content-Type": [
- "application/json; charset=utf-8"
- ],
- "Expires": [
- "-1"
- ],
- "Pragma": [
- "no-cache"
- ],
- "x-ms-ratelimit-remaining-tenant-reads": [
- "14996"
+ "accept-language": [
+ "en-US"
],
- "x-ms-request-id": [
- "2cc6fb82-d174-4e2f-902c-acaaf2109b6f"
- ],
- "x-ms-correlation-request-id": [
- "2cc6fb82-d174-4e2f-902c-acaaf2109b6f"
- ],
- "x-ms-routing-request-id": [
- "WESTUS:20151029T035402Z:2cc6fb82-d174-4e2f-902c-acaaf2109b6f"
- ],
- "Strict-Transport-Security": [
- "max-age=31536000; includeSubDomains"
- ],
- "Cache-Control": [
- "no-cache"
- ],
- "Date": [
- "Thu, 29 Oct 2015 03:54:02 GMT"
- ]
- },
- "StatusCode": 200
- },
- {
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
- "RequestMethod": "GET",
- "RequestBody": "",
- "RequestHeaders": {
"User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Internal.Subscriptions.SubscriptionClient/4.1.0"
]
},
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb\",\r\n \"subscriptionId\": \"c9cbd920-c00c-427c-852b-8aaf38badaeb\",\r\n \"displayName\": \"Azure SDK Powershell Test\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Internal_2014-09-01\",\r\n \"quotaId\": \"Internal_2014-09-01\",\r\n \"spendingLimit\": \"Off\"\r\n },\r\n \"authorizationSource\": \"RoleBased\"\r\n }\r\n ]\r\n}",
"ResponseHeaders": {
"Content-Length": [
- "274"
+ "345"
],
"Content-Type": [
"application/json; charset=utf-8"
@@ -265,91 +94,55 @@
"no-cache"
],
"x-ms-ratelimit-remaining-tenant-reads": [
- "14994"
+ "14999"
],
"x-ms-request-id": [
- "28fd3356-45dd-4b15-bcc2-d3de558eee61"
+ "9f87fdc8-57b9-4a89-affc-92720264c754"
],
"x-ms-correlation-request-id": [
- "28fd3356-45dd-4b15-bcc2-d3de558eee61"
+ "9f87fdc8-57b9-4a89-affc-92720264c754"
],
"x-ms-routing-request-id": [
- "WESTUS:20151029T035416Z:28fd3356-45dd-4b15-bcc2-d3de558eee61"
+ "WESTUS2:20180707T000921Z:9f87fdc8-57b9-4a89-affc-92720264c754"
],
"Strict-Transport-Security": [
"max-age=31536000; includeSubDomains"
],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
"Cache-Control": [
"no-cache"
],
"Date": [
- "Thu, 29 Oct 2015 03:54:15 GMT"
+ "Sat, 07 Jul 2018 00:09:21 GMT"
]
},
"StatusCode": 200
},
{
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
+ "RequestUri": "/subscriptions?api-version=2016-06-01",
+ "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNi0wNi0wMQ==",
"RequestMethod": "GET",
"RequestBody": "",
"RequestHeaders": {
- "User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
- ]
- },
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
- "ResponseHeaders": {
- "Content-Length": [
- "274"
- ],
- "Content-Type": [
- "application/json; charset=utf-8"
- ],
- "Expires": [
- "-1"
- ],
- "Pragma": [
- "no-cache"
+ "x-ms-client-request-id": [
+ "bb931c82-409c-4f8a-b2bf-66ff6f7ab47e"
],
- "x-ms-ratelimit-remaining-tenant-reads": [
- "14993"
+ "accept-language": [
+ "en-US"
],
- "x-ms-request-id": [
- "5da6edf9-c2a4-4154-9395-f4115bbc5c1a"
- ],
- "x-ms-correlation-request-id": [
- "5da6edf9-c2a4-4154-9395-f4115bbc5c1a"
- ],
- "x-ms-routing-request-id": [
- "WESTUS:20151029T035416Z:5da6edf9-c2a4-4154-9395-f4115bbc5c1a"
- ],
- "Strict-Transport-Security": [
- "max-age=31536000; includeSubDomains"
- ],
- "Cache-Control": [
- "no-cache"
- ],
- "Date": [
- "Thu, 29 Oct 2015 03:54:15 GMT"
- ]
- },
- "StatusCode": 200
- },
- {
- "RequestUri": "/subscriptions?api-version=2014-04-01-preview",
- "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3",
- "RequestMethod": "GET",
- "RequestBody": "",
- "RequestHeaders": {
"User-Agent": [
- "Microsoft.Azure.Subscriptions.SubscriptionClient/2.0.0.0"
+ "FxVersion/4.7.3110.0",
+ "OSName/Windows10Enterprise",
+ "OSVersion/6.3.17134",
+ "Microsoft.Azure.Internal.Subscriptions.SubscriptionClient/4.1.0"
]
},
- "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"subscriptionId\": \"3ca49042-782a-4cc9-89b5-ee1b487fe115\",\r\n \"displayName\": \"AzSdkCore1\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Public_2014-09-01\",\r\n \"quotaId\": \"PayAsYouGo_2014-09-01\"\r\n }\r\n }\r\n ]\r\n}",
+ "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/c9cbd920-c00c-427c-852b-8aaf38badaeb\",\r\n \"subscriptionId\": \"c9cbd920-c00c-427c-852b-8aaf38badaeb\",\r\n \"displayName\": \"Azure SDK Powershell Test\",\r\n \"state\": \"Enabled\",\r\n \"subscriptionPolicies\": {\r\n \"locationPlacementId\": \"Internal_2014-09-01\",\r\n \"quotaId\": \"Internal_2014-09-01\",\r\n \"spendingLimit\": \"Off\"\r\n },\r\n \"authorizationSource\": \"RoleBased\"\r\n }\r\n ]\r\n}",
"ResponseHeaders": {
"Content-Length": [
- "274"
+ "345"
],
"Content-Type": [
"application/json; charset=utf-8"
@@ -361,25 +154,28 @@
"no-cache"
],
"x-ms-ratelimit-remaining-tenant-reads": [
- "14992"
+ "14997"
],
"x-ms-request-id": [
- "508723cd-8d8a-4a6b-90d7-542ed3f8d43a"
+ "7200daa7-084a-474d-9b4a-54b69219153e"
],
"x-ms-correlation-request-id": [
- "508723cd-8d8a-4a6b-90d7-542ed3f8d43a"
+ "7200daa7-084a-474d-9b4a-54b69219153e"
],
"x-ms-routing-request-id": [
- "WESTUS:20151029T035416Z:508723cd-8d8a-4a6b-90d7-542ed3f8d43a"
+ "WESTUS2:20180707T000936Z:7200daa7-084a-474d-9b4a-54b69219153e"
],
"Strict-Transport-Security": [
"max-age=31536000; includeSubDomains"
],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
"Cache-Control": [
"no-cache"
],
"Date": [
- "Thu, 29 Oct 2015 03:54:15 GMT"
+ "Sat, 07 Jul 2018 00:09:36 GMT"
]
},
"StatusCode": 200
@@ -387,6 +183,6 @@
],
"Names": {},
"Variables": {
- "SubscriptionId": "3ca49042-782a-4cc9-89b5-ee1b487fe115"
+ "SubscriptionId": "c9cbd920-c00c-427c-852b-8aaf38badaeb"
}
}
\ No newline at end of file
diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/SubscriptionCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/SubscriptionCmdletTests.cs
index ee07e23aa562..e5dbd55cd0f2 100644
--- a/src/ResourceManager/Profile/Commands.Profile.Test/SubscriptionCmdletTests.cs
+++ b/src/ResourceManager/Profile/Commands.Profile.Test/SubscriptionCmdletTests.cs
@@ -12,54 +12,46 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.Commands.ResourceManager.Common;
-using Microsoft.Azure.Commands.Resources.Test.ScenarioTests;
-using Microsoft.Azure.Commands.ScenarioTest;
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
+using Microsoft.Azure.Commands.TestFx;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Profile.Test
{
- public class SubscriptionCmdletTests
+ public class SubscriptionCmdletTests : TestRunnerBase
{
- private XunitTracingInterceptor xunitLogger;
-
- public SubscriptionCmdletTests(ITestOutputHelper output)
+ public SubscriptionCmdletTests(ITestOutputHelper output)
+ : base(output)
{
- TestExecutionHelpers.SetUpSessionAndProfile();
- ResourceManagerProfileProvider.InitializeResourceManagerProfile(true);
-
- xunitLogger = new XunitTracingInterceptor(output);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void AllParameterSetsSucceed()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-GetSubscriptionsEndToEnd");
+ TestRunner.RunTestScript("Test-GetSubscriptionsEndToEnd");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void SetAzureRmContextWorks()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-SetAzureRmContextEndToEnd");
+ TestRunner.RunTestScript("Test-SetAzureRmContextEndToEnd");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void PipingWithRmContextWorks()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-PipingWithContext");
+ TestRunner.RunTestScript("Test-PipingWithContext");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void SetAzureRmContextWithoutSubscription()
{
- ProfileController.NewInstance.RunPsTest(xunitLogger, "72f988bf-86f1-41af-91ab-2d7cd011db47", "Test-SetAzureRmContextWithoutSubscription");
+ TestRunner.RunTestScript("Test-SetAzureRmContextWithoutSubscription");
}
}
}
diff --git a/src/ResourceManager/Profile/Profile.sln b/src/ResourceManager/Profile/Profile.sln
index dec18c160e5d..0171e6ad819a 100644
--- a/src/ResourceManager/Profile/Profile.sln
+++ b/src/ResourceManager/Profile/Profile.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27428.2037
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{95C16AED-FD57-42A0-86C3-2CF4300A4817}"
EndProject
@@ -54,6 +54,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.CustomAttri
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Aks", "..\..\Common\Commands.Common.Aks\Commands.Common.Aks.csproj", "{87BA5687-5563-4491-8846-77D98D0605D3}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.TestFx", "..\Common\Commands.TestFx\Commands.TestFx.csproj", "{8C625DE3-0067-454A-AF2C-EFD672EEB31A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -160,6 +162,10 @@ Global
{87BA5687-5563-4491-8846-77D98D0605D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87BA5687-5563-4491-8846-77D98D0605D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87BA5687-5563-4491-8846-77D98D0605D3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -172,6 +178,7 @@ Global
{C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
{8A4E00AA-5F65-4A95-B9B0-FEC06486555E} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
{696C6B43-B5E0-4775-B493-3A971D0C38C8} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AA51E4F8-AA75-429D-9626-12C7B4305D72}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/App.config b/src/ResourceManager/Resources/Commands.Resources.Test/App.config
new file mode 100644
index 000000000000..d9f0a363bb60
--- /dev/null
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/App.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.Netcore.csproj b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.Netcore.csproj
index 0526a2f3eb40..8ed509d33a50 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.Netcore.csproj
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.Netcore.csproj
@@ -36,6 +36,7 @@
+
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
index b70cd3971047..9e62b4924c2d 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
@@ -82,7 +82,8 @@
..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.6179.26854-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll
- ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.7-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll
+ False
+ ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.8.1\lib\net452\Microsoft.Azure.Test.HttpRecorder.dll
True
@@ -93,12 +94,19 @@
..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll
True
+
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.11\lib\net452\Microsoft.Rest.ClientRuntime.dll
+ True
+
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.2.9-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
+ False
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.0\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
True
-
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.5.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
+
+ False
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.7.2\lib\net452\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
+ True
False
@@ -122,8 +130,10 @@
False
..\..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll
-
- ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll
+
+ False
+ ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
+ True
@@ -186,6 +196,7 @@
+
@@ -225,6 +236,10 @@
{3436a126-edc9-4060-8952-9a1be34cdd95}
Commands.ScenarioTests.ResourceManager.Common
+
+ {8c625de3-0067-454a-af2c-efd672eeb31a}
+ Commands.TestFx
+
{8058d403-06e3-4bed-8924-d166ce303961}
Commands.Resources.Rest
@@ -235,6 +250,7 @@
+
Always
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
index ad35a7fcf67e..14ab816569b1 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
@@ -18,17 +18,16 @@
using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ActiveDirectoryTests : RMTestBase
+ public class ActiveDirectoryTests: ResourceTestRunner
{
XunitTracingInterceptor interceptor { get; set; }
- public ActiveDirectoryTests(ITestOutputHelper output)
+ public ActiveDirectoryTests(ITestOutputHelper output) : base(output)
{
interceptor = new XunitTracingInterceptor(output);
XunitTracingInterceptor.AddToContext(interceptor);
@@ -88,7 +87,8 @@ public void TestGetADGroupWithSearchString()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADGroupWithBadSearchString()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADGroupWithBadSearchString");
+ //ResourcesController.NewInstance.RunPsTest("Test-GetADGroupWithBadSearchString");
+ TestRunner.RunTestScript("Test-GetADGroupWithBadSearchString");
}
[Fact]
@@ -145,7 +145,7 @@ public void TestGetADGroupSecurityEnabled()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADGroupWithBadObjectId()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADGroupWithBadObjectId");
+ TestRunner.RunTestScript("Test-GetADGroupWithBadObjectId");
}
[Fact]
@@ -214,7 +214,7 @@ public void TestGetADGroupMemberWithGroupObjectId()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADGroupMemberWithBadGroupObjectId()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADGroupMemberWithBadGroupObjectId");
+ TestRunner.RunTestScript("Test-GetADGroupMemberWithBadGroupObjectId");
}
[Fact]
@@ -299,7 +299,7 @@ public void TestGetADServicePrincipalWithObjectId()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADServicePrincipalWithBadObjectId()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADServicePrincipalWithBadObjectId");
+ TestRunner.RunTestScript("Test-GetADServicePrincipalWithBadObjectId");
}
[Fact]
@@ -359,7 +359,7 @@ public void TestGetADServicePrincipalWithSPN()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADServicePrincipalWithBadSPN()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADServicePrincipalWithBadSPN");
+ TestRunner.RunTestScript("Test-GetADServicePrincipalWithBadSPN");
}
[Fact]
@@ -394,7 +394,7 @@ public void TestGetADServicePrincipalWithSearchString()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADServicePrincipalWithBadSearchString()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADServicePrincipalWithBadSearchString");
+ TestRunner.RunTestScript("Test-GetADServicePrincipalWithBadSearchString");
}
[Fact]
@@ -476,7 +476,7 @@ public void TestGetADUserWithMail()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADUserWithBadObjectId()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADUserWithBadObjectId");
+ TestRunner.RunTestScript("Test-GetADUserWithBadObjectId");
}
[Fact]
@@ -533,14 +533,14 @@ public void TestGetADUserWithUPN()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADUserWithFPOUPN()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADUserWithFPOUPN");
+ TestRunner.RunTestScript("Test-GetADUserWithFPOUPN");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADUserWithBadUPN()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADUserWithBadUPN");
+ TestRunner.RunTestScript("Test-GetADUserWithBadUPN");
}
[Fact]
@@ -572,49 +572,49 @@ public void TestGetADUserWithSearchString()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADUserWithBadSearchString()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-GetADUserWithBadSearchString");
+ TestRunner.RunTestScript("Test-GetADUserWithBadSearchString");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewADApplication()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-NewADApplication");
+ TestRunner.RunTestScript("Test-NewADApplication");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewADServicePrincipalWithoutApp()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-NewADServicePrincipalWithoutApp");
+ TestRunner.RunTestScript("Test-NewADServicePrincipalWithoutApp");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewADServicePrincipalWithReaderRole()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-NewADServicePrincipalWithReaderRole");
+ TestRunner.RunTestScript("Test-NewADServicePrincipalWithReaderRole");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewADServicePrincipalWithCustomScope()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-NewADServicePrincipalWithCustomScope");
+ TestRunner.RunTestScript("Test-NewADServicePrincipalWithCustomScope");
}
[Fact(Skip = "Not working in playback.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateDeleteAppPasswordCredentials()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-CreateDeleteAppPasswordCredentials");
+ TestRunner.RunTestScript("Test-CreateDeleteAppPasswordCredentials");
}
[Fact(Skip = "Not working in playback.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateDeleteSpPasswordCredentials()
{
- ResourcesController.NewInstance.RunPsTest(interceptor, "Test-CreateDeleteSpPasswordCredentials");
+ TestRunner.RunTestScript("Test-CreateDeleteSpPasswordCredentials");
}
[Fact]
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/DeploymentTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/DeploymentTests.cs
index 12a1e04eb3a5..cb8708e832ee 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/DeploymentTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/DeploymentTests.cs
@@ -12,28 +12,23 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class DeploymentTests
+ public class DeploymentTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public DeploymentTests(Xunit.Abstractions.ITestOutputHelper output)
+ public DeploymentTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact(Skip = "Need to implement storage client mock.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestValidateDeployment()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ValidateDeployment");
+ TestRunner.RunTestScript("Test-ValidateDeployment");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -41,7 +36,7 @@ public void TestValidateDeployment()
[Trait("Re-record", "ClientRuntime changes")]
public void TestNewDeploymentFromTemplateFile()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentFromTemplateFile");
+ TestRunner.RunTestScript("Test-NewDeploymentFromTemplateFile");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -49,7 +44,7 @@ public void TestNewDeploymentFromTemplateFile()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNestedDeploymentFromTemplateFile()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NestedDeploymentFromTemplateFile");
+ TestRunner.RunTestScript("Test-NestedDeploymentFromTemplateFile");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -57,7 +52,7 @@ public void TestNestedDeploymentFromTemplateFile()
[Trait("Re-record", "ClientRuntime changes")]
public void TestCrossResourceGroupDeploymentFromTemplateFile()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-CrossResourceGroupDeploymentFromTemplateFile");
+ TestRunner.RunTestScript("Test-CrossResourceGroupDeploymentFromTemplateFile");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -65,21 +60,21 @@ public void TestCrossResourceGroupDeploymentFromTemplateFile()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSaveDeploymentTemplateFile()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SaveDeploymentTemplateFile");
+ TestRunner.RunTestScript("Test-SaveDeploymentTemplateFile");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNestedErrorsDisplayed()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NestedErrorsDisplayed");
+ TestRunner.RunTestScript("Test-NestedErrorsDisplayed");
}
[Fact(Skip = "Fix acquisition of TenantId in KeyVault Test.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewDeploymentWithKeyVaultReference()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithKeyVaultReference");
+ TestRunner.RunTestScript("Test-NewDeploymentWithKeyVaultReference");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -87,7 +82,7 @@ public void TestNewDeploymentWithKeyVaultReference()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewDeploymentWithComplexPramaters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithComplexPramaters");
+ TestRunner.RunTestScript("Test-NewDeploymentWithComplexPramaters");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -95,7 +90,7 @@ public void TestNewDeploymentWithComplexPramaters()
[Trait("Re-record", "ClientRuntime changes")]
public void TestNewDeploymentWithParameterObject()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithParameterObject");
+ TestRunner.RunTestScript("Test-NewDeploymentWithParameterObject");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -103,21 +98,21 @@ public void TestNewDeploymentWithParameterObject()
[Trait("Re-record", "ClientRuntime changes")]
public void TestNewDeploymentWithDynamicParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithDynamicParameters");
+ TestRunner.RunTestScript("Test-NewDeploymentWithDynamicParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewDeploymentWithInvalidParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithInvalidParameters");
+ TestRunner.RunTestScript("Test-NewDeploymentWithInvalidParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewDeploymentWithKeyVaultReferenceInParameterObject()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentWithKeyVaultReferenceInParameterObject");
+ TestRunner.RunTestScript("Test-NewDeploymentWithKeyVaultReferenceInParameterObject");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/LocationTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/LocationTests.cs
index a972bb643614..e2451c9df608 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/LocationTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/LocationTests.cs
@@ -12,29 +12,23 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
-
- public class LocationTests
+ public class LocationTests: ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public LocationTests(ITestOutputHelper output)
+ public LocationTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureLocation()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureLocation");
+ TestRunner.RunTestScript("Test-AzureLocation");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationDefinitionTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationDefinitionTests.cs
index 374e9cd50dc1..a8c916a40875 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationDefinitionTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationDefinitionTests.cs
@@ -13,29 +13,23 @@
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ManagedApplicationDefinitionTests : RMTestBase
+ public class ManagedApplicationDefinitionTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ManagedApplicationDefinitionTests(ITestOutputHelper output)
+ public ManagedApplicationDefinitionTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManagedApplicationDefinitionCRUD()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ManagedApplicationDefinitionCRUD");
+ TestRunner.RunTestScript("Test-ManagedApplicationDefinitionCRUD");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationTests.cs
index 77303202274c..2bda13b459c3 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagedApplicationTests.cs
@@ -13,29 +13,23 @@
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ManagedApplicationTests : RMTestBase
+ public class ManagedApplicationTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ManagedApplicationTests(ITestOutputHelper output)
+ public ManagedApplicationTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManagedApplicationCRUD()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ManagedApplicationCRUD");
+ TestRunner.RunTestScript("Test-ManagedApplicationCRUD");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagementGroupsTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagementGroupsTests.cs
index 55d636847c32..d2571c85de4e 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagementGroupsTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ManagementGroupsTests.cs
@@ -12,104 +12,99 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Xunit;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ManagementGroupsTests
+ public class ManagementGroupsTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ManagementGroupsTests(Xunit.Abstractions.ITestOutputHelper output)
+ public ManagementGroupsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetManagementGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetManagementGroup");
+ TestRunner.RunTestScript("Test-GetManagementGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetManagementGroupWithExpand()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetManagementGroupWithExpand");
+ TestRunner.RunTestScript("Test-GetManagementGroupWithExpand");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetManagementGroupWithExpandAndRecurse()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetManagementGroupWithExpandAndRecurse");
+ TestRunner.RunTestScript("Test-GetManagementGroupWithExpandAndRecurse");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewManagementGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewManagementGroup");
+ TestRunner.RunTestScript("Test-NewManagementGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewManagementGroupWithDisplayName()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewManagementGroupWithDisplayName");
+ TestRunner.RunTestScript("Test-NewManagementGroupWithDisplayName");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewManagementGroupWithParentId()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewManagementGroupWithParentId");
+ TestRunner.RunTestScript("Test-NewManagementGroupWithParentId");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewManagementGroupWithDisplayNameAndParentId()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewManagementGroupWithDisplayNameAndParentId");
+ TestRunner.RunTestScript("Test-NewManagementGroupWithDisplayNameAndParentId");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestUpdateManagementGroupWithDisplayName()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-UpdateManagementGroupWithDisplayName");
+ TestRunner.RunTestScript("Test-UpdateManagementGroupWithDisplayName");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestUpdateManagementGroupWithParentId()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-UpdateManagementGroupWithParentId");
+ TestRunner.RunTestScript("Test-UpdateManagementGroupWithParentId");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestUpdateManagementGroupWithDisplayNameAndParentId()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-UpdateManagementGroupWithDisplayNameAndParentId");
+ TestRunner.RunTestScript("Test-UpdateManagementGroupWithDisplayNameAndParentId");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveManagementGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemoveManagementGroup");
+ TestRunner.RunTestScript("Test-RemoveManagementGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewRemoveManagementGroupSubscription()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewRemoveManagementGroupSubscription");
+ TestRunner.RunTestScript("Test-NewRemoveManagementGroupSubscription");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/MoveResourceTest.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/MoveResourceTest.cs
index 9b5e337dc45a..3f21411bcb5f 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/MoveResourceTest.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/MoveResourceTest.cs
@@ -14,25 +14,20 @@
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- using ServiceManagemenet.Common.Models;
using WindowsAzure.Commands.ScenarioTest;
using Xunit;
using Xunit.Abstractions;
- public class MoveResourceTest
+ public class MoveResourceTest : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public MoveResourceTest(ITestOutputHelper output)
+ public MoveResourceTest(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact(Skip = "Need to re-record test")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestMoveAzureResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-MoveAzureResource");
+ TestRunner.RunTestScript("Test-MoveAzureResource");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.cs
index ac78b92684c5..e001b578c91d 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.cs
@@ -13,183 +13,177 @@
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class PolicyTests : RMTestBase
+ public class PolicyTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public PolicyTests(ITestOutputHelper output)
+ public PolicyTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyDefinitionCRUD()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyDefinitionCRUD");
+ TestRunner.RunTestScript("Test-PolicyDefinitionCRUD");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyDefinitionCRUDAtManagementGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyDefinitionCRUDAtManagementGroup");
+ TestRunner.RunTestScript("Test-PolicyDefinitionCRUDAtManagementGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyDefinitionCRUDAtSubscription()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyDefinitionCRUDAtSubscription");
+ TestRunner.RunTestScript("Test-PolicyDefinitionCRUDAtSubscription");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyAssignmentCRUD()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyAssignmentCRUD");
+ TestRunner.RunTestScript("Test-PolicyAssignmentCRUD");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyDefinitionWithParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyDefinitionWithParameters");
+ TestRunner.RunTestScript("Test-PolicyDefinitionWithParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicySetDefinitionWithParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicySetDefinitionWithParameters");
+ TestRunner.RunTestScript("Test-PolicySetDefinitionWithParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyAssignmentWithParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyAssignmentWithParameters");
+ TestRunner.RunTestScript("Test-PolicyAssignmentWithParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicySetDefinitionCRUD()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicySetDefinitionCRUD");
+ TestRunner.RunTestScript("Test-PolicySetDefinitionCRUD");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicySetDefinitionCRUDAtManagementGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicySetDefinitionCRUDAtManagementGroup");
+ TestRunner.RunTestScript("Test-PolicySetDefinitionCRUDAtManagementGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicySetDefinitionCRUDAtSubscription()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicySetDefinitionCRUDAtSubscription");
+ TestRunner.RunTestScript("Test-PolicySetDefinitionCRUDAtSubscription");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPolicyDefinitionWithUri()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-PolicyDefinitionWithUri");
+ TestRunner.RunTestScript("Test-PolicyDefinitionWithUri");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetPolicyAssignmentParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetPolicyAssignmentParameters");
+ TestRunner.RunTestScript("Test-GetPolicyAssignmentParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewPolicyAssignmentParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewPolicyAssignmentParameters");
+ TestRunner.RunTestScript("Test-NewPolicyAssignmentParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemovePolicyAssignmentParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemovePolicyAssignmentParameters");
+ TestRunner.RunTestScript("Test-RemovePolicyAssignmentParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetPolicyAssignmentParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetPolicyAssignmentParameters");
+ TestRunner.RunTestScript("Test-SetPolicyAssignmentParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetPolicyDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetPolicyDefinitionParameters");
+ TestRunner.RunTestScript("Test-GetPolicyDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewPolicyDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewPolicyDefinitionParameters");
+ TestRunner.RunTestScript("Test-NewPolicyDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemovePolicyDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemovePolicyDefinitionParameters");
+ TestRunner.RunTestScript("Test-RemovePolicyDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetPolicyDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetPolicyDefinitionParameters");
+ TestRunner.RunTestScript("Test-SetPolicyDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetPolicySetDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetPolicySetDefinitionParameters");
+ TestRunner.RunTestScript("Test-GetPolicySetDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewPolicySetDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewPolicySetDefinitionParameters");
+ TestRunner.RunTestScript("Test-NewPolicySetDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemovePolicySetDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemovePolicySetDefinitionParameters");
+ TestRunner.RunTestScript("Test-RemovePolicySetDefinitionParameters");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetPolicySetDefinitionParameters()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetPolicySetDefinitionParameters");
+ TestRunner.RunTestScript("Test-SetPolicySetDefinitionParameters");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderFeatureTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderFeatureTests.cs
index 817b4f703727..13d765057572 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderFeatureTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderFeatureTests.cs
@@ -15,24 +15,20 @@
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
using Microsoft.WindowsAzure.Commands.ScenarioTest;
- using ServiceManagemenet.Common.Models;
using Xunit;
using Xunit.Abstractions;
- public class ProviderFeatureTests
- {
- public XunitTracingInterceptor _logger;
- public ProviderFeatureTests(ITestOutputHelper output)
+ public class ProviderFeatureTests : ResourceTestRunner
+ {
+ public ProviderFeatureTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureProviderFeature()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureProviderFeature");
+ TestRunner.RunTestScript("Test-AzureProviderFeature");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderTests.cs
index e274f13f45dd..c92d6143afbf 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ProviderTests.cs
@@ -15,45 +15,41 @@
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
using Microsoft.WindowsAzure.Commands.ScenarioTest;
- using ServiceManagemenet.Common.Models;
using Xunit;
using Xunit.Abstractions;
- public class ProviderTests
- {
- public XunitTracingInterceptor _logger;
- public ProviderTests(ITestOutputHelper output)
+ public class ProviderTests : ResourceTestRunner
+ {
+ public ProviderTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureProvider()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureProvider");
+ TestRunner.RunTestScript("Test-AzureProvider");
}
[Fact(Skip = "ZoneMapping removed.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureProvider_WithZoneMappings()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureProvider-WithZoneMappings");
+ TestRunner.RunTestScript("Test-AzureProvider-WithZoneMappings");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureProviderOperation()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureProviderOperation");
+ TestRunner.RunTestScript("Test-AzureProviderOperation");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureProviderOperationDataActions()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureProviderOperationDataActions");
+ TestRunner.RunTestScript("Test-AzureProviderOperationDataActions");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceGroupTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceGroupTests.cs
index 4a4c4020982f..d9b81bbae39c 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceGroupTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceGroupTests.cs
@@ -12,99 +12,93 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ResourceGroupTests : RMTestBase
+ public class ResourceGroupTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ResourceGroupTests(ITestOutputHelper output)
+ public ResourceGroupTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreatesNewSimpleResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-CreatesNewSimpleResourceGroup");
+ TestRunner.RunTestScript("Test-CreatesNewSimpleResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestUpdatesExistingResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-UpdatesExistingResourceGroup");
+ TestRunner.RunTestScript("Test-UpdatesExistingResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreatesAndRemoveResourceGroupViaPiping()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-CreatesAndRemoveResourceGroupViaPiping");
+ TestRunner.RunTestScript("Test-CreatesAndRemoveResourceGroupViaPiping");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetNonExistingResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetNonExistingResourceGroup");
+ TestRunner.RunTestScript("Test-GetNonExistingResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewResourceGroupInNonExistingLocation()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewResourceGroupInNonExistingLocation");
+ TestRunner.RunTestScript("Test-NewResourceGroupInNonExistingLocation");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveNonExistingResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemoveNonExistingResourceGroup");
+ TestRunner.RunTestScript("Test-RemoveNonExistingResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestFindResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-FindResourceGroup");
+ TestRunner.RunTestScript("Test-FindResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestExportResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ExportResourceGroup");
+ TestRunner.RunTestScript("Test-ExportResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestResourceGroupWithPositionalParams()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ResourceGroupWithPositionalParams");
+ TestRunner.RunTestScript("Test-ResourceGroupWithPositionalParams");
}
[Fact(Skip = "TODO: Fix the broken test.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestAzureTagsEndToEnd()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-AzureTagsEndToEnd");
+ TestRunner.RunTestScript("Test-AzureTagsEndToEnd");
}
[Fact(Skip = "Depends on Bug 2040630")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewDeploymentAndProviderRegistration()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-NewDeploymentAndProviderRegistration");
+ TestRunner.RunTestScript("Test-NewDeploymentAndProviderRegistration");
}
[Fact(Skip = "Need service team to re-record test after changes to the ClientRuntime.")]
@@ -112,14 +106,14 @@ public void TestNewDeploymentAndProviderRegistration()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveDeployment()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemoveDeployment");
+ TestRunner.RunTestScript("Test-RemoveDeployment");
}
[Fact(Skip = "Doesn't add any value. Will improve negative tests in a future release")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetNonExistingResourceGroupWithDebugStream()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetNonExistingResourceGroupWithDebugStream");
+ TestRunner.RunTestScript("Test-GetNonExistingResourceGroupWithDebugStream");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceLockTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceLockTests.cs
index 4eb34b91a4e4..a8c84fdefc08 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceLockTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceLockTests.cs
@@ -13,36 +13,30 @@
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ResourceLockTests : RMTestBase
+ public class ResourceLockTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ResourceLockTests(ITestOutputHelper output)
+ public ResourceLockTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestResourceLockCRUDTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ResourceLockCRUD");
+ TestRunner.RunTestScript("Test-ResourceLockCRUD");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestResourceLockNonExisting()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ResourceLockNonExisting");
+ TestRunner.RunTestScript("Test-ResourceLockNonExisting");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTestRunner.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTestRunner.cs
new file mode 100644
index 000000000000..e7d80eca6e97
--- /dev/null
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTestRunner.cs
@@ -0,0 +1,148 @@
+// ----------------------------------------------------------------------------------
+//
+// 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components;
+using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions;
+using Microsoft.Azure.Commands.TestFx;
+using Microsoft.Azure.Test.HttpRecorder;
+using Microsoft.Rest;
+using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
+using Xunit.Abstractions;
+
+namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
+{
+ public class ResourceTestRunner
+ {
+ protected readonly ITestRunner TestRunner;
+
+ protected ResourceTestRunner(ITestOutputHelper output)
+ {
+ TestRunner = TestFx.TestManager.CreateInstance(output)
+ .WithNewPsScriptFilename($"{GetType().Name}.ps1")
+ .WithProjectSubfolderForTests("ScenarioTests")
+ .WithCommonPsScripts(new[]
+ {
+ @"Common.ps1",
+ })
+ .WithExtraRmModules(helper => new[]
+ {
+ helper.RMInsightsModule,
+ })
+ .WithBuildMatcher(
+ (ignoreResourcesClient, resourceProviders, userAgentsToIgnore) =>
+ new ResourcesRecordMatcher(ignoreResourcesClient, resourceProviders, userAgentsToIgnore))
+ .WithExtraUserAgentsToIgnore(new Dictionary
+ {
+ {"Microsoft.Azure.Management.ResourceManager.ResourceManagementClient", "2016-07-01"},
+ })
+ .Build();
+
+ var credentials = HttpMockServer.Mode == HttpRecorderMode.Record
+ ? new Func(() =>
+ {
+ var testEnvironment = TestEnvironmentFactory.GetTestEnvironment();
+ return new SubscriptionCloudCredentialsAdapter(
+ testEnvironment.TokenInfo[TokenAudience.Management],
+ testEnvironment.SubscriptionId);
+ }) ()
+ : new SubscriptionCloudCredentialsAdapter(
+ new TokenCredentials("foo"),
+ Guid.Empty.ToString());
+
+ HttpClientHelperFactory.Instance = new TestHttpClientHelperFactory(credentials);
+ }
+ }
+
+ #region TestHttpClientHelperFactory
+
+ internal class TestHttpClientHelperFactory : HttpClientHelperFactory
+ {
+ ///
+ /// The subscription cloud credentials.
+ ///
+ private readonly SubscriptionCloudCredentials credential;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ public TestHttpClientHelperFactory(SubscriptionCloudCredentials credentials)
+ {
+ credential = credentials;
+ }
+
+ ///
+ /// Creates new instances of the class.
+ ///
+ /// The credentials.
+ /// The headers.
+ public override HttpClientHelper CreateHttpClientHelper(SubscriptionCloudCredentials credentials, IEnumerable headerValues, Dictionary cmdletHeaderValues)
+ {
+ return new TestHttpClientHelperFactory.HttpClientHelperImpl(credentials: credential, headerValues: headerValues, cmdletHeaderValues: cmdletHeaderValues);
+ }
+
+ ///
+ /// An implementation of the abstract class.
+ ///
+ private class HttpClientHelperImpl : HttpClientHelper
+ {
+ ///
+ /// Initializes new instances of the class.
+ ///
+ /// The credentials.
+ /// The headers.
+ public HttpClientHelperImpl(SubscriptionCloudCredentials credentials, IEnumerable headerValues, Dictionary cmdletHeaderValues)
+ : base(credentials: credentials, headerValues: headerValues, cmdletHeaderValues: cmdletHeaderValues)
+ {
+ }
+
+ ///
+ /// Creates an
+ ///
+ /// The handlers that will be added to the top of the chain.
+ public override HttpClient CreateHttpClient(params DelegatingHandler[] primaryHandlers)
+ {
+ return base.CreateHttpClient(HttpMockServer.CreateInstance().AsArray().Concat(primaryHandlers).ToArray());
+ }
+ }
+ }
+
+ //https://gist.github.com/markcowl/4d907da7ce40f2e424e8d0625887b82e
+ internal class SubscriptionCloudCredentialsAdapter : SubscriptionCloudCredentials
+ {
+ private readonly ServiceClientCredentials _wrappedCreds;
+
+ public SubscriptionCloudCredentialsAdapter(ServiceClientCredentials credentials, string subscriptionId)
+ {
+ _wrappedCreds = credentials;
+ SubscriptionId = subscriptionId;
+ }
+
+ public override string SubscriptionId { get; }
+
+ public override Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ return _wrappedCreds.ProcessHttpRequestAsync(request, cancellationToken);
+ }
+ }
+
+ #endregion
+}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTests.cs
index bab782bd5c1d..1d553a42a6b7 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceTests.cs
@@ -12,170 +12,163 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class ResourceTests : RMTestBase
+ public class ResourceTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public ResourceTests(ITestOutputHelper output)
+ public ResourceTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreatesNewSimpleResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-CreatesNewSimpleResource");
+ TestRunner.RunTestScript("Test-CreatesNewSimpleResource");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreatesNewComplexResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-CreatesNewComplexResource");
+ TestRunner.RunTestScript("Test-CreatesNewComplexResource");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourcesViaPiping()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourcesViaPiping");
+ TestRunner.RunTestScript("Test-GetResourcesViaPiping");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourcesFromEmptyGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourcesFromEmptyGroup");
+ TestRunner.RunTestScript("Test-GetResourcesFromEmptyGroup");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourcesFromNonExisingGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourcesFromNonExisingGroup");
+ TestRunner.RunTestScript("Test-GetResourcesFromNonExisingGroup");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourcesForNonExisingType()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourcesForNonExisingType");
+ TestRunner.RunTestScript("Test-GetResourcesForNonExisingType");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourceForNonExisingResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourceForNonExisingResource");
+ TestRunner.RunTestScript("Test-GetResourceForNonExisingResource");
}
[Fact(Skip = "TODO: Re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourcesViaPipingFromAnotherResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourcesViaPipingFromAnotherResource");
+ TestRunner.RunTestScript("Test-GetResourcesViaPipingFromAnotherResource");
}
[Fact(Skip = "Successfully re-recorded, but still failing in playback")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestMoveAResourceTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-MoveAResource");
+ TestRunner.RunTestScript("Test-MoveAResource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestMoveResourceFailed()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-MoveResourceFailed");
+ TestRunner.RunTestScript("Test-MoveResourceFailed");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAResourceTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetAResource");
+ TestRunner.RunTestScript("Test-SetAResource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAResourceUsingPiping()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetAResourceUsingPiping");
+ TestRunner.RunTestScript("Test-SetAResourceUsingPiping");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAResourceWithPatchTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-SetAResourceWithPatch");
+ TestRunner.RunTestScript("Test-SetAResourceWithPatch");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestFindAResourceTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-FindAResource");
+ TestRunner.RunTestScript("Test-FindAResource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestFindAResourceByTag()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-FindAResource-ByTag");
+ TestRunner.RunTestScript("Test-FindAResource-ByTag");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourceWithExpandProperties()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourceExpandProperties");
+ TestRunner.RunTestScript("Test-GetResourceExpandProperties");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourceByIdAndProperties()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourceByIdAndProperties");
+ TestRunner.RunTestScript("Test-GetResourceByIdAndProperties");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetResourceByComponentsAndProperties()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-GetResourceByComponentsAndProperties");
+ TestRunner.RunTestScript("Test-GetResourceByComponentsAndProperties");
}
[Fact(Skip = "Zones are disabled for now.")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManageResourceWithZones()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-ManageResourceWithZones");
+ TestRunner.RunTestScript("Test-ManageResourceWithZones");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveAResourceTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemoveAResource");
+ TestRunner.RunTestScript("Test-RemoveAResource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveASetOfResourcesTest()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RemoveASetOfResources");
+ TestRunner.RunTestScript("Test-RemoveASetOfResources");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs
index 98c97bd0e0a5..ee771c3692a7 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs
@@ -57,7 +57,6 @@ public sealed class ResourcesController
public ManagementGroupsAPIClient ManagementGroupsApiClient { get; private set; }
-
public string UserDomain { get; private set; }
public static ResourcesController NewInstance => new ResourcesController();
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs
index 961106ac4831..98bf514cc648 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs
@@ -18,23 +18,22 @@
using Microsoft.Azure.Management.Authorization;
using Microsoft.Azure.Management.ResourceManager;
using Microsoft.Azure.Management.ResourceManager.Models;
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Microsoft.WindowsAzure.Commands.Utilities.Common;
using System.Linq;
using System.Reflection;
+using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class RoleAssignmentTests : RMTestBase
+ public class RoleAssignmentTests : ResourceTestRunner
{
public XunitTracingInterceptor _logger;
- public RoleAssignmentTests(ITestOutputHelper output)
+ public RoleAssignmentTests(ITestOutputHelper output) : base(output)
{
_logger = new XunitTracingInterceptor(output);
XunitTracingInterceptor.AddToContext(_logger);
@@ -44,14 +43,14 @@ public RoleAssignmentTests(ITestOutputHelper output)
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaClassicAdmins()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaClassicAdmins");
+ TestRunner.RunTestScript("Test-RaClassicAdmins");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaDeletedPrincipals()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaDeletedPrincipals");
+ TestRunner.RunTestScript("Test-RaDeletedPrincipals");
}
#if NETSTANDARD
@@ -62,108 +61,107 @@ public void RaDeletedPrincipals()
#endif
[Trait(Category.AcceptanceType, Category.Flaky)]
public void RaPropertiesValidation() {
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaPropertiesValidation");
+ TestRunner.RunTestScript("Test-RaPropertiesValidation");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaNegativeScenarios()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaNegativeScenarios");
+ TestRunner.RunTestScript("Test-RaNegativeScenarios");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaByScope()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaByScope");
+ TestRunner.RunTestScript("Test-RaByScope");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaDeleteByPSRoleAssignment()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaDeleteByPSRoleAssignment");
+ TestRunner.RunTestScript("Test-RaDeleteByPSRoleAssignment");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaByResourceGroup()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaByResourceGroup");
+ TestRunner.RunTestScript("Test-RaByResourceGroup");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaByResource()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaByResource");
+ TestRunner.RunTestScript("Test-RaByResource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaValidateInputParameters()
{
- var instance = ResourcesController.NewInstance;
- instance.RunPsTest(_logger, "Test-RaValidateInputParameters Get-AzureRmRoleAssignment");
- instance.RunPsTest(_logger, "Test-RaValidateInputParameters New-AzureRmRoleAssignment");
- instance.RunPsTest(_logger, "Test-RaValidateInputParameters Remove-AzureRmRoleAssignment");
+ TestRunner.RunTestScript("Test-RaValidateInputParameters Get-AzureRmRoleAssignment");
+ TestRunner.RunTestScript("Test-RaValidateInputParameters New-AzureRmRoleAssignment");
+ TestRunner.RunTestScript("Test-RaValidateInputParameters Remove-AzureRmRoleAssignment");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaByServicePrincipal()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaByServicePrincipal");
+ TestRunner.RunTestScript("Test-RaByServicePrincipal");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaById()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaById");
+ TestRunner.RunTestScript("Test-RaById");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaDeletionByScope()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaDeletionByScope");
+ TestRunner.RunTestScript("Test-RaDeletionByScope");
}
[Fact(Skip = "Need AD team to re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaDeletionByScopeAtRootScope()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaDeletionByScopeAtRootScope");
+ TestRunner.RunTestScript("Test-RaDeletionByScopeAtRootScope");
}
[Fact(Skip = "Need AD team to re-record")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaDelegation()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaDelegation");
+ TestRunner.RunTestScript("Test-RaDelegation");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaByUpn()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaByUpn");
+ TestRunner.RunTestScript("Test-RaByUpn");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaGetByScope()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaGetByScope");
+ TestRunner.RunTestScript("Test-RaGetByScope");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RaGetByUPNWithExpandPrincipalGroups()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaGetByUPNWithExpandPrincipalGroups");
+ TestRunner.RunTestScript("Test-RaGetByUPNWithExpandPrincipalGroups");
}
[Fact(Skip = "Fix the flaky test and token error and then re-record the test. Token from admin user is being used even when trying to use newly created user.")]
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleDefinitionTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleDefinitionTests.cs
index 4ba021c92774..d555532e87f9 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleDefinitionTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleDefinitionTests.cs
@@ -12,22 +12,16 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Resources.Test.ScenarioTests
{
- public class RoleDefinitionTests : RMTestBase
+ public class RoleDefinitionTests : ResourceTestRunner
{
- public XunitTracingInterceptor _logger;
-
- public RoleDefinitionTests(ITestOutputHelper output)
+ public RoleDefinitionTests(ITestOutputHelper output) : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
#if NETSTANDARD
@@ -39,7 +33,7 @@ public RoleDefinitionTests(ITestOutputHelper output)
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RoleDefinitionCreateTests()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RoleDefinitionCreateTests");
+ TestRunner.RunTestScript("Test-RoleDefinitionCreateTests");
}
#if NETSTANDARD
@@ -51,7 +45,7 @@ public void RoleDefinitionCreateTests()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RoleDefinitionDataActionsCreateTests()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RoleDefinitionDataActionsCreateTests");
+ TestRunner.RunTestScript("Test-RoleDefinitionDataActionsCreateTests");
}
#if NETSTANDARD
@@ -63,7 +57,7 @@ public void RoleDefinitionDataActionsCreateTests()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RdNegativeScenarios()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RdNegativeScenarios");
+ TestRunner.RunTestScript("Test-RdNegativeScenarios");
}
#if NETSTANDARD
@@ -75,7 +69,7 @@ public void RdNegativeScenarios()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RdPositiveScenarios()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDPositiveScenarios");
+ TestRunner.RunTestScript("Test-RDPositiveScenarios");
}
#if NETSTANDARD
@@ -87,7 +81,8 @@ public void RdPositiveScenarios()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDUpdate()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDUpdate");
+ //ResourcesController.NewInstance.RunPsTest("Test-RDUpdate");
+ TestRunner.RunTestScript("Test-RDUpdate");
}
#if NETSTANDARD
@@ -99,7 +94,7 @@ public void RDUpdate()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDCreateFromFile()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDCreateFromFile");
+ TestRunner.RunTestScript("Test-RDCreateFromFile");
}
#if NETSTANDARD
@@ -109,10 +104,10 @@ public void RDCreateFromFile()
[Fact]
#endif
[Trait(Category.AcceptanceType, Category.CheckIn)]
- public void RDFilter()
- {
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDFilter");
- }
+ public void RDFilter()
+ {
+ TestRunner.RunTestScript("Test-RDFilter");
+ }
#if NETSTANDARD
[Fact(Skip = "DisableTestParallelization disabled on .NET Core: Test uses RoleDefinitionNames")]
@@ -123,7 +118,7 @@ public void RDFilter()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDRemoveScenario()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDRemove");
+ TestRunner.RunTestScript("Test-RDRemove");
}
#if NETSTANDARD
@@ -135,7 +130,7 @@ public void RDRemoveScenario()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDGetCustomRoles()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDGetCustomRoles");
+ TestRunner.RunTestScript("Test-RDGetCustomRoles");
}
#if NETSTANDARD
@@ -147,7 +142,7 @@ public void RDGetCustomRoles()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDDataActionsNegativeTestCases()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDDataActionsNegativeTestCases");
+ TestRunner.RunTestScript("Test-RDDataActionsNegativeTestCases");
}
#if NETSTANDARD
@@ -159,18 +154,17 @@ public void RDDataActionsNegativeTestCases()
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RDGetScenario()
{
- ResourcesController.NewInstance.RunPsTest(_logger, "Test-RDGet");
+ TestRunner.RunTestScript("Test-RDGet");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void RdValidateInputParameters()
{
- var instance = ResourcesController.NewInstance;
- instance.RunPsTest(_logger, "Test-RdValidateInputParameters Get-AzureRmRoleDefinition");
- instance.RunPsTest(_logger, "Test-RdValidateInputParameters Remove-AzureRmRoleDefinition");
- instance.RunPsTest(_logger, "Test-RdValidateInputParameters2 New-AzureRmRoleDefinition");
- instance.RunPsTest(_logger, "Test-RdValidateInputParameters2 Set-AzureRmRoleDefinition");
+ TestRunner.RunTestScript("Test-RdValidateInputParameters Get-AzureRmRoleDefinition");
+ TestRunner.RunTestScript("Test-RdValidateInputParameters Remove-AzureRmRoleDefinition");
+ TestRunner.RunTestScript("Test-RdValidateInputParameters2 New-AzureRmRoleDefinition");
+ TestRunner.RunTestScript("Test-RdValidateInputParameters2 Set-AzureRmRoleDefinition");
}
}
}
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config
index c25414d5f40b..e45133af8340 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config
@@ -11,17 +11,18 @@
-
+
-
-
+
+
+
-
+
diff --git a/src/ResourceManager/Resources/Resources.sln b/src/ResourceManager/Resources/Resources.sln
index 0862016f1c93..57f052c5730f 100644
--- a/src/ResourceManager/Resources/Resources.sln
+++ b/src/ResourceManager/Resources/Resources.sln
@@ -33,6 +33,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Insights", "..\Ins
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication.ResourceManager", "..\Common\Commands.Common.Authentication.ResourceManager\Commands.Common.Authentication.ResourceManager.csproj", "{69C2EB6B-CD63-480A-89A0-C489706E9299}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.TestFx", "..\Common\Commands.TestFx\Commands.TestFx.csproj", "{8C625DE3-0067-454A-AF2C-EFD672EEB31A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -87,6 +89,10 @@ Global
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -96,6 +102,7 @@ Global
{3436A126-EDC9-4060-8952-9A1BE34CDD95} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
{CFF09E81-1E31-444E-B4D4-A21E946C29E2} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
{69C2EB6B-CD63-480A-89A0-C489706E9299} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A} = {95C16AED-FD57-42A0-86C3-2CF4300A4817}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2CCF981A-8BCD-46DB-954D-289E61E07EE7}
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/App.config b/src/ResourceManager/Storage/Commands.Management.Storage.Test/App.config
new file mode 100644
index 000000000000..d9f0a363bb60
--- /dev/null
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/App.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.Netcore.csproj b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.Netcore.csproj
index 3fc156946335..54c512df4341 100644
--- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.Netcore.csproj
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.Netcore.csproj
@@ -33,6 +33,7 @@
+
@@ -45,7 +46,7 @@
-
+
PreserveNewest
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj
index e70a94e9116a..2cf27c4d6480 100644
--- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj
@@ -61,9 +61,8 @@
..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.6179.26854-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll
-
- ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.7-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll
- True
+
+ ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.8.1\lib\net452\Microsoft.Azure.Test.HttpRecorder.dll
..\..\..\packages\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll
@@ -81,12 +80,10 @@
..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.2.9-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
- True
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.0\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll
-
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.5.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
- True
+
+ ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.7.2\lib\net452\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll
..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll
@@ -100,9 +97,8 @@
..\..\..\packages\WindowsAzure.Storage.8.1.1\lib\net45\Microsoft.WindowsAzure.Storage.dll
-
- False
- ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll
+
+ ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
@@ -138,6 +134,7 @@
+
@@ -157,12 +154,21 @@
{3436a126-edc9-4060-8952-9a1be34cdd95}
Commands.ScenarioTests.ResourceManager.Common
+
+ {8c625de3-0067-454a-af2c-efd672eeb31a}
+ Commands.TestFx
+
+
+ {142d7b0b-388a-4ceb-a228-7f6d423c5c2e}
+ Commands.Profile
+
{a50ab133-5c04-4a17-9054-f8343683ec23}
Commands.Management.Storage
+
Designer
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/ScenarioTests/StorageAccountTests.cs b/src/ResourceManager/Storage/Commands.Management.Storage.Test/ScenarioTests/StorageAccountTests.cs
index 87f6340b52e7..b340ba05b19a 100644
--- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/ScenarioTests/StorageAccountTests.cs
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/ScenarioTests/StorageAccountTests.cs
@@ -12,114 +12,107 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
-
-using Microsoft.Azure.ServiceManagemenet.Common.Models;
+using Microsoft.Azure.Commands.TestFx;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
-using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests
{
- public class StorageAccountTests : RMTestBase
+ public class StorageAccountTests : StorageTestRunner
{
- public XunitTracingInterceptor _logger;
-
public StorageAccountTests(ITestOutputHelper output)
+ : base(output)
{
- _logger = new XunitTracingInterceptor(output);
- XunitTracingInterceptor.AddToContext(_logger);
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
- public void TestStorageAccount()
- {
- TestController.NewInstance.RunPsTest(_logger, "Test-StorageAccount");
- }
+ public void TestStorageAccount() =>
+ TestRunner.RunTestScript("Test-StorageAccount");
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewAzureStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-NewAzureStorageAccount");
+ TestRunner.RunTestScript("Test-NewAzureStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetAzureStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-GetAzureStorageAccount");
+ TestRunner.RunTestScript("Test-GetAzureStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAzureStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-SetAzureStorageAccount");
+ TestRunner.RunTestScript("Test-SetAzureStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRemoveAzureStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-RemoveAzureStorageAccount");
+ TestRunner.RunTestScript("Test-RemoveAzureStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetAzureStorageAccountKey()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-GetAzureStorageAccountKey");
+ TestRunner.RunTestScript("Test-GetAzureStorageAccountKey");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNewAzureStorageAccountKey()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-NewAzureStorageAccountKey");
+ TestRunner.RunTestScript("Test-NewAzureStorageAccountKey");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPipingGetAccountToGetKey()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-PipingGetAccountToGetKey");
+ TestRunner.RunTestScript("Test-PipingGetAccountToGetKey");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPipingSetStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-PipingToSetAzureRmCurrentStorageAccount");
+ TestRunner.RunTestScript("Test-PipingToSetAzureRmCurrentStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetCurrentStorageAccount()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-SetAzureRmCurrentStorageAccount");
+ TestRunner.RunTestScript("Test-SetAzureRmCurrentStorageAccount");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAzureRmStorageAccountKeySource()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-SetAzureRmStorageAccountKeySource");
+ TestRunner.RunTestScript("Test-SetAzureRmStorageAccountKeySource");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestNetworkRule()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-NetworkRule");
+ TestRunner.RunTestScript("Test-NetworkRule");
}
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetAzureStorageAccountStorageV2()
{
- TestController.NewInstance.RunPsTest(_logger, "Test-SetAzureStorageAccountStorageV2");
+ TestRunner.RunTestScript("Test-SetAzureStorageAccountStorageV2");
}
}
}
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/StorageTestRunner.cs b/src/ResourceManager/Storage/Commands.Management.Storage.Test/StorageTestRunner.cs
new file mode 100644
index 000000000000..305cc0d20f7d
--- /dev/null
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/StorageTestRunner.cs
@@ -0,0 +1,42 @@
+// ----------------------------------------------------------------------------------
+//
+// 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.TestFx;
+using Xunit.Abstractions;
+
+namespace Microsoft.Azure.Commands.Management.Storage.Test
+{
+ public class StorageTestRunner
+ {
+ protected readonly ITestRunner TestRunner;
+
+ protected StorageTestRunner(ITestOutputHelper output)
+ {
+ TestRunner = TestManager.CreateInstance(output)
+ .WithNewPsScriptFilename($"{GetType().Name}.ps1")
+ .WithProjectSubfolderForTests("ScenarioTests")
+ .WithCommonPsScripts(new[]
+ {
+ @"AzureRM.Resources.ps1",
+ @"Common.ps1",
+ })
+ .WithExtraRmModules(helper => new[]
+ {
+ helper.RMStorageDataPlaneModule,
+ helper.RMStorageModule,
+ })
+ .Build();
+ }
+ }
+}
diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config b/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config
index a48f1b72904b..457855dca461 100644
--- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config
+++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config
@@ -8,7 +8,7 @@
-
+
@@ -17,9 +17,9 @@
-
-
-
+
+
+
diff --git a/src/ResourceManager/Storage/Storage.sln b/src/ResourceManager/Storage/Storage.sln
index 04a7a6d552c7..dc1b5bf499ba 100644
--- a/src/ResourceManager/Storage/Storage.sln
+++ b/src/ResourceManager/Storage/Storage.sln
@@ -1,11 +1,15 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ResourceManager.Common", "..\Common\Commands.ResourceManager.Common\Commands.ResourceManager.Common.csproj", "{3819D8A7-C62C-4C47-8DDD-0332D9CE1252}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources", "..\Resources\Commands.Resources\Commands.Resources.csproj", "{E1F5201D-6067-430E-B303-4E367652991B}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Storage", "..\..\Common\Commands.Common.Storage\Commands.Common.Storage.csproj", "{65C3A86A-716D-4E7D-AB67-1DB00B3BF72D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Storage.Management", "..\..\Common\Commands.Common.Storage.Management\Commands.Common.Storage.Management.csproj", "{4CCA7339-15BF-4066-9FA1-6A23A58F2CEE}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Storage", "..\..\Storage\Commands.Storage\Commands.Storage.csproj", "{08CF7DA7-0392-4A19-B79B-E1FF67CDB81A}"
@@ -20,12 +24,32 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{13BB1C60
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.ResourceManager.Common", "..\Common\Commands.ScenarioTests.ResourceManager.Common\Commands.ScenarioTests.ResourceManager.Common.csproj", "{3436A126-EDC9-4060-8952-9A1BE34CDD95}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", "..\Resources\Commands.ResourceManager\Cmdlets\Commands.Resources.Rest.csproj", "{8058D403-06E3-4BED-8924-D166CE303961}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication.Abstractions", "..\..\Common\Commands.Common.Authentication.Abstractions\Commands.Common.Authentication.Abstractions.csproj", "{70527617-7598-4AEF-B5BD-DB9186B8184B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication.ResourceManager", "..\Common\Commands.Common.Authentication.ResourceManager\Commands.Common.Authentication.ResourceManager.csproj", "{69C2EB6B-CD63-480A-89A0-C489706E9299}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authorization", "..\..\Common\Commands.Common.Authorization\Commands.Common.Authorization.csproj", "{24508E26-154D-47F1-80EE-439BF0710996}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Graph.RBAC", "..\..\Common\Commands.Common.Graph.RBAC\Commands.Common.Graph.RBAC.csproj", "{269ACF73-0A34-42DC-AB9C-4B15931A489D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Network", "..\..\Common\Commands.Common.Network\Commands.Common.Network.csproj", "{1338F7AE-7111-4ED3-8916-2D0FECC876F4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Compute", "..\..\Common\Commands.Common.Compute\Commands.Common.Compute.csproj", "{F6D508D1-BE2D-475D-AA0F-DFB5C615CC9D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.KeyVault", "..\..\Common\Commands.Common.KeyVault\Commands.Common.KeyVault.csproj", "{836965C0-B198-4D01-B3D7-757DB62B49A0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.WebSites", "..\..\Common\Commands.Common.Websites\Commands.Common.WebSites.csproj", "{592B3E1B-49E3-4F3C-BF6B-E5D4133B1443}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Profile\Commands.Profile\Commands.Profile.csproj", "{142D7B0B-388A-4CEB-A228-7F6D423C5C2E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Aks", "..\..\Common\Commands.Common.Aks\Commands.Common.Aks.csproj", "{87BA5687-5563-4491-8846-77D98D0605D3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.TestFx", "..\Common\Commands.TestFx\Commands.TestFx.csproj", "{8C625DE3-0067-454A-AF2C-EFD672EEB31A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -36,10 +60,18 @@ Global
{3819D8A7-C62C-4C47-8DDD-0332D9CE1252}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3819D8A7-C62C-4C47-8DDD-0332D9CE1252}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3819D8A7-C62C-4C47-8DDD-0332D9CE1252}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E1F5201D-6067-430E-B303-4E367652991B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E1F5201D-6067-430E-B303-4E367652991B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1F5201D-6067-430E-B303-4E367652991B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E1F5201D-6067-430E-B303-4E367652991B}.Release|Any CPU.Build.0 = Release|Any CPU
{65C3A86A-716D-4E7D-AB67-1DB00B3BF72D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65C3A86A-716D-4E7D-AB67-1DB00B3BF72D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65C3A86A-716D-4E7D-AB67-1DB00B3BF72D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65C3A86A-716D-4E7D-AB67-1DB00B3BF72D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CCA7339-15BF-4066-9FA1-6A23A58F2CEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4CCA7339-15BF-4066-9FA1-6A23A58F2CEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CCA7339-15BF-4066-9FA1-6A23A58F2CEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4CCA7339-15BF-4066-9FA1-6A23A58F2CEE}.Release|Any CPU.Build.0 = Release|Any CPU
{5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -64,6 +96,10 @@ Global
{3436A126-EDC9-4060-8952-9A1BE34CDD95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3436A126-EDC9-4060-8952-9A1BE34CDD95}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3436A126-EDC9-4060-8952-9A1BE34CDD95}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8058D403-06E3-4BED-8924-D166CE303961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8058D403-06E3-4BED-8924-D166CE303961}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.Build.0 = Release|Any CPU
{D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -76,6 +112,42 @@ Global
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69C2EB6B-CD63-480A-89A0-C489706E9299}.Release|Any CPU.Build.0 = Release|Any CPU
+ {24508E26-154D-47F1-80EE-439BF0710996}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {24508E26-154D-47F1-80EE-439BF0710996}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {24508E26-154D-47F1-80EE-439BF0710996}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {24508E26-154D-47F1-80EE-439BF0710996}.Release|Any CPU.Build.0 = Release|Any CPU
+ {269ACF73-0A34-42DC-AB9C-4B15931A489D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {269ACF73-0A34-42DC-AB9C-4B15931A489D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {269ACF73-0A34-42DC-AB9C-4B15931A489D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {269ACF73-0A34-42DC-AB9C-4B15931A489D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1338F7AE-7111-4ED3-8916-2D0FECC876F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1338F7AE-7111-4ED3-8916-2D0FECC876F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1338F7AE-7111-4ED3-8916-2D0FECC876F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1338F7AE-7111-4ED3-8916-2D0FECC876F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F6D508D1-BE2D-475D-AA0F-DFB5C615CC9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F6D508D1-BE2D-475D-AA0F-DFB5C615CC9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F6D508D1-BE2D-475D-AA0F-DFB5C615CC9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F6D508D1-BE2D-475D-AA0F-DFB5C615CC9D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {836965C0-B198-4D01-B3D7-757DB62B49A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {836965C0-B198-4D01-B3D7-757DB62B49A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {836965C0-B198-4D01-B3D7-757DB62B49A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {836965C0-B198-4D01-B3D7-757DB62B49A0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {592B3E1B-49E3-4F3C-BF6B-E5D4133B1443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {592B3E1B-49E3-4F3C-BF6B-E5D4133B1443}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {592B3E1B-49E3-4F3C-BF6B-E5D4133B1443}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {592B3E1B-49E3-4F3C-BF6B-E5D4133B1443}.Release|Any CPU.Build.0 = Release|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87BA5687-5563-4491-8846-77D98D0605D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87BA5687-5563-4491-8846-77D98D0605D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87BA5687-5563-4491-8846-77D98D0605D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {87BA5687-5563-4491-8846-77D98D0605D3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -83,7 +155,7 @@ Global
GlobalSection(NestedProjects) = preSolution
{7D1D3B56-4EB4-4819-86FD-43330DED8EE7} = {13BB1C60-A70E-4780-ABEF-D5EE36754085}
{3436A126-EDC9-4060-8952-9A1BE34CDD95} = {13BB1C60-A70E-4780-ABEF-D5EE36754085}
- {69C2EB6B-CD63-480A-89A0-C489706E9299} = {13BB1C60-A70E-4780-ABEF-D5EE36754085}
+ {8C625DE3-0067-454A-AF2C-EFD672EEB31A} = {13BB1C60-A70E-4780-ABEF-D5EE36754085}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4C7FBF09-6EF8-4896-BCD6-7052C267D515}