diff --git a/setup/azurecmdfiles.wxi b/setup/azurecmdfiles.wxi index bb751da17f58..3bcc9e71e4e9 100644 --- a/setup/azurecmdfiles.wxi +++ b/setup/azurecmdfiles.wxi @@ -8,6 +8,9 @@ + + + @@ -17,9 +20,15 @@ + + + + + + @@ -29,6 +38,9 @@ + + + @@ -41,12 +53,6 @@ - - - - - - @@ -64,6 +70,9 @@ + + + @@ -73,9 +82,15 @@ + + + + + + @@ -100,6 +115,9 @@ + + + @@ -124,12 +142,6 @@ - - - - - - @@ -156,6 +168,9 @@ + + + @@ -165,9 +180,15 @@ + + + + + + @@ -183,6 +204,9 @@ + + + @@ -195,12 +219,6 @@ - - - - - - @@ -221,6 +239,9 @@ + + + @@ -230,9 +251,15 @@ + + + + + + @@ -266,12 +293,6 @@ - - - - - - @@ -289,6 +310,9 @@ + + + @@ -349,9 +373,15 @@ + + + + + + @@ -373,9 +403,6 @@ - - - @@ -406,12 +433,6 @@ - - - - - - @@ -432,15 +453,24 @@ + + + + + + + + + @@ -459,18 +489,15 @@ + + + - - - - - - @@ -500,6 +527,9 @@ + + + @@ -509,9 +539,15 @@ + + + + + + @@ -530,6 +566,9 @@ + + + @@ -548,12 +587,6 @@ - - - - - - @@ -580,6 +613,9 @@ + + + @@ -589,9 +625,15 @@ + + + + + + @@ -634,12 +676,6 @@ - - - - - - @@ -673,15 +709,24 @@ + + + + + + + + + @@ -691,6 +736,9 @@ + + + @@ -703,12 +751,6 @@ - - - - - - @@ -741,6 +783,9 @@ + + + @@ -786,9 +831,15 @@ + + + + + + @@ -804,6 +855,9 @@ + + + @@ -882,12 +936,6 @@ - - - - - - @@ -950,15 +998,27 @@ + + + + + + + + + + + + @@ -980,12 +1040,6 @@ - - - - - - @@ -1006,9 +1060,18 @@ + + + + + + + + + @@ -1030,6 +1093,9 @@ + + + @@ -1048,12 +1114,6 @@ - - - - - - @@ -1104,6 +1164,9 @@ + + + @@ -1149,9 +1212,15 @@ + + + + + + @@ -1167,6 +1236,9 @@ + + + @@ -1218,12 +1290,6 @@ - - - - - - @@ -1286,15 +1352,24 @@ + + + + + + + + + @@ -1310,6 +1385,9 @@ + + + @@ -1319,12 +1397,6 @@ - - - - - - @@ -1357,21 +1429,33 @@ + + + + + + + + + + + + @@ -1384,12 +1468,6 @@ - - - - - - @@ -1422,6 +1500,9 @@ + + + @@ -1461,9 +1542,15 @@ + + + + + + @@ -1536,12 +1623,6 @@ - - - - - - @@ -1898,6 +1979,9 @@ + + + @@ -1937,9 +2021,15 @@ + + + + + + @@ -1955,6 +2045,9 @@ + + + @@ -2027,12 +2120,6 @@ - - - - - - @@ -2095,9 +2182,18 @@ + + + + + + + + + @@ -2113,6 +2209,9 @@ + + + @@ -2140,12 +2239,6 @@ - - - - - - @@ -2178,9 +2271,18 @@ + + + + + + + + + @@ -2196,6 +2298,9 @@ + + + @@ -2214,12 +2319,6 @@ - - - - - - @@ -2252,28 +2351,33 @@ + + + + - - + + + @@ -2282,6 +2386,7 @@ + @@ -2290,8 +2395,6 @@ - - @@ -2300,31 +2403,36 @@ + + + + - - + + + @@ -2336,13 +2444,12 @@ - - + @@ -2363,7 +2470,9 @@ + + @@ -2371,7 +2480,6 @@ - @@ -2382,27 +2490,27 @@ - - + + + + - - @@ -2412,24 +2520,26 @@ + + + + - - @@ -2438,10 +2548,13 @@ + + + @@ -2456,8 +2569,6 @@ - - @@ -2467,18 +2578,20 @@ + + + + - - @@ -2489,6 +2602,7 @@ + @@ -2504,12 +2618,15 @@ + + + @@ -2536,8 +2653,6 @@ - - @@ -2558,9 +2673,13 @@ + + + + @@ -2568,15 +2687,16 @@ - - + + + @@ -2584,14 +2704,13 @@ + - - @@ -2608,6 +2727,7 @@ + @@ -2623,12 +2743,15 @@ + + + @@ -2646,8 +2769,6 @@ - - @@ -2668,19 +2789,21 @@ + + + + - - @@ -2691,17 +2814,19 @@ + + + + - - @@ -2712,6 +2837,7 @@ + @@ -2725,7 +2851,9 @@ + + @@ -2750,8 +2878,6 @@ - - @@ -2856,6 +2982,7 @@ + @@ -2869,12 +2996,15 @@ + + + @@ -2899,8 +3029,6 @@ - - @@ -2921,12 +3049,16 @@ + + + + @@ -2936,8 +3068,6 @@ - - @@ -2948,20 +3078,22 @@ + + + + - - diff --git a/src/AzurePowershell.sln b/src/AzurePowershell.sln index 8b680bdf26d1..b6bafadf97b1 100644 --- a/src/AzurePowershell.sln +++ b/src/AzurePowershell.sln @@ -155,8 +155,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.StreamAnalytics", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.StreamAnalytics.Test", "ResourceManager\StreamAnalytics\Commands.StreamAnalytics.Test\Commands.StreamAnalytics.Test.csproj", "{7E6683BE-ECFF-4709-89EB-1325E9E70512}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Extensions", "Common\Azure.Common.Extensions\Common.Extensions.csproj", "{B95C489C-8CB7-4DCF-8D5F-B9AEBDBBAF89}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -355,6 +353,10 @@ Global {9FFC40CC-A341-4D0C-A25D-DC6B78EF6C94}.Debug|Any CPU.Build.0 = Debug|Any CPU {9FFC40CC-A341-4D0C-A25D-DC6B78EF6C94}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FFC40CC-A341-4D0C-A25D-DC6B78EF6C94}.Release|Any CPU.Build.0 = Release|Any CPU + {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Release|Any CPU.Build.0 = Release|Any CPU {98B10548-DF97-4FB1-8D82-2A12945D4F21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {98B10548-DF97-4FB1-8D82-2A12945D4F21}.Debug|Any CPU.Build.0 = Debug|Any CPU {98B10548-DF97-4FB1-8D82-2A12945D4F21}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -363,10 +365,6 @@ Global {A415F75B-EB6A-49A6-934E-5BA71B83D6EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {A415F75B-EB6A-49A6-934E-5BA71B83D6EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {A415F75B-EB6A-49A6-934E-5BA71B83D6EB}.Release|Any CPU.Build.0 = Release|Any CPU - {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {080B0477-7E52-4455-90AB-23BD13D1B1CE}.Release|Any CPU.Build.0 = Release|Any CPU {F49A314A-A235-47D3-A654-1EC19ACA366C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F49A314A-A235-47D3-A654-1EC19ACA366C}.Debug|Any CPU.Build.0 = Debug|Any CPU {F49A314A-A235-47D3-A654-1EC19ACA366C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -375,10 +373,6 @@ Global {7E6683BE-ECFF-4709-89EB-1325E9E70512}.Debug|Any CPU.Build.0 = Debug|Any CPU {7E6683BE-ECFF-4709-89EB-1325E9E70512}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E6683BE-ECFF-4709-89EB-1325E9E70512}.Release|Any CPU.Build.0 = Release|Any CPU - {B95C489C-8CB7-4DCF-8D5F-B9AEBDBBAF89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B95C489C-8CB7-4DCF-8D5F-B9AEBDBBAF89}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B95C489C-8CB7-4DCF-8D5F-B9AEBDBBAF89}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B95C489C-8CB7-4DCF-8D5F-B9AEBDBBAF89}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -407,8 +401,8 @@ Global {4AE5705F-62CF-461D-B72E-DD9DCD9B3609} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {F4ABAD68-64A5-4B23-B09C-42559A7524DE} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {FDB897BD-FCB4-44A1-8D66-AC99F22EC737} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} - {A415F75B-EB6A-49A6-934E-5BA71B83D6EB} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {080B0477-7E52-4455-90AB-23BD13D1B1CE} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {A415F75B-EB6A-49A6-934E-5BA71B83D6EB} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {7E6683BE-ECFF-4709-89EB-1325E9E70512} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} EndGlobalSection EndGlobal diff --git a/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj b/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj index 8c32acd701c8..89eb2b979a81 100644 --- a/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj +++ b/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj @@ -48,6 +48,26 @@ false + + False + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + False + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -57,6 +77,13 @@ ..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -69,20 +96,16 @@ False ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + + False + ..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -131,10 +154,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/Common/Commands.Common.Storage/packages.config b/src/Common/Commands.Common.Storage/packages.config index 1b2aa2e6cb32..e4506f130cef 100644 --- a/src/Common/Commands.Common.Storage/packages.config +++ b/src/Common/Commands.Common.Storage/packages.config @@ -1,16 +1,21 @@  + + + + + + - - - + + diff --git a/src/Common/Commands.Common.Test/Commands.Common.Test.csproj b/src/Common/Commands.Common.Test/Commands.Common.Test.csproj index 052b5d184fa0..e03df699a4ab 100644 --- a/src/Common/Commands.Common.Test/Commands.Common.Test.csproj +++ b/src/Common/Commands.Common.Test/Commands.Common.Test.csproj @@ -48,14 +48,25 @@ false - + + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - True + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -87,28 +98,17 @@ ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -156,10 +156,6 @@ - - - - @@ -167,10 +163,12 @@ - - - + + + + + @@ -178,6 +176,8 @@ + + True @@ -187,10 +187,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/Common/Commands.Common.Test/Common/TestingTracingInterceptor.cs b/src/Common/Commands.Common.Test/Common/TestingTracingInterceptor.cs index a8ca9cace755..a928026e562d 100644 --- a/src/Common/Commands.Common.Test/Common/TestingTracingInterceptor.cs +++ b/src/Common/Commands.Common.Test/Common/TestingTracingInterceptor.cs @@ -17,8 +17,10 @@ using System.Collections.Generic; using System.Diagnostics; using System.Net.Http; -using Microsoft.WindowsAzure.Common; -using Microsoft.WindowsAzure.Common.Internals; +using Microsoft.Azure.Common; +using Microsoft.Azure.Common.Internals; +using Hyak.Common; +using Hyak.Common.Internals; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common { @@ -97,12 +99,12 @@ public static void AddToContext() { try { - CloudContext.Configuration.Tracing.RemoveTracingInterceptor(TestingTracingInterceptor.Singleton); + TracingAdapter.RemoveTracingInterceptor(TestingTracingInterceptor.Singleton); } catch { } - CloudContext.Configuration.Tracing.AddTracingInterceptor(TestingTracingInterceptor.Singleton); + TracingAdapter.AddTracingInterceptor(TestingTracingInterceptor.Singleton); } static TestingTracingInterceptor Singleton diff --git a/src/Common/Commands.Common.Test/Mocks/ClientMocks.cs b/src/Common/Commands.Common.Test/Mocks/ClientMocks.cs index 23adacee0364..8ccb064b633c 100644 --- a/src/Common/Commands.Common.Test/Mocks/ClientMocks.cs +++ b/src/Common/Commands.Common.Test/Mocks/ClientMocks.cs @@ -20,6 +20,8 @@ using System.Threading; using System.Threading.Tasks; using Moq; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.Common.Test/Mocks/MockCertificateAuthenticationFactory.cs b/src/Common/Commands.Common.Test/Mocks/MockCertificateAuthenticationFactory.cs index 792e281095a5..03b03e09fa52 100644 --- a/src/Common/Commands.Common.Test/Mocks/MockCertificateAuthenticationFactory.cs +++ b/src/Common/Commands.Common.Test/Mocks/MockCertificateAuthenticationFactory.cs @@ -12,11 +12,12 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure; +using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure.Common.Extensions.Authentication; +using Microsoft.Azure.Common.Extensions.Models; using System.Security; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Extensions.Models; -using Microsoft.Azure.Common.Extensions.Authentication; -using Microsoft.Azure.Common.Extensions; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.Common.Test/Mocks/MockClientFactory.cs b/src/Common/Commands.Common.Test/Mocks/MockClientFactory.cs index fca693ee7621..68b6858db97f 100644 --- a/src/Common/Commands.Common.Test/Mocks/MockClientFactory.cs +++ b/src/Common/Commands.Common.Test/Mocks/MockClientFactory.cs @@ -17,11 +17,12 @@ using System.Linq; using System.Net; using System.Net.Http; -using Microsoft.Azure.Utilities.HttpRecorder; -using Microsoft.WindowsAzure.Common; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.Azure.Common; using Microsoft.Azure.Common.Extensions.Factories; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.Common.Test/Mocks/MockTokenAuthenticationFactory.cs b/src/Common/Commands.Common.Test/Mocks/MockTokenAuthenticationFactory.cs index b5925680cf8d..a6d4523c4fe9 100644 --- a/src/Common/Commands.Common.Test/Mocks/MockTokenAuthenticationFactory.cs +++ b/src/Common/Commands.Common.Test/Mocks/MockTokenAuthenticationFactory.cs @@ -12,12 +12,12 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure; +using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure.Common.Extensions.Authentication; +using Microsoft.Azure.Common.Extensions.Models; using System; using System.Security; -using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Extensions.Models; -using Microsoft.Azure.Common.Extensions.Authentication; -using Microsoft.Azure.Common.Extensions; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.Common.Test/packages.config b/src/Common/Commands.Common.Test/packages.config index 8254c0cc0a28..37c24bf2f41f 100644 --- a/src/Common/Commands.Common.Test/packages.config +++ b/src/Common/Commands.Common.Test/packages.config @@ -1,7 +1,11 @@  - - + + + + + + @@ -10,12 +14,10 @@ - - - - - + + + diff --git a/src/Common/Commands.Common/Commands.Common.csproj b/src/Common/Commands.Common/Commands.Common.csproj index 1c07ac6e9cdb..3215eca634f9 100644 --- a/src/Common/Commands.Common/Commands.Common.csproj +++ b/src/Common/Commands.Common/Commands.Common.csproj @@ -50,9 +50,25 @@ true + + False + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + False + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll ..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -83,17 +99,9 @@ False ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - + False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -178,12 +186,6 @@ Designer - - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - - diff --git a/src/Common/Commands.Common/GeneralUtilities.cs b/src/Common/Commands.Common/GeneralUtilities.cs index 04098501bd36..776b11817439 100644 --- a/src/Common/Commands.Common/GeneralUtilities.cs +++ b/src/Common/Commands.Common/GeneralUtilities.cs @@ -12,10 +12,10 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Hyak.Common; using Microsoft.Azure.Common.Extensions; using Microsoft.Azure.Common.Extensions.Properties; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.WindowsAzure.Common.Internals; using System; using System.Collections.Generic; using System.Diagnostics; @@ -329,11 +329,11 @@ public static string GetLog(HttpRequestMessage request) public static string FormatString(string content) { - if (ParserHelper.IsXml(content)) + if (CloudException.IsXml(content)) { return XmlUtilities.TryFormatXml(content); } - else if (ParserHelper.IsJson(content)) + else if (CloudException.IsJson(content)) { return JsonUtilities.TryFormatJson(content); } diff --git a/src/Common/Commands.Common/RecordingTracingInterceptor.cs b/src/Common/Commands.Common/RecordingTracingInterceptor.cs index 6cd9ed9406eb..6fed19616660 100644 --- a/src/Common/Commands.Common/RecordingTracingInterceptor.cs +++ b/src/Common/Commands.Common/RecordingTracingInterceptor.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Hyak.Common; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; using System; @@ -21,7 +22,7 @@ namespace Microsoft.Azure.Common.Extensions.Models { - public class RecordingTracingInterceptor : ICloudTracingInterceptor + public class RecordingTracingInterceptor : Hyak.Common.ICloudTracingInterceptor { public RecordingTracingInterceptor() { @@ -80,14 +81,14 @@ public void Exit(string invocationId, object result) public static void AddToContext(RecordingTracingInterceptor interceptor) { RemoveFromContext(interceptor); - CloudContext.Configuration.Tracing.AddTracingInterceptor(interceptor); + TracingAdapter.AddTracingInterceptor(interceptor); } public static void RemoveFromContext(RecordingTracingInterceptor interceptor) { try { - CloudContext.Configuration.Tracing.RemoveTracingInterceptor(interceptor); + TracingAdapter.RemoveTracingInterceptor(interceptor); } catch { diff --git a/src/Common/Commands.Common/packages.config b/src/Common/Commands.Common/packages.config index 56b52b68db88..a2d042d901c1 100644 --- a/src/Common/Commands.Common/packages.config +++ b/src/Common/Commands.Common/packages.config @@ -1,7 +1,11 @@  + - + + + + @@ -10,9 +14,7 @@ - - - + \ No newline at end of file diff --git a/src/Common/Commands.Profile/Commands.Profile.csproj b/src/Common/Commands.Profile/Commands.Profile.csproj index c8dfd0f6e933..42fa311e25ad 100644 --- a/src/Common/Commands.Profile/Commands.Profile.csproj +++ b/src/Common/Commands.Profile/Commands.Profile.csproj @@ -47,6 +47,22 @@ false + + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + @@ -73,17 +89,8 @@ False ..\lib\Microsoft.Web.Deployment.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -143,10 +150,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/Common/Commands.Profile/packages.config b/src/Common/Commands.Profile/packages.config index c8c2784f5d51..bdde83a6dc79 100644 --- a/src/Common/Commands.Profile/packages.config +++ b/src/Common/Commands.Profile/packages.config @@ -1,12 +1,15 @@  + + + + + - - - + \ No newline at end of file diff --git a/src/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs b/src/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs index e2a688844803..12f15d9dd2c2 100644 --- a/src/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs +++ b/src/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs @@ -17,7 +17,7 @@ using System.Linq; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using Xunit; using Microsoft.Azure.Common.Extensions; diff --git a/src/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj b/src/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj index 3963ef572626..2e72218aa9cd 100644 --- a/src/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj +++ b/src/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj @@ -38,9 +38,27 @@ pdbonly - + + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -76,41 +94,25 @@ False ..\lib\Microsoft.Web.Deployment.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll - ..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.0.1-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll - True + ..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.4.0-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll False ..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll - - False - ..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll - False ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -472,10 +474,6 @@ {cd5aa507-f5ef-473d-855b-84b91a1abe54} Commands - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/Common/Commands.ScenarioTest/Common/ResourceManagerTestEnvironmentFactory.cs b/src/Common/Commands.ScenarioTest/Common/ResourceManagerTestEnvironmentFactory.cs index 84c82f3d3920..d3b793602f04 100644 --- a/src/Common/Commands.ScenarioTest/Common/ResourceManagerTestEnvironmentFactory.cs +++ b/src/Common/Commands.ScenarioTest/Common/ResourceManagerTestEnvironmentFactory.cs @@ -13,8 +13,8 @@ // limitations under the License. // +using Hyak.Common; using System; -using Microsoft.WindowsAzure.Common.Internals; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -57,7 +57,7 @@ protected override TestEnvironment GetTestEnvironmentFromContext() catch (ArgumentException exception) { // allow running gallery tests - Tracing.Information("Node.exe was not found on the system, please install the x86 version of node.exe to run tests, received exception {0}", exception); + TracingAdapter.Information("Node.exe was not found on the system, please install the x86 version of node.exe to run tests, received exception {0}", exception); } string galleryUri = Environment.GetEnvironmentVariable(TestCSMGalleryUri); diff --git a/src/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs b/src/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs index da5fe60bcfb1..6b9faa273a0e 100644 --- a/src/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs +++ b/src/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs @@ -21,9 +21,10 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema; -using Microsoft.WindowsAzure.Common.Internals; using Microsoft.Azure.Common.Extensions; using Microsoft.Azure.Common.Extensions.XmlSchema; +using Hyak.Common; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -75,17 +76,17 @@ protected virtual TestEnvironment GetCertificateTestEnvironment() string defaultPublishSettingsFile = Path.Combine(Environment.CurrentDirectory, DefaultPublishsettingsFilename); if (File.Exists(defaultPublishSettingsFile)) { - Tracing.Information("Getting credentials from local publishsettings file: {0}", defaultPublishSettingsFile); + TracingAdapter.Information("Getting credentials from local publishsettings file: {0}", defaultPublishSettingsFile); environment = GetTestEnvironmentFromPublishSettingsFile(defaultPublishSettingsFile); } else if (!string.IsNullOrEmpty(testPublishSettingsString)) { - Tracing.Information("Getting credentials from publishsettings file in environment variable: {0}={1}", TestPublishSettingsFileKey, testPublishSettingsString); + TracingAdapter.Information("Getting credentials from publishsettings file in environment variable: {0}={1}", TestPublishSettingsFileKey, testPublishSettingsString); environment = GetTestEnvironmentFromPublishSettingsFile(testPublishSettingsString); } else if (!string.IsNullOrEmpty(testConnectionString)) { - Tracing.Information("Getting credentials from connection string in environment variable: {0}={1}", TestCertificateConnectionStringKey, testConnectionString); + TracingAdapter.Information("Getting credentials from connection string in environment variable: {0}={1}", TestCertificateConnectionStringKey, testConnectionString); environment = GetCertificateTestEnvironmentFromConnectionString(testConnectionString); } diff --git a/src/Common/Commands.ScenarioTest/Common/TestEnvironment.cs b/src/Common/Commands.ScenarioTest/Common/TestEnvironment.cs index 05e6907137eb..623a5886a387 100644 --- a/src/Common/Commands.ScenarioTest/Common/TestEnvironment.cs +++ b/src/Common/Commands.ScenarioTest/Common/TestEnvironment.cs @@ -17,6 +17,7 @@ namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { + using Hyak.Common; using Microsoft.IdentityModel.Clients.ActiveDirectory; using System; public class TestEnvironment diff --git a/src/Common/Commands.ScenarioTest/Common/TestEnvironmentFactory.cs b/src/Common/Commands.ScenarioTest/Common/TestEnvironmentFactory.cs index a75a1e1cc978..a4cfec1b97d2 100644 --- a/src/Common/Commands.ScenarioTest/Common/TestEnvironmentFactory.cs +++ b/src/Common/Commands.ScenarioTest/Common/TestEnvironmentFactory.cs @@ -15,14 +15,16 @@ using System; using System.Collections.Generic; -using Microsoft.Azure.Utilities.HttpRecorder; -using Microsoft.WindowsAzure.Common.Internals; +using Microsoft.Azure.Test.HttpRecorder; using Newtonsoft.Json.Linq; +using System; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Azure.Test.HttpRecorder; +using Hyak.Common; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { - using System; - using Microsoft.IdentityModel.Clients.ActiveDirectory; public abstract class TestEnvironmentFactory { /// @@ -114,12 +116,12 @@ protected virtual TestEnvironment GetOrgIdTestEnvironment(string orgIdVariable) { string password = authSettings[AADPasswordKey]; - Tracing.Information("Using AAD auth with username and password combination"); + TracingAdapter.Information("Using AAD auth with username and password combination"); token = TokenCloudCredentialsHelper.GetTokenFromBasicCredentials(user, password, authEndpoint, tenant); } else { - Tracing.Information("Using AAD auth with pop-up dialog"); + TracingAdapter.Information("Using AAD auth with pop-up dialog"); string clientId = authSettings.ContainsKey(ClientID) ? authSettings[ClientID] : ClientIdDefault; if (authSettings.ContainsKey(RawToken)) { @@ -136,7 +138,7 @@ protected virtual TestEnvironment GetOrgIdTestEnvironment(string orgIdVariable) if (HttpMockServer.Mode == HttpRecorderMode.Playback) { // playback mode but no stored credentials in mocks - Tracing.Information("Using dummy token for playback"); + TracingAdapter.Information("Using dummy token for playback"); token = Guid.NewGuid().ToString(); } diff --git a/src/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs b/src/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs index e3c9cc82a265..6d35bafe9d2c 100644 --- a/src/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs +++ b/src/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs @@ -22,7 +22,7 @@ using System.Threading; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.IdentityModel.Clients.ActiveDirectory.Internal; -using Microsoft.WindowsAzure.Common.Internals; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -169,7 +169,7 @@ private static string GetProcessResult(string path, string arguments, Func - - + + + + + + + @@ -10,13 +15,11 @@ - - - - - - + + + + diff --git a/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj b/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj index 2de84d0e510d..9822e8b9c83f 100644 --- a/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj +++ b/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj @@ -37,9 +37,27 @@ pdbonly - + + ..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -61,17 +79,8 @@ ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -123,10 +132,6 @@ {bc420543-c04e-4bf3-96e1-cd81b823bdd7} Commands.Test.Utilities - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/Common/Commands.ScenarioTests.Common/Common.ps1 b/src/Common/Commands.ScenarioTests.Common/Common.ps1 index 8cfda87c9d1d..1c3cb8780edb 100644 --- a/src/Common/Commands.ScenarioTests.Common/Common.ps1 +++ b/src/Common/Commands.ScenarioTests.Common/Common.ps1 @@ -357,7 +357,7 @@ function getAssetName } } - $assetName = [Microsoft.Azure.Utilities.HttpRecorder.HttpMockServer]::GetAssetName($testName, "onesdk") + $assetName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetAssetName($testName, "onesdk") return $assetName } \ No newline at end of file diff --git a/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs b/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs index 09186ab53cf9..00a1a65b9cf5 100644 --- a/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs +++ b/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs @@ -17,14 +17,15 @@ using System.Collections.ObjectModel; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Utilities.HttpRecorder; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Testing; using System.Diagnostics; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure.Test; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { diff --git a/src/Common/Commands.ScenarioTests.Common/packages.config b/src/Common/Commands.ScenarioTests.Common/packages.config index 0b670568f39a..924f1c43ed10 100644 --- a/src/Common/Commands.ScenarioTests.Common/packages.config +++ b/src/Common/Commands.ScenarioTests.Common/packages.config @@ -1,14 +1,18 @@  - - + + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/Batch/Commands.Batch.Test/Accounts/RemoveBatchAccountCommandTests.cs b/src/ResourceManager/Batch/Commands.Batch.Test/Accounts/RemoveBatchAccountCommandTests.cs index 85c40610b5d9..67a45117e89e 100644 --- a/src/ResourceManager/Batch/Commands.Batch.Test/Accounts/RemoveBatchAccountCommandTests.cs +++ b/src/ResourceManager/Batch/Commands.Batch.Test/Accounts/RemoveBatchAccountCommandTests.cs @@ -44,7 +44,7 @@ public void RemoveBatchAccountTest() string accountName = "account01"; string resourceGroup = "resourceGroup"; - OperationResponse deleteResponse = new OperationResponse(); + AzureOperationResponse deleteResponse = new AzureOperationResponse(); batchClientMock.Setup(b => b.DeleteAccount(resourceGroup, accountName)).Returns(deleteResponse); cmdlet.AccountName = accountName; diff --git a/src/ResourceManager/Batch/Commands.Batch.Test/Commands.Batch.Test.csproj b/src/ResourceManager/Batch/Commands.Batch.Test/Commands.Batch.Test.csproj index 39fc0f191441..0b9a7c54d6e6 100644 --- a/src/ResourceManager/Batch/Commands.Batch.Test/Commands.Batch.Test.csproj +++ b/src/ResourceManager/Batch/Commands.Batch.Test/Commands.Batch.Test.csproj @@ -38,28 +38,38 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - False - ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.11.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll + ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.16.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll - - False - ..\..\..\packages\Microsoft.Azure.Management.Batch.1.1.6-preview\lib\net40\Microsoft.Azure.Management.Batch.dll + + ..\..\..\packages\Microsoft.Azure.Management.Batch.1.3.0-preview\lib\net40\Microsoft.Azure.Management.Batch.dll - - False - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -69,9 +79,8 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll @@ -97,14 +106,6 @@ ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - False ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -157,10 +158,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/BatchController.cs b/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/BatchController.cs index 80d7419bd882..fb3848dee18d 100644 --- a/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/BatchController.cs +++ b/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/BatchController.cs @@ -17,10 +17,10 @@ using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Batch; using Microsoft.Azure.Management.Resources; +using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using System; using System.Linq; @@ -37,8 +37,6 @@ public class BatchController public GalleryClient GalleryClient { get; private set; } - public EventsClient EventsClient { get; private set; } - public ResourceManagementClient ResourceManagementClient { get; private set; } public BatchManagementClient BatchManagementClient { get; private set; } @@ -136,13 +134,11 @@ private void SetupManagementClients() { AuthorizationManagementClient = GetAuthorizationManagementClient(); GalleryClient = GetGalleryClient(); - EventsClient = GetEventsClient(); ResourceManagementClient = GetResourceManagementClient(); BatchManagementClient = GetBatchManagementClient(); helper.SetupManagementClients(AuthorizationManagementClient, GalleryClient, - EventsClient, ResourceManagementClient, BatchManagementClient); } @@ -157,11 +153,6 @@ private GalleryClient GetGalleryClient() return TestBase.GetServiceClient(this.csmTestFactory); } - private EventsClient GetEventsClient() - { - return TestBase.GetServiceClient(this.csmTestFactory); - } - private ResourceManagementClient GetResourceManagementClient() { return TestBase.GetServiceClient(this.csmTestFactory); diff --git a/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/Common.ps1 b/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/Common.ps1 index 73e2eb12b1f2..70f34b54ef07 100644 --- a/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/Common.ps1 +++ b/src/ResourceManager/Batch/Commands.Batch.Test/ScenarioTests/Common.ps1 @@ -63,7 +63,7 @@ Cleans the created Batch account #> function Clean-BatchAccount($accountName,$resourceGroup) { - if ([Microsoft.Azure.Utilities.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Utilities.HttpRecorder.HttpRecorderMode]::Playback) + if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) { Remove-AzureBatchAccount -Name $accountName -ResourceGroupName $resourceGroup -Force } @@ -75,7 +75,7 @@ Cleans the created resource group #> function Clean-ResourceGroup($resourceGroup) { - if ([Microsoft.Azure.Utilities.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Utilities.HttpRecorder.HttpRecorderMode]::Playback) + if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) { Remove-AzureResourceGroup -Name $resourceGroup -Force } diff --git a/src/ResourceManager/Batch/Commands.Batch.Test/packages.config b/src/ResourceManager/Batch/Commands.Batch.Test/packages.config index 36f4b333b3be..cb353aab22e0 100644 --- a/src/ResourceManager/Batch/Commands.Batch.Test/packages.config +++ b/src/ResourceManager/Batch/Commands.Batch.Test/packages.config @@ -1,19 +1,21 @@  - - - - - - - + + + + + + + + + + - - + diff --git a/src/ResourceManager/Batch/Commands.Batch/BatchClient.cs b/src/ResourceManager/Batch/Commands.Batch/BatchClient.cs index 7bd6e73ee855..3173556916de 100644 --- a/src/ResourceManager/Batch/Commands.Batch/BatchClient.cs +++ b/src/ResourceManager/Batch/Commands.Batch/BatchClient.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Hyak.Common; using Microsoft.Azure.Commands.Batch.Properties; using Microsoft.Azure.Common.Extensions; using Microsoft.Azure.Common.Extensions.Models; @@ -242,7 +243,7 @@ public virtual BatchAccountContext RegenerateKeys(string resourceGroupName, stri /// The name of the resource group the account is under. If unspecified, it will be looked up. /// The account name /// The status of delete account operation - public virtual OperationResponse DeleteAccount(string resourceGroupName, string accountName) + public virtual AzureOperationResponse DeleteAccount(string resourceGroupName, string accountName) { if (string.IsNullOrEmpty(resourceGroupName)) { diff --git a/src/ResourceManager/Batch/Commands.Batch/BatchCmdletBase.cs b/src/ResourceManager/Batch/Commands.Batch/BatchCmdletBase.cs index 74c6e56c1634..9b63bdca19a8 100644 --- a/src/ResourceManager/Batch/Commands.Batch/BatchCmdletBase.cs +++ b/src/ResourceManager/Batch/Commands.Batch/BatchCmdletBase.cs @@ -12,10 +12,10 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Hyak.Common; using Microsoft.Azure.Common.Extensions; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Common.Internals; using Newtonsoft.Json.Linq; using System; @@ -84,7 +84,7 @@ internal static string FindDetailedMessage(string content) { string message = null; - if (ParserHelper.IsJson(content)) + if (CloudException.IsJson(content)) { var response = JObject.Parse(content); diff --git a/src/ResourceManager/Batch/Commands.Batch/Commands.Batch.csproj b/src/ResourceManager/Batch/Commands.Batch/Commands.Batch.csproj index 049c1f1e4d3b..77a2bc161da2 100644 --- a/src/ResourceManager/Batch/Commands.Batch/Commands.Batch.csproj +++ b/src/ResourceManager/Batch/Commands.Batch/Commands.Batch.csproj @@ -41,13 +41,33 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Batch.1.1.6-preview\lib\net40\Microsoft.Azure.Management.Batch.dll + ..\..\..\packages\Microsoft.Azure.Management.Batch.1.3.0-preview\lib\net40\Microsoft.Azure.Management.Batch.dll False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll False @@ -61,13 +81,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -130,10 +146,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Batch/Commands.Batch/packages.config b/src/ResourceManager/Batch/Commands.Batch/packages.config index fc23e5fd4cc1..cc8fad4873ab 100644 --- a/src/ResourceManager/Batch/Commands.Batch/packages.config +++ b/src/ResourceManager/Batch/Commands.Batch/packages.config @@ -1,12 +1,16 @@  - - + + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj index a56c340f32ee..13314fee1b14 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj @@ -41,27 +41,38 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - True + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.11.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll + ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.16.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll - ..\..\..\packages\Microsoft.Azure.Management.DataFactories.0.12.0-preview\lib\net40\Microsoft.Azure.Management.DataFactories.dll - - - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll - True + ..\..\..\packages\Microsoft.Azure.Management.DataFactories.0.14.0-preview\lib\net40\Microsoft.Azure.Management.DataFactories.dll - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - True + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.DataFactories.Runtime.0.11.1-preview\lib\net45\Microsoft.DataFactories.Runtime.dll @@ -85,26 +96,16 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - True - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False ..\..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll - False ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll @@ -275,10 +276,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/Common.ps1 b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/Common.ps1 index bd2adaf4dd13..bf1223bb8438 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/Common.ps1 +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/Common.ps1 @@ -50,7 +50,7 @@ Cleans the created data factory #> function Clean-DataFactory($rgname, $dfname) { - if ([Microsoft.Azure.Utilities.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Utilities.HttpRecorder.HttpRecorderMode]::Playback) { + if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) { Remove-AzureDataFactory -ResourceGroupName $rgname -Name $dfname -Force } } diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs index 55684c826064..54c1a39cfbd8 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs @@ -20,9 +20,8 @@ using Microsoft.Azure.Subscriptions; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; using Microsoft.WindowsAzure.Management.Storage; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; namespace Microsoft.Azure.Commands.DataFactories.Test { @@ -41,14 +40,12 @@ protected void SetupManagementClients() var resourceManagementClient = GetResourceManagementClient(); var subscriptionsClient = GetSubscriptionClient(); var galleryClient = GetGalleryClient(); - var eventsClient = GetEventsClient(); var authorizationManagementClient = GetAuthorizationManagementClient(); helper.SetupManagementClients(dataPipelineManagementClient, resourceManagementClient, subscriptionsClient, galleryClient, - eventsClient, authorizationManagementClient); } @@ -93,11 +90,6 @@ protected GalleryClient GetGalleryClient() return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); } - protected EventsClient GetEventsClient() - { - return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); - } - protected AuthorizationManagementClient GetAuthorizationManagementClient() { return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayKeyTests.cs b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayKeyTests.cs index b920504edd40..4e862d8e416d 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayKeyTests.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayKeyTests.cs @@ -24,6 +24,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Moq; using Xunit; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Test.Gateway diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayTests.cs b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayTests.cs index 0daf7e18e34e..4ec6da3a6577 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayTests.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/UnitTests/NewDataFactoryGatewayTests.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Moq; using Xunit; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Test.Gateway { diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config index ad0862583e9a..bb2cc303940c 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config @@ -1,21 +1,23 @@  - - - - - - - + + + + + + + + + + - - - + + diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/CloudExceptionExtensions.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/CloudExceptionExtensions.cs index 1addf9260ae3..1e9354a64d3e 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/CloudExceptionExtensions.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/CloudExceptionExtensions.cs @@ -18,6 +18,7 @@ using Microsoft.Azure.Commands.DataFactories.Properties; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -30,8 +31,8 @@ public static CloudException CreateFormattedException(this CloudException cloudE CultureInfo.InvariantCulture, Resources.FormattedCloudExceptionMessageTemplate, cloudException.Response.StatusCode, - cloudException.ErrorCode, - cloudException.ErrorMessage, + cloudException.Error.Code, + cloudException.Error.Message, cloudException.GetRequestId(), DateTime.UtcNow)); } diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj b/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj index e5f9759f391c..96f255bbd317 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj @@ -48,8 +48,26 @@ false - - ..\..\..\packages\Microsoft.Azure.Management.DataFactories.0.12.0-preview\lib\net40\Microsoft.Azure.Management.DataFactories.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.DataFactories.0.14.0-preview\lib\net40\Microsoft.Azure.Management.DataFactories.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll ..\..\..\packages\Microsoft.DataFactories.Runtime.0.11.1-preview\lib\net45\Microsoft.DataFactories.Runtime.dll @@ -57,6 +75,13 @@ ..\..\..\packages\Microsoft.DataTransfer.Gateway.Encryption.1.1.0-preview\lib\net45\Microsoft.DataTransfer.Gateway.Encryption.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -69,13 +94,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -189,10 +210,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryBaseCmdlet.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryBaseCmdlet.cs index 163d33796f04..8c52342a64ab 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryBaseCmdlet.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryBaseCmdlet.cs @@ -18,6 +18,7 @@ using Microsoft.Azure.Commands.DataFactories.Properties; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Gateway/NewAzureDataFactoryGatewayCommand.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Gateway/NewAzureDataFactoryGatewayCommand.cs index bac0979a10ba..c3291f14b3c4 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Gateway/NewAzureDataFactoryGatewayCommand.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Gateway/NewAzureDataFactoryGatewayCommand.cs @@ -19,6 +19,7 @@ using Microsoft.Azure.Commands.DataFactories.Models; using Microsoft.Azure.Commands.DataFactories.Properties; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.DataFactories.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.DataFactories.cs index f4d883f2d773..232572eead28 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.DataFactories.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.DataFactories.cs @@ -22,6 +22,7 @@ using Microsoft.Azure.Management.DataFactories; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -172,7 +173,7 @@ private bool CheckDataFactoryExists(string resourceGroupName, string dataFactory public virtual HttpStatusCode DeleteDataFactory(string resourceGroupName, string dataFactoryName) { - OperationResponse response = DataPipelineManagementClient.DataFactories.Delete(resourceGroupName, + AzureOperationResponse response = DataPipelineManagementClient.DataFactories.Delete(resourceGroupName, dataFactoryName); return response.StatusCode; } diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Hubs.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Hubs.cs index 9b5950798bcf..136f5fe6cff9 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Hubs.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Hubs.cs @@ -21,6 +21,7 @@ using Microsoft.Azure.Management.DataFactories; using Microsoft.Azure.Management.DataFactories.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -137,7 +138,7 @@ public virtual List ListHubs(string resourceGroupName, string dataFactory public virtual HttpStatusCode DeleteHub(string resourceGroupName, string dataFactoryName, string hubName) { - OperationResponse response = DataPipelineManagementClient.Hubs.Delete( + AzureOperationResponse response = DataPipelineManagementClient.Hubs.Delete( resourceGroupName, dataFactoryName, hubName); diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.LinkedServices.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.LinkedServices.cs index 2ad1072c0d04..39bc8403022e 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.LinkedServices.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.LinkedServices.cs @@ -21,6 +21,7 @@ using Microsoft.Azure.Management.DataFactories; using Microsoft.Azure.Management.DataFactories.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -81,7 +82,7 @@ public virtual List ListLinkedServices(string resourceGroupName public virtual HttpStatusCode DeleteLinkedService(string resourceGroupName, string dataFactoryName, string linkedServiceName) { - OperationResponse response = DataPipelineManagementClient.LinkedServices.Delete(resourceGroupName, + AzureOperationResponse response = DataPipelineManagementClient.LinkedServices.Delete(resourceGroupName, dataFactoryName, linkedServiceName); return response.StatusCode; diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Pipelines.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Pipelines.cs index 6edf114b396b..11ab9636fe36 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Pipelines.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Pipelines.cs @@ -21,6 +21,7 @@ using Microsoft.Azure.Management.DataFactories; using Microsoft.Azure.Management.DataFactories.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -47,7 +48,7 @@ public virtual Pipeline CreateOrUpdatePipeline(string resourceGroupName, string public virtual HttpStatusCode DeletePipeline(string resourceGroupName, string dataFactoryName, string pipelineName) { - OperationResponse response = DataPipelineManagementClient.Pipelines.Delete( + AzureOperationResponse response = DataPipelineManagementClient.Pipelines.Delete( resourceGroupName, dataFactoryName, pipelineName); return response.StatusCode; diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Tables.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Tables.cs index d50a2d1efac8..504ce3daf71e 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Tables.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.Tables.cs @@ -21,6 +21,7 @@ using Microsoft.Azure.Management.DataFactories; using Microsoft.Azure.Management.DataFactories.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.DataFactories { @@ -79,7 +80,7 @@ public virtual List ListTables(string resourceGroupName, string dataFac public virtual HttpStatusCode DeleteTable(string resourceGroupName, string dataFactoryName, string tableName) { - OperationResponse response = DataPipelineManagementClient.Tables.Delete(resourceGroupName, dataFactoryName, tableName); + AzureOperationResponse response = DataPipelineManagementClient.Tables.Delete(resourceGroupName, dataFactoryName, tableName); return response.StatusCode; } diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config b/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config index 404260a2d015..e63f930ccd5e 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config @@ -1,13 +1,18 @@  - + + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj index 2371d5c7366c..9f1989140747 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj @@ -48,8 +48,29 @@ false - - ..\..\..\packages\Hydra.HttpRecorder.1.0.5406.28672-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -65,20 +86,12 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.0\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.0\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5406.28672-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll False diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config index eaefc95c996e..bea4bcaf95a9 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config @@ -1,15 +1,19 @@  - - + + + + + + + - - - + + \ No newline at end of file diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj b/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj index f96838b049d0..d2496788efdb 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj @@ -108,9 +108,22 @@ + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -121,6 +134,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll @@ -129,13 +149,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.0\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.0\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -157,10 +173,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs index a59940bde5d2..25fc99a3200c 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs @@ -12,12 +12,12 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Hyak.Common; using Microsoft.Azure.Commands.KeyVault.Properties; using Microsoft.Azure.Commands.KeyVault.WebKey; using Microsoft.Azure.Common.Extensions; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Common.Internals; using System; using System.Collections.Generic; using System.IO; @@ -322,17 +322,17 @@ public KeyBundle RestoreKey(string vaultName, string inputBlobPath) private void SendRequestCallback(string correlationId, HttpRequestMessage request) { - if (CloudContext.Configuration.Tracing.IsEnabled) + if (TracingAdapter.IsEnabled) { - Tracing.SendRequest(correlationId, request); + TracingAdapter.SendRequest(correlationId, request); } } private void ReceiveResponseCallback(string correlationId, HttpResponseMessage response) { - if (CloudContext.Configuration.Tracing.IsEnabled) + if (TracingAdapter.IsEnabled) { - Tracing.ReceiveResponse(correlationId, response); + TracingAdapter.ReceiveResponse(correlationId, response); } } diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config b/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config index 219ecbb28323..bdde83a6dc79 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config @@ -1,10 +1,15 @@  + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj index 9d97b35690d5..81c12f4c1222 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj @@ -41,12 +41,32 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + - ..\..\..\packages\Microsoft.Azure.Management.Redis.0.12.0-preview\lib\net40\Microsoft.Azure.Management.Redis.dll + ..\..\..\packages\Microsoft.Azure.Management.Redis.0.14.0-preview\lib\net40\Microsoft.Azure.Management.Redis.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -68,17 +88,8 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -125,10 +136,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTests.cs b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTests.cs index f08f81cb980d..921c9151905b 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTests.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTests.cs @@ -15,7 +15,7 @@ namespace Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests { using Microsoft.WindowsAzure.Commands.ScenarioTest; - using Microsoft.WindowsAzure.Testing; + using Microsoft.Azure.Test; using Xunit; public class RedisCacheTests : RedisCacheTestsBase diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs index c6519b8ab712..7925889e9557 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs @@ -17,7 +17,7 @@ namespace Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests using System; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; - using Microsoft.WindowsAzure.Testing; + using Microsoft.Azure.Test; using Microsoft.Azure.Management.Redis; using Microsoft.Azure.Common.Extensions; diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config index df002d1bddd5..6a593376f14f 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config @@ -1,15 +1,19 @@  - - - + + + + + + + + - - + diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj index 49d934539a72..e754d5f89adc 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj @@ -46,9 +46,26 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Redis.0.12.0-preview\lib\net40\Microsoft.Azure.Management.Redis.dll + ..\..\..\packages\Microsoft.Azure.Management.Redis.0.14.0-preview\lib\net40\Microsoft.Azure.Management.Redis.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll False @@ -70,13 +87,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -123,10 +136,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCache.cs b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCache.cs index a12ae8c25e3e..0b2b0b6a8628 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCache.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCache.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Commands.RedisCache using System.Management.Automation; using SkuStrings = Microsoft.Azure.Management.Redis.Models.SkuName; using MaxMemoryPolicyStrings = Microsoft.Azure.Management.Redis.Models.MaxMemoryPolicy; + using Hyak.Common; [Cmdlet(VerbsCommon.New, "AzureRedisCache"), OutputType(typeof(RedisCacheAttributesWithAccessKeys))] public class NewAzureRedisCache : RedisCacheCmdletBase @@ -101,11 +102,11 @@ public override void ExecuteCmdlet() } catch (CloudException ex) { - if (ex.ErrorCode == "ResourceNotFound" || ex.Message.Contains("ResourceNotFound")) + if (ex.Error.Code == "ResourceNotFound" || ex.Message.Contains("ResourceNotFound")) { // cache does not exists so go ahead and create one } - else if (ex.ErrorCode == "ResourceGroupNotFound" || ex.Message.Contains("ResourceGroupNotFound")) + else if (ex.Error.Code == "ResourceGroupNotFound" || ex.Message.Contains("ResourceGroupNotFound")) { // resource group not found, let create throw error don't throw from here } diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs b/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs index 5260bdc592be..fe0241307c05 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs @@ -59,7 +59,7 @@ public RedisCreateOrUpdateResponse CreateOrUpdateCache(string resourceGroupName, return response; } - public OperationResponse DeleteCache(string resourceGroupName, string cacheName) + public AzureOperationResponse DeleteCache(string resourceGroupName, string cacheName) { return _client.Redis.Delete(resourceGroupName: resourceGroupName, name: cacheName); } @@ -86,7 +86,7 @@ public RedisListResponse ListCachesUsingNextLink(string nextLink) return _client.Redis.ListNext(nextLink: nextLink); } - public OperationResponse RegenerateAccessKeys(string resourceGroupName, string cacheName, RedisKeyType keyType) + public AzureOperationResponse RegenerateAccessKeys(string resourceGroupName, string cacheName, RedisKeyType keyType) { return _client.Redis.RegenerateKey(resourceGroupName: resourceGroupName, name: cacheName, parameters: new RedisRegenerateKeyParameters() { KeyType = keyType }); } diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config b/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config index 305c15591e8b..7020401c726a 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config @@ -1,12 +1,16 @@  - + + + + + + - - + \ No newline at end of file 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 960fccd5f28c..1f6a1b2cf3c8 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj @@ -42,28 +42,36 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll False - ..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.4.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll + ..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.6.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll - False - ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.11.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll - - - False - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll + ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.16.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll - False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - - False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -85,21 +93,11 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -176,10 +174,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs index 9f05a40e5d10..2b0c8a69bf83 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs @@ -25,9 +25,9 @@ using Microsoft.Azure.Gallery.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.WindowsAzure.Common.OData; using Moq; using Xunit; +using Microsoft.Azure.Common.OData; namespace Microsoft.Azure.Commands.Resources.Test.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs index 24d28101b7ce..03e0f5af5044 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs @@ -31,9 +31,6 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; -using Microsoft.WindowsAzure.Management.Monitoring.Events.Models; -using Microsoft.WindowsAzure.Management.Monitoring.Models; using Moq; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -41,6 +38,7 @@ using Xunit.Extensions; using System.Diagnostics; using Microsoft.Azure.Common.Extensions; +using Hyak.Common; namespace Microsoft.Azure.Commands.Resources.Test.Models { @@ -58,11 +56,13 @@ public class ResourceClientTests : TestBase private Mock galleryTemplatesClientMock; - private Mock eventsClientMock; + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //private Mock eventsClientMock; private Mock deploymentOperationsMock; - private Mock eventDataOperationsMock; + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //private Mock eventDataOperationsMock; private Mock providersMock; @@ -94,7 +94,8 @@ public class ResourceClientTests : TestBase private string serializedProperties; - private List sampleEvents; + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //private List sampleEvents; private int ConfirmActionCounter = 0; @@ -140,9 +141,9 @@ public ResourceClientTests() resourceGroupMock = new Mock(); resourceOperationsMock = new Mock(); galleryTemplatesClientMock = new Mock(); - eventsClientMock = new Mock(); + //eventsClientMock = new Mock(); deploymentOperationsMock = new Mock(); - eventDataOperationsMock = new Mock(); + //eventDataOperationsMock = new Mock(); providersMock = new Mock(); providersMock.Setup(f => f.ListAsync(null, new CancellationToken())) .Returns(Task.Factory.StartNew(() => new ProviderListResult @@ -157,12 +158,14 @@ public ResourceClientTests() resourceManagementClientMock.Setup(f => f.Resources).Returns(resourceOperationsMock.Object); resourceManagementClientMock.Setup(f => f.DeploymentOperations).Returns(deploymentOperationsMock.Object); resourceManagementClientMock.Setup(f => f.Providers).Returns(providersMock.Object); - eventsClientMock.Setup(f => f.EventData).Returns(eventDataOperationsMock.Object); + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //eventsClientMock.Setup(f => f.EventData).Returns(eventDataOperationsMock.Object); authorizationManagementClientMock.Setup(f => f.Permissions).Returns(permissionOperationsMock.Object); resourcesClient = new ResourcesClient( resourceManagementClientMock.Object, galleryTemplatesClientMock.Object, - eventsClientMock.Object, + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //eventsClientMock.Object, authorizationManagementClientMock.Object) { VerboseLogger = progressLoggerMock.Object, @@ -193,96 +196,97 @@ public ResourceClientTests() TypeNameHandling = TypeNameHandling.None }); - sampleEvents = new List(); - sampleEvents.Add(new EventData - { - EventDataId = "ac7d2ab5-698a-4c33-9c19-0a93d3d7f527", - EventName = new LocalizableString { LocalizedValue = "Start request" }, - EventSource = new LocalizableString { LocalizedValue = "Microsoft Resources" }, - EventChannels = EventChannels.Operation, - Level = EventLevel.Informational, - EventTimestamp = DateTime.Now, - OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", - SubscriptionId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", - CorrelationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", - OperationName = - new LocalizableString - { - LocalizedValue = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write" - }, - Status = new LocalizableString { LocalizedValue = "Succeeded" }, - SubStatus = new LocalizableString { LocalizedValue = "Created" }, - ResourceGroupName = "foo", - ResourceProviderName = new LocalizableString { LocalizedValue = "Microsoft Resources" }, - ResourceUri = - "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - HttpRequest = new HttpRequestInfo - { - Uri = - "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - Method = "PUT", - ClientRequestId = "1234", - ClientIpAddress = "123.123.123.123" - }, - Authorization = new SenderAuthorization - { - Action = "PUT", - Condition = "", - Role = "Sender", - Scope = "None" - }, - Claims = new Dictionary - { - {"aud", "https://management.core.windows.net/"}, - {"iss", "https://sts.windows.net/123456/"}, - {"iat", "h123445"}, - {"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "info@mail.com"} - }, - Properties = new Dictionary() - }); - sampleEvents.Add(new EventData - { - EventDataId = "ac7d2ab5-698a-4c33-9c19-0sdfsdf34r54", - EventName = new LocalizableString { LocalizedValue = "End request" }, - EventSource = new LocalizableString { LocalizedValue = "Microsoft Resources" }, - EventChannels = EventChannels.Operation, - Level = EventLevel.Informational, - EventTimestamp = DateTime.Now, - OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", - OperationName = - new LocalizableString - { - LocalizedValue = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write" - }, - Status = new LocalizableString { LocalizedValue = "Succeeded" }, - SubStatus = new LocalizableString { LocalizedValue = "Created" }, - ResourceGroupName = "foo", - ResourceProviderName = new LocalizableString { LocalizedValue = "Microsoft Resources" }, - ResourceUri = - "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - HttpRequest = new HttpRequestInfo - { - Uri = - "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - Method = "PUT", - ClientRequestId = "1234", - ClientIpAddress = "123.123.123.123" - }, - Authorization = new SenderAuthorization - { - Action = "PUT", - Condition = "", - Role = "Sender", - Scope = "None" - }, - Claims = new Dictionary - { - {"aud", "https://management.core.windows.net/"}, - {"iss", "https://sts.windows.net/123456/"}, - {"iat", "h123445"} - }, - Properties = new Dictionary() - }); + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //sampleEvents = new List(); + //sampleEvents.Add(new EventData + // { + // EventDataId = "ac7d2ab5-698a-4c33-9c19-0a93d3d7f527", + // EventName = new LocalizableString { LocalizedValue = "Start request" }, + // EventSource = new LocalizableString { LocalizedValue = "Microsoft Resources" }, + // EventChannels = EventChannels.Operation, + // Level = EventLevel.Informational, + // EventTimestamp = DateTime.Now, + // OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", + // SubscriptionId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", + // CorrelationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", + // OperationName = + // new LocalizableString + // { + // LocalizedValue = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write" + // }, + // Status = new LocalizableString { LocalizedValue = "Succeeded" }, + // SubStatus = new LocalizableString { LocalizedValue = "Created" }, + // ResourceGroupName = "foo", + // ResourceProviderName = new LocalizableString { LocalizedValue = "Microsoft Resources" }, + // ResourceUri = + // "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // HttpRequest = new HttpRequestInfo + // { + // Uri = + // "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // Method = "PUT", + // ClientRequestId = "1234", + // ClientIpAddress = "123.123.123.123" + // }, + // Authorization = new SenderAuthorization + // { + // Action = "PUT", + // Condition = "", + // Role = "Sender", + // Scope = "None" + // }, + // Claims = new Dictionary + // { + // {"aud", "https://management.core.windows.net/"}, + // {"iss", "https://sts.windows.net/123456/"}, + // {"iat", "h123445"}, + // {"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "info@mail.com"} + // }, + // Properties = new Dictionary() + // }); + //sampleEvents.Add(new EventData + //{ + // EventDataId = "ac7d2ab5-698a-4c33-9c19-0sdfsdf34r54", + // EventName = new LocalizableString { LocalizedValue = "End request" }, + // EventSource = new LocalizableString { LocalizedValue = "Microsoft Resources" }, + // EventChannels = EventChannels.Operation, + // Level = EventLevel.Informational, + // EventTimestamp = DateTime.Now, + // OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", + // OperationName = + // new LocalizableString + // { + // LocalizedValue = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write" + // }, + // Status = new LocalizableString { LocalizedValue = "Succeeded" }, + // SubStatus = new LocalizableString { LocalizedValue = "Created" }, + // ResourceGroupName = "foo", + // ResourceProviderName = new LocalizableString { LocalizedValue = "Microsoft Resources" }, + // ResourceUri = + // "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // HttpRequest = new HttpRequestInfo + // { + // Uri = + // "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // Method = "PUT", + // ClientRequestId = "1234", + // ClientIpAddress = "123.123.123.123" + // }, + // Authorization = new SenderAuthorization + // { + // Action = "PUT", + // Condition = "", + // Role = "Sender", + // Scope = "None" + // }, + // Claims = new Dictionary + // { + // {"aud", "https://management.core.windows.net/"}, + // {"iss", "https://sts.windows.net/123456/"}, + // {"iat", "h123445"} + // }, + // Properties = new Dictionary() + //}); } [Fact] @@ -771,7 +775,7 @@ public void RemoveResourceWithAllParametersSucceeds() )); resourceOperationsMock.Setup(f => f.DeleteAsync(resourceGroupName, It.IsAny(), It.IsAny())) - .Returns(Task.Factory.StartNew(() => new OperationResponse + .Returns(Task.Factory.StartNew(() => new AzureOperationResponse { RequestId = "123", StatusCode = HttpStatusCode.OK @@ -1915,155 +1919,159 @@ public void GetsResourceGroupsFilteredByTagsWithDetails() Assert.Equal(1, groups4[0].Resources.Count()); } - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetAzureResourceGroupLogWithAllCallsListEventsForResourceGroup() - { - eventDataOperationsMock.Setup(f => f.ListEventsForResourceGroupAsync(It.IsAny(), new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new EventDataListResponse - { - EventDataCollection = new EventDataCollection - { - Value = sampleEvents - } - })); - - IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters - { - Name = "foo", - All = true - }); - - Assert.Equal(2, results.Count()); - eventDataOperationsMock.Verify(f => f.ListEventsForResourceGroupAsync(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetAzureResourceGroupLogWithDeploymentCallsListEventsForCorrelationId() - { - deploymentsMock.Setup( - f => f.GetAsync(resourceGroupName, deploymentName, new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new DeploymentGetResult - { - Deployment = new Deployment() - { - Name = deploymentName + 1, - Properties = new DeploymentProperties() - { - Mode = DeploymentMode.Incremental, - CorrelationId = "123", - TemplateLink = new TemplateLink() - { - Uri = new Uri("http://microsoft1.com") - } - } - } - })); - - eventDataOperationsMock.Setup(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new EventDataListResponse - { - EventDataCollection = new EventDataCollection - { - Value = sampleEvents - } - })); - - IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters - { - Name = resourceGroupName, - DeploymentName = deploymentName - }); - - Assert.Equal(2, results.Count()); - deploymentsMock.Verify(f => f.GetAsync(resourceGroupName, deploymentName, It.IsAny()), Times.Once()); - eventDataOperationsMock.Verify(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetAzureResourceGroupLogWithLastDeploymentCallsListEventsForCorrelationId() - { - deploymentsMock.Setup( - f => f.ListAsync(resourceGroupName, It.IsAny(), new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new DeploymentListResult - { - Deployments = new List() - { - new Deployment() - { - Name = deploymentName + 1, - Properties = new DeploymentProperties() - { - Mode = DeploymentMode.Incremental, - CorrelationId = "123", - TemplateLink = new TemplateLink() - { - Uri = new Uri("http://microsoft1.com") - } - } - } - } - })); - - eventDataOperationsMock.Setup(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new EventDataListResponse - { - EventDataCollection = new EventDataCollection - { - Value = sampleEvents - } - })); - - IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters - { - Name = resourceGroupName - }); - - Assert.Equal(2, results.Count()); - deploymentsMock.Verify(f => f.ListAsync(resourceGroupName, It.IsAny(), It.IsAny()), Times.Once()); - eventDataOperationsMock.Verify(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetAzureResourceGroupLogReturnsAllRequiredFields() - { - eventDataOperationsMock.Setup(f => f.ListEventsForResourceGroupAsync(It.IsAny(), new CancellationToken())) - .Returns(Task.Factory.StartNew(() => new EventDataListResponse - { - EventDataCollection = new EventDataCollection - { - Value = sampleEvents - } - })); - - IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters - { - Name = "foo", - All = true - }); - - Assert.Equal(2, results.Count()); - var first = results.First(); - Assert.NotNull(first.Authorization); - Assert.NotNull(first.ResourceUri); - Assert.NotNull(first.SubscriptionId); - Assert.NotNull(first.Timestamp); - Assert.NotNull(first.OperationName); - Assert.NotNull(first.OperationId); - Assert.NotNull(first.Status); - Assert.NotNull(first.SubStatus); - Assert.NotNull(first.Caller); - Assert.NotNull(first.CorrelationId); - Assert.NotNull(first.HttpRequest); - Assert.NotNull(first.Level); - Assert.NotNull(first.ResourceGroupName); - Assert.NotNull(first.ResourceProvider); - Assert.NotNull(first.EventSource); - Assert.NotNull(first.PropertiesText); - } + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Fact] + //[Trait(Category.AcceptanceType, Category.CheckIn)] + //public void GetAzureResourceGroupLogWithAllCallsListEventsForResourceGroup() + //{ + // eventDataOperationsMock.Setup(f => f.ListEventsForResourceGroupAsync(It.IsAny(), new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new EventDataListResponse + // { + // EventDataCollection = new EventDataCollection + // { + // Value = sampleEvents + // } + // })); + + // IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters + // { + // Name = "foo", + // All = true + // }); + + // Assert.Equal(2, results.Count()); + // eventDataOperationsMock.Verify(f => f.ListEventsForResourceGroupAsync(It.IsAny(), It.IsAny()), Times.Once()); + //} + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Fact] + //[Trait(Category.AcceptanceType, Category.CheckIn)] + //public void GetAzureResourceGroupLogWithDeploymentCallsListEventsForCorrelationId() + //{ + // deploymentsMock.Setup( + // f => f.GetAsync(resourceGroupName, deploymentName, new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new DeploymentGetResult + // { + // Deployment = new Deployment() + // { + // Name = deploymentName + 1, + // Properties = new DeploymentProperties() + // { + // Mode = DeploymentMode.Incremental, + // CorrelationId = "123", + // TemplateLink = new TemplateLink() + // { + // Uri = new Uri("http://microsoft1.com") + // } + // } + // } + // })); + + // eventDataOperationsMock.Setup(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new EventDataListResponse + // { + // EventDataCollection = new EventDataCollection + // { + // Value = sampleEvents + // } + // })); + + // IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters + // { + // Name = resourceGroupName, + // DeploymentName = deploymentName + // }); + + // Assert.Equal(2, results.Count()); + // deploymentsMock.Verify(f => f.GetAsync(resourceGroupName, deploymentName, It.IsAny()), Times.Once()); + // eventDataOperationsMock.Verify(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), It.IsAny()), Times.Once()); + //} + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Fact] + //[Trait(Category.AcceptanceType, Category.CheckIn)] + //public void GetAzureResourceGroupLogWithLastDeploymentCallsListEventsForCorrelationId() + //{ + // deploymentsMock.Setup( + // f => f.ListAsync(resourceGroupName, It.IsAny(), new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new DeploymentListResult + // { + // Deployments = new List() + // { + // new Deployment() + // { + // Name = deploymentName + 1, + // Properties = new DeploymentProperties() + // { + // Mode = DeploymentMode.Incremental, + // CorrelationId = "123", + // TemplateLink = new TemplateLink() + // { + // Uri = new Uri("http://microsoft1.com") + // } + // } + // } + // } + // })); + + // eventDataOperationsMock.Setup(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new EventDataListResponse + // { + // EventDataCollection = new EventDataCollection + // { + // Value = sampleEvents + // } + // })); + + // IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters + // { + // Name = resourceGroupName + // }); + + // Assert.Equal(2, results.Count()); + // deploymentsMock.Verify(f => f.ListAsync(resourceGroupName, It.IsAny(), It.IsAny()), Times.Once()); + // eventDataOperationsMock.Verify(f => f.ListEventsForCorrelationIdAsync(It.IsAny(), It.IsAny()), Times.Once()); + //} + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Fact] + //[Trait(Category.AcceptanceType, Category.CheckIn)] + //public void GetAzureResourceGroupLogReturnsAllRequiredFields() + //{ + // eventDataOperationsMock.Setup(f => f.ListEventsForResourceGroupAsync(It.IsAny(), new CancellationToken())) + // .Returns(Task.Factory.StartNew(() => new EventDataListResponse + // { + // EventDataCollection = new EventDataCollection + // { + // Value = sampleEvents + // } + // })); + + // IEnumerable results = resourcesClient.GetResourceGroupLogs(new GetPSResourceGroupLogParameters + // { + // Name = "foo", + // All = true + // }); + + // Assert.Equal(2, results.Count()); + // var first = results.First(); + // Assert.NotNull(first.Authorization); + // Assert.NotNull(first.ResourceUri); + // Assert.NotNull(first.SubscriptionId); + // Assert.NotNull(first.Timestamp); + // Assert.NotNull(first.OperationName); + // Assert.NotNull(first.OperationId); + // Assert.NotNull(first.Status); + // Assert.NotNull(first.SubStatus); + // Assert.NotNull(first.Caller); + // Assert.NotNull(first.CorrelationId); + // Assert.NotNull(first.HttpRequest); + // Assert.NotNull(first.Level); + // Assert.NotNull(first.ResourceGroupName); + // Assert.NotNull(first.ResourceProvider); + // Assert.NotNull(first.EventSource); + // Assert.NotNull(first.PropertiesText); + //} [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/GetAzureResourceGroupLogCommandTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/GetAzureResourceGroupLogCommandTests.cs index dd459b316374..9428c416b372 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/GetAzureResourceGroupLogCommandTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/GetAzureResourceGroupLogCommandTests.cs @@ -42,62 +42,63 @@ public GetAzureResourceGroupLogCommandTests() }; } - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetAzureResourceGroupLogOutputsProperties() - { - List result = new List(); - result.Add(new PSDeploymentEventData - { - EventId = "ac7d2ab5-698a-4c33-9c19-0a93d3d7f527", - EventName = "Start request", - EventSource = "Microsoft Resources", - Channels = "Operation", - Level = "Informational", - Timestamp = DateTime.Now, - OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", - OperationName = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write", - Status = "Succeeded", - SubStatus = "Created", - ResourceGroupName = "foo", - ResourceProvider = "Microsoft Resources", - ResourceUri = - "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - HttpRequest = new PSDeploymentEventDataHttpRequest - { - Url = "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", - Method = "PUT", - ClientId = "1234", - ClientIpAddress = "123.123.123.123" - }, - Authorization = new PSDeploymentEventDataAuthorization - { - Action = "PUT", - Condition = "", - Role = "Sender", - Scope = "None" - }, - Claims = new Dictionary - { - {"aud", "https://management.core.windows.net/"}, - {"iss", "https://sts.windows.net/123456/"}, - {"iat", "h123445"} - }, - Properties = new Dictionary() - }); + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Fact] + //[Trait(Category.AcceptanceType, Category.CheckIn)] + //public void GetAzureResourceGroupLogOutputsProperties() + //{ + // List result = new List(); + // result.Add(new PSDeploymentEventData + // { + // EventId = "ac7d2ab5-698a-4c33-9c19-0a93d3d7f527", + // EventName = "Start request", + // EventSource = "Microsoft Resources", + // Channels = "Operation", + // Level = "Informational", + // Timestamp = DateTime.Now, + // OperationId = "c0f2e85f-efb0-47d0-bf90-f983ec8be91d", + // OperationName = "Microsoft.Resources/subscriptions/resourcegroups/deployments/write", + // Status = "Succeeded", + // SubStatus = "Created", + // ResourceGroupName = "foo", + // ResourceProvider = "Microsoft Resources", + // ResourceUri = + // "/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // HttpRequest = new PSDeploymentEventDataHttpRequest + // { + // Url = "http://path/subscriptions/ffce8037-a374-48bf-901d-dac4e3ea8c09/resourcegroups/foo/deployments/testdeploy", + // Method = "PUT", + // ClientId = "1234", + // ClientIpAddress = "123.123.123.123" + // }, + // Authorization = new PSDeploymentEventDataAuthorization + // { + // Action = "PUT", + // Condition = "", + // Role = "Sender", + // Scope = "None" + // }, + // Claims = new Dictionary + // { + // {"aud", "https://management.core.windows.net/"}, + // {"iss", "https://sts.windows.net/123456/"}, + // {"iat", "h123445"} + // }, + // Properties = new Dictionary() + // }); - GetPSResourceGroupLogParameters expected = new GetPSResourceGroupLogParameters(); + // GetPSResourceGroupLogParameters expected = new GetPSResourceGroupLogParameters(); - resourcesClientMock.Setup(f => f.GetResourceGroupLogs(It.IsAny())) - .Returns(result) - .Callback((GetPSResourceGroupLogParameters r) => expected = r); + // resourcesClientMock.Setup(f => f.GetResourceGroupLogs(It.IsAny())) + // .Returns(result) + // .Callback((GetPSResourceGroupLogParameters r) => expected = r); - cmdlet.Name = "foo"; + // cmdlet.Name = "foo"; - cmdlet.ExecuteCmdlet(); + // cmdlet.ExecuteCmdlet(); - Assert.Equal(1, result.Count()); - Assert.Equal("foo", expected.Name); - } + // Assert.Equal(1, result.Count()); + // Assert.Equal("foo", expected.Name); + //} } } diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs index a338336cb3ec..a61ecdc754da 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs @@ -15,7 +15,7 @@ using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Graph.RBAC.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using System.Linq; using Xunit; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/Common.ps1 b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/Common.ps1 index 674f8e1cf9d9..14b012f54a5c 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/Common.ps1 +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/Common.ps1 @@ -50,7 +50,7 @@ Cleans the created resource groups #> function Clean-ResourceGroup($rgname) { - if ([Microsoft.Azure.Utilities.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Utilities.HttpRecorder.HttpRecorderMode]::Playback) { + if ([Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::Mode -ne [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode]::Playback) { Remove-AzureResourceGroup -Name $rgname -Force } } \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs index 3174a07ce596..d1cb7415a4f6 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs @@ -18,11 +18,10 @@ using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Subscriptions; -using Microsoft.Azure.Utilities.HttpRecorder; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using System; using System.Linq; @@ -43,7 +42,8 @@ public sealed class ResourcesController public GalleryClient GalleryClient { get; private set; } - public EventsClient EventsClient { get; private set; } + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //public EventsClient EventsClient { get; private set; } public AuthorizationManagementClient AuthorizationManagementClient { get; private set; } @@ -134,14 +134,12 @@ private void SetupManagementClients() ResourceManagementClient = GetResourceManagementClient(); SubscriptionClient = GetSubscriptionClient(); GalleryClient = GetGalleryClient(); - EventsClient = GetEventsClient(); AuthorizationManagementClient = GetAuthorizationManagementClient(); GraphClient = GetGraphClient(); helper.SetupManagementClients(ResourceManagementClient, SubscriptionClient, GalleryClient, - EventsClient, AuthorizationManagementClient, GraphClient); } @@ -194,10 +192,5 @@ private GalleryClient GetGalleryClient() return TestBase.GetServiceClient(this.csmTestFactory); } - private EventsClient GetEventsClient() - { - return TestBase.GetServiceClient(this.csmTestFactory); - } - } } diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs index 0b0fa4aa676c..6f9470f7193d 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs @@ -19,10 +19,9 @@ using Microsoft.Azure.Management.Authorization.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; -using Microsoft.Azure.Utilities.HttpRecorder; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Testing; -using Microsoft.WindowsAzure.Testing.TestCategories; +using Microsoft.Azure.Test; using System; using System.Linq; using Xunit; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config index 39350fefc378..375cb21be8bf 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config +++ b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config @@ -1,20 +1,22 @@  - - - - - - - + + + + + + + + + + - - - + + diff --git a/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj b/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj index fa7b88269758..d5d8b4229fc8 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj +++ b/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj @@ -48,25 +48,34 @@ false - + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll - + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + False - ..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.4.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - + False - ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.11.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll + ..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.6.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll - + False - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll + ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.16.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll False @@ -88,13 +97,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -210,10 +215,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs index 8b887a0e560b..d1946901f9b6 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs @@ -22,17 +22,17 @@ using System.Security; using System.Text; using System.Text.RegularExpressions; - using Microsoft.Azure.Gallery; using Microsoft.Azure.Gallery.Models; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Common.OData; using Newtonsoft.Json; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; using Microsoft.Azure.Common.Extensions; +using Hyak.Common; +using Microsoft.Azure.Common.OData; namespace Microsoft.Azure.Commands.Resources.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.Events.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.Events.cs index dd7ff94dbb7c..32ef8ae93f8d 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.Events.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.Events.cs @@ -12,92 +12,93 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Azure.Management.Resources; -using Microsoft.Azure.Management.Resources.Models; -using Microsoft.WindowsAzure.Management.Monitoring.Events; -using Microsoft.WindowsAzure.Management.Monitoring.Events.Models; -using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; +// TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using Microsoft.Azure.Management.Resources; +//using Microsoft.Azure.Management.Resources.Models; +//using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; +//using Microsoft.Azure.Insights.Models; +//using Microsoft.Azure.Insights; -namespace Microsoft.Azure.Commands.Resources.Models -{ - public partial class ResourcesClient - { - private const int EventRetentionPeriod = 89; +//namespace Microsoft.Azure.Commands.Resources.Models +//{ +// public partial class ResourcesClient +// { +// private const int EventRetentionPeriod = 89; - /// - /// Gets event logs. - /// - /// Input parameters - /// Logs. - public virtual IEnumerable GetResourceGroupLogs(GetPSResourceGroupLogParameters parameters) - { - if (parameters.All) - { - EventDataListResponse listOfEvents = - EventsClient.EventData.ListEventsForResourceGroup(new ListEventsForResourceGroupParameters - { - ResourceGroupName = parameters.Name, - StartTime = DateTime.UtcNow - TimeSpan.FromDays(EventRetentionPeriod), - EndTime = DateTime.UtcNow - }); - return listOfEvents.EventDataCollection.Value.Select(e => e.ToPSDeploymentEventData()); - } - else if (!string.IsNullOrEmpty(parameters.DeploymentName)) - { - DeploymentGetResult deploymentGetResult; - try - { - deploymentGetResult = ResourceManagementClient.Deployments.Get(parameters.Name, - parameters.DeploymentName); - } - catch - { - throw new ArgumentException(string.Format(ProjectResources.DeploymentWithNameNotFound, parameters.DeploymentName)); - } +// /// +// /// Gets event logs. +// /// +// /// Input parameters +// /// Logs. +// public virtual IEnumerable GetResourceGroupLogs(GetPSResourceGroupLogParameters parameters) +// { +// if (parameters.All) +// { +// EventDataListResponse listOfEvents = +// EventsClient.EventData.ListEventsForResourceGroup(new ListEventsForResourceGroupParameters +// { +// ResourceGroupName = parameters.Name, +// StartTime = DateTime.UtcNow - TimeSpan.FromDays(EventRetentionPeriod), +// EndTime = DateTime.UtcNow +// }); +// return listOfEvents.EventDataCollection.Value.Select(e => e.ToPSDeploymentEventData()); +// } +// else if (!string.IsNullOrEmpty(parameters.DeploymentName)) +// { +// DeploymentGetResult deploymentGetResult; +// try +// { +// deploymentGetResult = ResourceManagementClient.Deployments.Get(parameters.Name, +// parameters.DeploymentName); +// } +// catch +// { +// throw new ArgumentException(string.Format(ProjectResources.DeploymentWithNameNotFound, parameters.DeploymentName)); +// } - return GetDeploymentLogs(deploymentGetResult.Deployment.Properties.CorrelationId); - } - else - { - DeploymentListResult deploymentListResult; - try - { - deploymentListResult = ResourceManagementClient.Deployments.List(parameters.Name, - new DeploymentListParameters - { - Top = 1 - }); - if (deploymentListResult.Deployments.Count == 0) - { - throw new ArgumentException(string.Format(ProjectResources.NoDeploymentWereFound, parameters.Name)); - } - } - catch - { - throw new ArgumentException(string.Format(ProjectResources.NoDeploymentWereFound, parameters.Name)); - } +// return GetDeploymentLogs(deploymentGetResult.Deployment.Properties.CorrelationId); +// } +// else +// { +// DeploymentListResult deploymentListResult; +// try +// { +// deploymentListResult = ResourceManagementClient.Deployments.List(parameters.Name, +// new DeploymentListParameters +// { +// Top = 1 +// }); +// if (deploymentListResult.Deployments.Count == 0) +// { +// throw new ArgumentException(string.Format(ProjectResources.NoDeploymentWereFound, parameters.Name)); +// } +// } +// catch +// { +// throw new ArgumentException(string.Format(ProjectResources.NoDeploymentWereFound, parameters.Name)); +// } - return GetDeploymentLogs(deploymentListResult.Deployments[0].Properties.CorrelationId); - } - } +// return GetDeploymentLogs(deploymentListResult.Deployments[0].Properties.CorrelationId); +// } +// } - /// - /// Gets event logs by tracking Id. - /// - /// CorrelationId Id of the deployment - /// Logs. - public virtual IEnumerable GetDeploymentLogs(string correlationId) - { - EventDataListResponse listOfEvents = EventsClient.EventData.ListEventsForCorrelationId(new ListEventsForCorrelationIdParameters - { - CorrelationId = correlationId, - StartTime = DateTime.UtcNow - TimeSpan.FromDays(EventRetentionPeriod), - EndTime = DateTime.UtcNow - }); - return listOfEvents.EventDataCollection.Value.Select(e => e.ToPSDeploymentEventData()); - } - } -} \ No newline at end of file +// /// +// /// Gets event logs by tracking Id. +// /// +// /// CorrelationId Id of the deployment +// /// Logs. +// public virtual IEnumerable GetDeploymentLogs(string correlationId) +// { +// EventDataListResponse listOfEvents = EventsClient.EventData.ListEventsForCorrelationId(new ListEventsForCorrelationIdParameters +// { +// CorrelationId = correlationId, +// StartTime = DateTime.UtcNow - TimeSpan.FromDays(EventRetentionPeriod), +// EndTime = DateTime.UtcNow +// }); +// return listOfEvents.EventDataCollection.Value.Select(e => e.ToPSDeploymentEventData()); +// } +// } +//} \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.ResourceManager.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.ResourceManager.cs index 999112c845b5..be43aa799efa 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.ResourceManager.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.ResourceManager.cs @@ -22,6 +22,7 @@ using Microsoft.Azure.Management.Resources.Models; using Microsoft.WindowsAzure; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; +using Hyak.Common; namespace Microsoft.Azure.Commands.Resources.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs index 6d93e9741201..68228bb5b593 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs @@ -26,7 +26,6 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; using Newtonsoft.Json; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; using Microsoft.Azure.Management.Authorization; @@ -34,6 +33,7 @@ using Microsoft.Azure.Commands.Resources.Models.Authorization; using System.Diagnostics; using Microsoft.Azure.Common.Extensions; +using Hyak.Common; namespace Microsoft.Azure.Commands.Resources.Models { @@ -50,7 +50,8 @@ public partial class ResourcesClient public GalleryTemplatesClient GalleryTemplatesClient { get; set; } - public IEventsClient EventsClient { get; set; } + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //public IEventsClient EventsClient { get; set; } public Action VerboseLogger { get; set; } @@ -66,7 +67,8 @@ public ResourcesClient(AzureContext context) : this( AzureSession.ClientFactory.CreateClient(context, AzureEnvironment.Endpoint.ResourceManager), new GalleryTemplatesClient(context), - AzureSession.ClientFactory.CreateClient(context, AzureEnvironment.Endpoint.ResourceManager), + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //AzureSession.ClientFactory.CreateClient(context, AzureEnvironment.Endpoint.ResourceManager), AzureSession.ClientFactory.CreateClient(context, AzureEnvironment.Endpoint.ResourceManager)) { @@ -81,12 +83,15 @@ public ResourcesClient(AzureContext context) public ResourcesClient( IResourceManagementClient resourceManagementClient, GalleryTemplatesClient galleryTemplatesClient, - IEventsClient eventsClient, + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //IEventsClient eventsClient, IAuthorizationManagementClient authorizationManagementClient) { ResourceManagementClient = resourceManagementClient; GalleryTemplatesClient = galleryTemplatesClient; - EventsClient = eventsClient; + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //EventsClient = eventsClient; AuthorizationManagementClient = authorizationManagementClient; } diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceIdentifier.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceIdentifier.cs index a54c06a88290..37c761b2511c 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceIdentifier.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceIdentifier.cs @@ -15,9 +15,9 @@ using System; using System.Collections.Generic; using System.Text; -using AuthorizationResourceIdentity = Microsoft.Azure.Management.Authorization.Models.ResourceIdentity; +using AuthorizationResourceIdentity = Microsoft.Azure.ResourceIdentity; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; -using ResourcesResourceIdentity = Microsoft.Azure.Management.Resources.Models.ResourceIdentity; +using ResourcesResourceIdentity = Microsoft.Azure.ResourceIdentity; namespace Microsoft.Azure.Commands.Resources.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs index bba855dffd90..bed68542d78a 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Commands.Resources.Models; using Microsoft.Azure.Common.Extensions; +using Hyak.Common; namespace Microsoft.Azure.Commands.Resources { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs index 2624717f4f1b..1d8f98b411f2 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs @@ -22,7 +22,6 @@ using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Resources.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events.Models; using Newtonsoft.Json; using Microsoft.Azure.Commands.Resources.Models.Authorization; using Microsoft.Azure.Management.Authorization.Models; @@ -137,70 +136,73 @@ public static PSGalleryItem ToPSGalleryItem(this GalleryItem gallery) return psGalleryItem; } - public static PSDeploymentEventData ToPSDeploymentEventData(this EventData eventData) - { - if (eventData == null) - { - return null; - } - PSDeploymentEventData psObject = new PSDeploymentEventData - { - Authorization = eventData.Authorization.ToPSDeploymentEventDataAuthorization(), - ResourceUri = eventData.ResourceUri, - SubscriptionId = eventData.SubscriptionId, - EventId = eventData.EventDataId, - EventName = eventData.EventName.LocalizedValue, - EventSource = eventData.EventSource.LocalizedValue, - Channels = eventData.EventChannels.ToString(), - Level = eventData.Level.ToString(), - Description = eventData.Description, - Timestamp = eventData.EventTimestamp, - OperationId = eventData.OperationId, - OperationName = eventData.OperationName.LocalizedValue, - Status = eventData.Status.LocalizedValue, - SubStatus = eventData.SubStatus.LocalizedValue, - Caller = GetEventDataCaller(eventData.Claims), - CorrelationId = eventData.CorrelationId, - ResourceGroupName = eventData.ResourceGroupName, - ResourceProvider = eventData.ResourceProviderName.LocalizedValue, - HttpRequest = eventData.HttpRequest.ToPSDeploymentEventDataHttpRequest(), - Claims = eventData.Claims, - Properties = eventData.Properties - }; - return psObject; - } - - public static PSDeploymentEventDataHttpRequest ToPSDeploymentEventDataHttpRequest(this HttpRequestInfo httpRequest) - { - if (httpRequest == null) - { - return null; - } - PSDeploymentEventDataHttpRequest psObject = new PSDeploymentEventDataHttpRequest - { - ClientId = httpRequest.ClientRequestId, - Method = httpRequest.Method, - Url = httpRequest.Uri, - ClientIpAddress = httpRequest.ClientIpAddress - }; - return psObject; - } - - public static PSDeploymentEventDataAuthorization ToPSDeploymentEventDataAuthorization(this SenderAuthorization authorization) - { - if (authorization == null) - { - return null; - } - PSDeploymentEventDataAuthorization psObject = new PSDeploymentEventDataAuthorization - { - Action = authorization.Action, - Role = authorization.Role, - Scope = authorization.Scope, - Condition = authorization.Condition - }; - return psObject; - } + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //public static PSDeploymentEventData ToPSDeploymentEventData(this EventData eventData) + //{ + // if (eventData == null) + // { + // return null; + // } + // PSDeploymentEventData psObject = new PSDeploymentEventData + // { + // Authorization = eventData.Authorization.ToPSDeploymentEventDataAuthorization(), + // ResourceUri = eventData.ResourceUri, + // SubscriptionId = eventData.SubscriptionId, + // EventId = eventData.EventDataId, + // EventName = eventData.EventName.LocalizedValue, + // EventSource = eventData.EventSource.LocalizedValue, + // Channels = eventData.EventChannels.ToString(), + // Level = eventData.Level.ToString(), + // Description = eventData.Description, + // Timestamp = eventData.EventTimestamp, + // OperationId = eventData.OperationId, + // OperationName = eventData.OperationName.LocalizedValue, + // Status = eventData.Status.LocalizedValue, + // SubStatus = eventData.SubStatus.LocalizedValue, + // Caller = GetEventDataCaller(eventData.Claims), + // CorrelationId = eventData.CorrelationId, + // ResourceGroupName = eventData.ResourceGroupName, + // ResourceProvider = eventData.ResourceProviderName.LocalizedValue, + // HttpRequest = eventData.HttpRequest.ToPSDeploymentEventDataHttpRequest(), + // Claims = eventData.Claims, + // Properties = eventData.Properties + // }; + // return psObject; + //} + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //public static PSDeploymentEventDataHttpRequest ToPSDeploymentEventDataHttpRequest(this HttpRequestInfo httpRequest) + //{ + // if (httpRequest == null) + // { + // return null; + // } + // PSDeploymentEventDataHttpRequest psObject = new PSDeploymentEventDataHttpRequest + // { + // ClientId = httpRequest.ClientRequestId, + // Method = httpRequest.Method, + // Url = httpRequest.Uri, + // ClientIpAddress = httpRequest.ClientIpAddress + // }; + // return psObject; + //} + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //public static PSDeploymentEventDataAuthorization ToPSDeploymentEventDataAuthorization(this SenderAuthorization authorization) + //{ + // if (authorization == null) + // { + // return null; + // } + // PSDeploymentEventDataAuthorization psObject = new PSDeploymentEventDataAuthorization + // { + // Action = authorization.Action, + // Role = authorization.Role, + // Scope = authorization.Scope, + // Condition = authorization.Condition + // }; + // return psObject; + //} public static string ConstructResourcesTable(List resources) { diff --git a/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupLogCommand.cs b/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupLogCommand.cs index 227b4bfa8a78..d8572700da5c 100644 --- a/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupLogCommand.cs +++ b/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupLogCommand.cs @@ -21,7 +21,8 @@ namespace Microsoft.Azure.Commands.Resources /// /// Get the list of events for a deployment. /// - [Cmdlet(VerbsCommon.Get, "AzureResourceGroupLog", DefaultParameterSetName = LastDeploymentSetName), OutputType(typeof(List))] + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //[Cmdlet(VerbsCommon.Get, "AzureResourceGroupLog", DefaultParameterSetName = LastDeploymentSetName), OutputType(typeof(List))] public class GetAzureResourceGroupLogCommand : ResourcesBaseCmdlet { internal const string AllSetName = "All"; @@ -50,7 +51,9 @@ public override void ExecuteCmdlet() DeploymentName = DeploymentName, All = All.IsPresent }; - WriteObject(ResourcesClient.GetResourceGroupLogs(parameters), true); + + // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 + //WriteObject(ResourcesClient.GetResourceGroupLogs(parameters), true); } } } \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.Resources/packages.config b/src/ResourceManager/Resources/Commands.Resources/packages.config index ed9cd2079ea5..20bd02c78906 100644 --- a/src/ResourceManager/Resources/Commands.Resources/packages.config +++ b/src/ResourceManager/Resources/Commands.Resources/packages.config @@ -1,16 +1,18 @@  - - - - - + + + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj b/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj index 0cd13b1779c8..dfda4645758f 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj +++ b/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj @@ -42,25 +42,32 @@ false - - False - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Management.Sql.0.14.3-prerelease\lib\net40\Microsoft.Azure.Management.Sql.dll + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll + + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll - - False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Sql.0.16.0-prerelease\lib\net40\Microsoft.Azure.Management.Sql.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -82,19 +89,11 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll - - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -146,10 +145,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs index de54e30bd5f6..f36e67e07d08 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs @@ -17,7 +17,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Storage; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using Microsoft.Azure.Common.Extensions; namespace Microsoft.Azure.Commands.ScenarioTest.SqlTests diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config index e071300410fb..42d2cb91ae76 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config +++ b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config @@ -1,19 +1,21 @@  - - - - - - + + + + + + + + + - - - + + diff --git a/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj b/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj index 5197bce544c7..ee3d99a36601 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj +++ b/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj @@ -87,13 +87,29 @@ + + False + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Sql.0.14.3-prerelease\lib\net40\Microsoft.Azure.Management.Sql.dll + ..\..\..\packages\Microsoft.Azure.Management.Sql.0.16.0-prerelease\lib\net40\Microsoft.Azure.Management.Sql.dll False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -104,29 +120,28 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll - + False - ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll False ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -161,10 +176,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Sql/Commands.Sql/packages.config b/src/ResourceManager/Sql/Commands.Sql/packages.config index bec74499d637..2f6f80a9e08f 100644 --- a/src/ResourceManager/Sql/Commands.Sql/packages.config +++ b/src/ResourceManager/Sql/Commands.Sql/packages.config @@ -1,19 +1,22 @@  - - + + + + + + + - - - - + + diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj index c6695d4763fd..27ae7dc6ccdc 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj @@ -39,27 +39,38 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + - ..\..\..\packages\Microsoft.Azure.Gallery.2.2.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - True + ..\..\..\packages\Microsoft.Azure.Gallery.2.6.0-preview\lib\net40\Microsoft.Azure.Gallery.dll - ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.11.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll + ..\..\..\packages\Microsoft.Azure.Management.Authorization.0.16.0-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll - ..\..\..\packages\Microsoft.Azure.Management.StreamAnalytics.0.12.1-preview\lib\net40\Microsoft.Azure.Management.StreamAnalytics.dll - - - ..\..\..\packages\Microsoft.Azure.Monitoring.2.2.0-preview\lib\net40\Microsoft.Azure.Monitoring.dll - True + ..\..\..\packages\Microsoft.Azure.Management.StreamAnalytics.0.14.0-preview\lib\net40\Microsoft.Azure.Management.StreamAnalytics.dll - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - True + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -80,26 +91,16 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - True - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False ..\..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll - False ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll @@ -134,10 +135,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs index 174343bac5e7..e2f357412b54 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs @@ -20,9 +20,8 @@ using Microsoft.Azure.Subscriptions; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Management.Monitoring.Events; using Microsoft.WindowsAzure.Management.Storage; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; namespace Microsoft.Azure.Commands.StreamAnalytics.Test { @@ -41,14 +40,12 @@ protected void SetupManagementClients() var resourceManagementClient = GetResourceManagementClient(); var subscriptionsClient = GetSubscriptionClient(); var galleryClient = GetGalleryClient(); - var eventsClient = GetEventsClient(); var authorizationManagementClient = GetAuthorizationManagementClient(); helper.SetupManagementClients(dataPipelineManagementClient, resourceManagementClient, subscriptionsClient, galleryClient, - eventsClient, authorizationManagementClient); } @@ -92,11 +89,6 @@ protected GalleryClient GetGalleryClient() return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); } - protected EventsClient GetEventsClient() - { - return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); - } - protected AuthorizationManagementClient GetAuthorizationManagementClient() { return TestBase.GetServiceClient(new CSMTestEnvironmentFactory()); diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config index 7f6f7c83d4f1..aa6737e3b631 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config @@ -1,20 +1,22 @@  - - - - - - - + + + + + + + + + + - - - + + diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/CloudExceptionExtensions.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/CloudExceptionExtensions.cs index d34a67ae7da5..256703e89a7a 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/CloudExceptionExtensions.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/CloudExceptionExtensions.cs @@ -17,6 +17,7 @@ using System.Globalization; using Microsoft.Azure.Commands.StreamAnalytics.Properties; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics { @@ -29,8 +30,8 @@ public static CloudException CreateFormattedException(this CloudException cloudE CultureInfo.InvariantCulture, Resources.FormattedCloudExceptionMessageTemplate, cloudException.Response.StatusCode, - cloudException.ErrorCode, - cloudException.ErrorMessage, + cloudException.Error.Code, + cloudException.Error.Message, cloudException.GetRequestId(), DateTime.UtcNow)); } diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj index 78b4c1b06911..ad7ec1ae6c11 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj @@ -48,17 +48,37 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.StreamAnalytics.0.12.1-preview\lib\net40\Microsoft.Azure.Management.StreamAnalytics.dll + ..\..\..\packages\Microsoft.Azure.Management.StreamAnalytics.0.14.0-preview\lib\net40\Microsoft.Azure.Management.StreamAnalytics.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll @@ -89,10 +109,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Inputs.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Inputs.cs index 0796045e8575..db9e55cf7ee9 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Inputs.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Inputs.cs @@ -20,6 +20,7 @@ using Microsoft.Azure.Management.StreamAnalytics; using Microsoft.Azure.Management.StreamAnalytics.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics.Models { @@ -159,7 +160,7 @@ public virtual PSInput CreatePSInput(CreatePSInputParameter parameter) public virtual HttpStatusCode RemovePSInput(string resourceGroupName, string jobName, string inputName) { - OperationResponse response = StreamAnalyticsManagementClient.Inputs.Delete(resourceGroupName, jobName, inputName); + AzureOperationResponse response = StreamAnalyticsManagementClient.Inputs.Delete(resourceGroupName, jobName, inputName); return response.StatusCode; } diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Jobs.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Jobs.cs index 28b59993a17e..37eb2b969f2a 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Jobs.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Jobs.cs @@ -20,6 +20,7 @@ using Microsoft.Azure.Management.StreamAnalytics; using Microsoft.Azure.Management.StreamAnalytics.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics.Models { @@ -172,7 +173,7 @@ public virtual PSJob CreatePSJob(CreatePSJobParameter parameter) public virtual HttpStatusCode StartPSJob(string resourceGroupName, string jobName) { - OperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Start(resourceGroupName, jobName); + AzureOperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Start(resourceGroupName, jobName); return response.StatusCode; } @@ -189,7 +190,7 @@ public virtual HttpStatusCode StartPSJob(JobParametersBase parameter) public virtual HttpStatusCode StopPSJob(string resourceGroupName, string jobName) { - OperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Stop(resourceGroupName, jobName); + AzureOperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Stop(resourceGroupName, jobName); return response.StatusCode; } @@ -206,7 +207,7 @@ public virtual HttpStatusCode StopPSJob(JobParametersBase parameter) public virtual HttpStatusCode RemovePSJob(string resourceGroupName, string jobName) { - OperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Delete(resourceGroupName, jobName); + AzureOperationResponse response = StreamAnalyticsManagementClient.StreamingJobs.Delete(resourceGroupName, jobName); return response.StatusCode; } diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Outputs.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Outputs.cs index e313e21254cc..2309239354ce 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Outputs.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Outputs.cs @@ -20,6 +20,7 @@ using Microsoft.Azure.Management.StreamAnalytics; using Microsoft.Azure.Management.StreamAnalytics.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics.Models { @@ -159,7 +160,7 @@ public virtual PSOutput CreatePSOutput(CreatePSOutputParameter parameter) public virtual HttpStatusCode RemovePSOutput(string resourceGroupName, string jobName, string outputName) { - OperationResponse response = StreamAnalyticsManagementClient.Outputs.Delete(resourceGroupName, jobName, outputName); + AzureOperationResponse response = StreamAnalyticsManagementClient.Outputs.Delete(resourceGroupName, jobName, outputName); return response.StatusCode; } diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Transformation.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Transformation.cs index ce08eca5de0d..8db917d86a42 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Transformation.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.Transformation.cs @@ -19,6 +19,7 @@ using Microsoft.Azure.Management.StreamAnalytics; using Microsoft.Azure.Management.StreamAnalytics.Models; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics.Models { diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsBaseCmdlet.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsBaseCmdlet.cs index 74691bf92359..d120a9543c23 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsBaseCmdlet.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsBaseCmdlet.cs @@ -18,6 +18,7 @@ using Microsoft.Azure.Commands.StreamAnalytics.Properties; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Hyak.Common; namespace Microsoft.Azure.Commands.StreamAnalytics { diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config index 13f6d3867e27..85d8cae6409d 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config @@ -1,11 +1,16 @@  - + + + + + + + - - + \ No newline at end of file diff --git a/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj b/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj index 7b4da8b9743b..9706839753af 100644 --- a/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj +++ b/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj @@ -48,9 +48,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.7.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll False @@ -72,13 +85,9 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll True - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -106,10 +115,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/Tags/Commands.Tags/packages.config b/src/ResourceManager/Tags/Commands.Tags/packages.config index cf130c809bb4..bdde83a6dc79 100644 --- a/src/ResourceManager/Tags/Commands.Tags/packages.config +++ b/src/ResourceManager/Tags/Commands.Tags/packages.config @@ -1,12 +1,15 @@  - + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj b/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj index cfd74729dd00..4451ed842965 100644 --- a/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj +++ b/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj @@ -47,6 +47,29 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -60,13 +83,8 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False diff --git a/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config b/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config index 493c62373189..1f37d4eeeaf3 100644 --- a/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config +++ b/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config @@ -1,11 +1,16 @@  + + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/Automation/Commands.Automation/Cmdlet/AzureAutomationBaseCmdlet.cs b/src/ServiceManagement/Automation/Commands.Automation/Cmdlet/AzureAutomationBaseCmdlet.cs index dae2c24f9c99..915e5347b8b1 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/Cmdlet/AzureAutomationBaseCmdlet.cs +++ b/src/ServiceManagement/Automation/Commands.Automation/Cmdlet/AzureAutomationBaseCmdlet.cs @@ -25,6 +25,7 @@ using Microsoft.Azure.Commands.Automation.Properties; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Hyak.Common; namespace Microsoft.Azure.Commands.Automation.Cmdlet { @@ -75,7 +76,7 @@ public override void ExecuteCmdlet() } catch (CloudException cloudException) { - if (string.IsNullOrEmpty(cloudException.ErrorCode) && string.IsNullOrEmpty(cloudException.ErrorMessage)) + if (string.IsNullOrEmpty(cloudException.Error.Code) && string.IsNullOrEmpty(cloudException.Error.Message)) { string message = this.ParseErrorMessage(cloudException.Response.Content); if (!string.IsNullOrEmpty(message)) diff --git a/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj b/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj index 76b33eb455a6..98665dcee4d1 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj +++ b/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj @@ -52,9 +52,33 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + False - ..\..\..\packages\Microsoft.Azure.Management.Automation.0.12.1-preview\lib\net40\Microsoft.Azure.Management.Automation.dll + ..\..\..\packages\Microsoft.Azure.Management.Automation.0.15.0-preview\lib\net40\Microsoft.Azure.Management.Automation.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll False @@ -68,13 +92,9 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -159,10 +179,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Automation/Commands.Automation/packages.config b/src/ServiceManagement/Automation/Commands.Automation/packages.config index c597ef88a040..0438ff07580b 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/packages.config +++ b/src/ServiceManagement/Automation/Commands.Automation/packages.config @@ -1,11 +1,16 @@  - + + + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/Commands.ServiceManagement.Extensions.Test.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/Commands.ServiceManagement.Extensions.Test.csproj index 6ddaa7a52ccc..46dd90cd9d83 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/Commands.ServiceManagement.Extensions.Test.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/Commands.ServiceManagement.Extensions.Test.csproj @@ -37,6 +37,29 @@ 4 + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -47,13 +70,16 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + + False + ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll + - - ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll - True - diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/packages.config index e8c5131c0544..bdde83a6dc79 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Extensions.Test/packages.config @@ -1,7 +1,15 @@  + + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj index bc6bc775eec0..e0f0df052783 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj @@ -59,6 +59,23 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -68,6 +85,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -80,28 +104,20 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/PublishAzurePlatformExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/PublishAzurePlatformExtension.cs index 0bc44bfc161e..5b60d6069921 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/PublishAzurePlatformExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/PublishAzurePlatformExtension.cs @@ -20,6 +20,8 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ExtensionPublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/SetAzurePlatformExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/SetAzurePlatformExtension.cs index 0e84dbb19824..8c34d7efcefb 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/SetAzurePlatformExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/SetAzurePlatformExtension.cs @@ -18,6 +18,7 @@ using AutoMapper; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ExtensionPublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/UnpublishAzurePlatformExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/UnpublishAzurePlatformExtension.cs index 703e769e0851..3be1a61c6f2b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/UnpublishAzurePlatformExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ExtensionPublishing/UnpublishAzurePlatformExtension.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ExtensionPublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/GetAzurePlatformVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/GetAzurePlatformVMImage.cs index 644c634fef0b..3f2cfc6245f2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/GetAzurePlatformVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/GetAzurePlatformVMImage.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/RemoveAzurePlatformVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/RemoveAzurePlatformVMImage.cs index 67f7e05d8968..5fcbb1a52b6c 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/RemoveAzurePlatformVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/RemoveAzurePlatformVMImage.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/SetAzurePlatformVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/SetAzurePlatformVMImage.cs index 119c44148cdc..d22a336311cb 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/SetAzurePlatformVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/ImagePublishing/SetAzurePlatformVMImage.cs @@ -19,6 +19,8 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config index c2db1baba761..2e1cd5f32f8f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config @@ -1,19 +1,23 @@  + + + + + + - - - - - + + + diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj index 7b8829ed0f50..2a595f90105a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj @@ -59,6 +59,23 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -68,6 +85,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -80,32 +104,24 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config index 9ac585e925be..ce92088d8fe7 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config @@ -1,20 +1,24 @@  + + + + + + - - - - - - + + + + diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj index af6bed8d34bd..ba19d707f6bf 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj @@ -53,6 +53,22 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -82,31 +98,20 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -476,10 +481,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs index 0d9d3c02922f..728b2b2104a5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs @@ -28,6 +28,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests.ConfigDataInfo; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config index 0a7ec7bb6770..a7b8f0f1819b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config @@ -1,6 +1,11 @@  + + + + + @@ -9,13 +14,11 @@ - - - - - - + + + + diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/GetAzureAffinityGroup.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/GetAzureAffinityGroup.cs index 6a29b89d92d7..038163369a8b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/GetAzureAffinityGroup.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/GetAzureAffinityGroup.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Models; +using Microsoft.WindowsAzure.Management; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.AffinityGroups { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/NewAzureAffinityGroup.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/NewAzureAffinityGroup.cs index dad4f06d3115..158efa3de0e5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/NewAzureAffinityGroup.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/NewAzureAffinityGroup.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.AffinityGroups diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/RemoveAzureAffinityGroup.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/RemoveAzureAffinityGroup.cs index c0b81b546976..aabda9f32e14 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/RemoveAzureAffinityGroup.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/RemoveAzureAffinityGroup.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.AffinityGroups { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/SetAzureAffinityGroup.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/SetAzureAffinityGroup.cs index 867e6e9ab66c..f25990392975 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/SetAzureAffinityGroup.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/AffinityGroups/SetAzureAffinityGroup.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Models; +using Microsoft.WindowsAzure.Management; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.AffinityGroups { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/AddAzureCertificate.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/AddAzureCertificate.cs index 3ce2f72ec8ef..8a33d14170b3 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/AddAzureCertificate.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/AddAzureCertificate.cs @@ -17,6 +17,7 @@ using System.Security.Permissions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Certificates diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/GetAzureCertificate.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/GetAzureCertificate.cs index c4ecb0c24c3a..43d16624c613 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/GetAzureCertificate.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/GetAzureCertificate.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Certificates { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/RemoveAzureCertificate.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/RemoveAzureCertificate.cs index 0005061093db..5a016055def9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/RemoveAzureCertificate.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Certificates/RemoveAzureCertificate.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Certificates diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj index 6dd3df82b68a..edf24aebccc9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj @@ -61,6 +61,23 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -70,6 +87,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -82,31 +106,24 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -500,10 +517,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/BaseAzureServiceADDomainExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/BaseAzureServiceADDomainExtension.cs index c7ec65afff17..df3eb288dcdb 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/BaseAzureServiceADDomainExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/BaseAzureServiceADDomainExtension.cs @@ -13,6 +13,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions.ADDomain; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/GetAzureServiceADDomainExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/GetAzureServiceADDomainExtension.cs index b8ce0481d04d..b87fb316d6f9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/GetAzureServiceADDomainExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/ADDomain/GetAzureServiceADDomainExtension.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/BaseAzureServiceExtensionCmdlet.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/BaseAzureServiceExtensionCmdlet.cs index 6ade3a1399b2..597f18fb8096 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/BaseAzureServiceExtensionCmdlet.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/BaseAzureServiceExtensionCmdlet.cs @@ -23,7 +23,10 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/ExtensionManager.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/ExtensionManager.cs index e0434bd4c65d..48cd05446b6a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/ExtensionManager.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/ExtensionManager.cs @@ -19,6 +19,7 @@ using System.Security.Cryptography.X509Certificates; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceAvailableExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceAvailableExtension.cs index 3caa7d119023..8ce2180944fb 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceAvailableExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceAvailableExtension.cs @@ -16,6 +16,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceExtension.cs index 429e8908a7cf..b753b061a10a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Common/GetAzureServiceExtension.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs index ec7e39873270..ebcbea4ef755 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs @@ -14,7 +14,9 @@ using System.Xml; using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.Common.Storage; +using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/GetAzureServiceDiagnosticsExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/GetAzureServiceDiagnosticsExtension.cs index 816f45611189..5a5989171958 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/GetAzureServiceDiagnosticsExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/GetAzureServiceDiagnosticsExtension.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/BaseAzureServiceAntimalwareExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/BaseAzureServiceAntimalwareExtension.cs index 87a78212edfe..17bac8c18e11 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/BaseAzureServiceAntimalwareExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/BaseAzureServiceAntimalwareExtension.cs @@ -19,9 +19,11 @@ using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { @@ -43,79 +45,79 @@ public abstract class BaseAzureServiceAntimalwareExtensionCmdlet : BaseAzureServ protected const string AntimalwareConfigurationXsd = @" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "; // diagnostics diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/GetAzureServiceAntimalwareExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/GetAzureServiceAntimalwareExtension.cs index 640334859975..a65eda483b12 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/GetAzureServiceAntimalwareExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/MicrosoftAntimalware/GetAzureServiceAntimalwareExtension.cs @@ -16,6 +16,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/RDP/GetAzureServiceRemoteDesktopExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/RDP/GetAzureServiceRemoteDesktopExtension.cs index 4c1cd0aef63f..e41c17bc5ca2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/RDP/GetAzureServiceRemoteDesktopExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/RDP/GetAzureServiceRemoteDesktopExtension.cs @@ -12,9 +12,10 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using System.Linq; using System.Management.Automation; -using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Helpers/VirtualMachineImageHelper.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Helpers/VirtualMachineImageHelper.cs index 89eb27f3fa99..5a1072fcb8f9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Helpers/VirtualMachineImageHelper.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Helpers/VirtualMachineImageHelper.cs @@ -17,6 +17,7 @@ using System.Net; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Management.Compute; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeployment.cs index 6ab5a6734609..3a1ab23369f4 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeployment.cs @@ -16,6 +16,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeploymentEvent.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeploymentEvent.cs index 647bb12acf0f..479128d1f758 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeploymentEvent.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureDeploymentEvent.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureLocation.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureLocation.cs index 2a48d1952df0..b95fa6461fb8 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureLocation.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureLocation.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Models; +using Microsoft.WindowsAzure.Management; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureOSVersion.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureOSVersion.cs index 9df4b4a037c7..36a42b98dfe3 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureOSVersion.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureOSVersion.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureRole.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureRole.cs index 5f85385cd553..ffcba8579954 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureRole.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureRole.cs @@ -21,11 +21,13 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { using PVM = Model; + using Microsoft.Azure; [Cmdlet(VerbsCommon.Get, "AzureRole"), OutputType(typeof(PVM.RoleContext), typeof(PVM.RoleInstanceContext))] public class GetAzureRoleCommand : ServiceManagementBaseCmdlet diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureService.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureService.cs index f43d6de3f0e2..c00b1ebc3e36 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureService.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/GetAzureService.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/MoveAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/MoveAzureDeployment.cs index 82be87f60022..b01da3dfcb3b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/MoveAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/MoveAzureDeployment.cs @@ -17,7 +17,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs index a87cf667d1e7..9dce70e2c3ac 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs @@ -22,10 +22,12 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { using PVM = Model; + using Hyak.Common; /// /// Create a new deployment. Note that there shouldn't be a deployment diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureService.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureService.cs index a7c12cf9c5f1..3f5edeb979a4 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureService.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureService.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/RemoveAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/RemoveAzureDeployment.cs index 5d56ce3a484b..893db19a6af8 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/RemoveAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/RemoveAzureDeployment.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/ResetAzureRoleInstance.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/ResetAzureRoleInstance.cs index 3396b8d7be74..1db59aa2dd07 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/ResetAzureRoleInstance.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/ResetAzureRoleInstance.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs index 4fdc9c4c49fc..fa2b277cbc8e 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs @@ -21,6 +21,8 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureRole.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureRole.cs index a21137275f0a..ba7bdb099e74 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureRole.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureRole.cs @@ -19,7 +19,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureService.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureService.cs index c9f35ba29c15..4af7c54f77d3 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureService.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureService.cs @@ -16,6 +16,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureWalkUpgradeDomain.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureWalkUpgradeDomain.cs index a31b17c84130..30f92877f445 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureWalkUpgradeDomain.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureWalkUpgradeDomain.cs @@ -16,6 +16,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureDisk.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureDisk.cs index ba81494c4bd7..414967f68808 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureDisk.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureDisk.cs @@ -16,6 +16,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureVMImage.cs index 33ec1435b200..44dd6713f78e 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/AddAzureVMImage.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.DiskRepository diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureDisk.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureDisk.cs index 7587f0bcb043..2940e676d8b6 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureDisk.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureDisk.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureVMImage.cs index 4df01afc0a97..557e0b9f56ce 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/GetAzureVMImage.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.DiskRepository { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureDisk.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureDisk.cs index ae72aacb89bc..40756f84c43a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureDisk.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureDisk.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureVMImage.cs index 43a90b9838bf..09724353b4d5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/RemoveAzureVMImage.cs @@ -17,6 +17,8 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.DiskRepository { @@ -51,7 +53,7 @@ protected override void OnProcessRecord() this.CommandRuntime.ToString(), () => { - OperationResponse op = null; + AzureOperationResponse op = null; var imageType = new VirtualMachineImageHelper(this.ComputeClient).GetImageType(this.ImageName); bool isOSImage = imageType.HasFlag(VirtualMachineImageType.OSImage); diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureDisk.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureDisk.cs index a4df2ab42c07..d6858b714571 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureDisk.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureDisk.cs @@ -15,6 +15,8 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Storage.Models; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureVMImage.cs index 070848441ba9..1b40f28d6355 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/DiskRepository/UpdateAzureVMImage.cs @@ -20,6 +20,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.DiskRepository diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Endpoints/SetAzureLoadBalancedEndpoint.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Endpoints/SetAzureLoadBalancedEndpoint.cs index 5a91e86b088e..689b59c196c1 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Endpoints/SetAzureLoadBalancedEndpoint.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Endpoints/SetAzureLoadBalancedEndpoint.cs @@ -17,8 +17,10 @@ using System.Linq; using System.Management.Automation; using AutoMapper; +using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Endpoints { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs index 246196cfa6f9..f3ad201b4a80 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs @@ -16,8 +16,10 @@ using System; using System.IO; using System.Text.RegularExpressions; +using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/GetAzureVMAvailableExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/GetAzureVMAvailableExtension.cs index 4a296001a587..be39aba0932c 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/GetAzureVMAvailableExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/GetAzureVMAvailableExtension.cs @@ -16,6 +16,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs index 23167af9a292..c39ca7ba484b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs @@ -17,12 +17,14 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; +using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; using Microsoft.Azure.Common.Extensions; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/ServiceManagementBaseCmdletExtentions.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/ServiceManagementBaseCmdletExtentions.cs index 05233b2f906d..e79fd87c7d8f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/ServiceManagementBaseCmdletExtentions.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/ServiceManagementBaseCmdletExtentions.cs @@ -20,6 +20,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Storage.Auth; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.DSC { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Diagnostics/SetAzureVMDiagnosticsExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Diagnostics/SetAzureVMDiagnosticsExtension.cs index 8886bb05ada9..7d2a7fc1d621 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Diagnostics/SetAzureVMDiagnosticsExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Diagnostics/SetAzureVMDiagnosticsExtension.cs @@ -20,6 +20,7 @@ using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/MicrosoftAntimalware/VirtualMachineMicrosoftAntimalwareExtensionCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/MicrosoftAntimalware/VirtualMachineMicrosoftAntimalwareExtensionCmdletBase.cs index 31f813f229c6..81b1b92bf25b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/MicrosoftAntimalware/VirtualMachineMicrosoftAntimalwareExtensionCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/MicrosoftAntimalware/VirtualMachineMicrosoftAntimalwareExtensionCmdletBase.cs @@ -25,6 +25,7 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.Micr using WindowsAzure.Storage.Auth; using Newtonsoft.Json.Schema; using Newtonsoft.Json.Linq; + using Microsoft.WindowsAzure.Management.Storage; public class VirtualMachineMicrosoftAntimalwareExtensionCmdletBase : VirtualMachineExtensionCmdletBase { @@ -42,32 +43,32 @@ public class VirtualMachineMicrosoftAntimalwareExtensionCmdletBase : VirtualMach ""runtimeSettings"": [{ ""handlerSettings"": { ""publicSettings"": { - ""title"": ""MicrosoftAntimalwareConfig"", + ""title"": ""MicrosoftAntimalwareConfig"", ""description"": ""Microsoft Antimalware Configuration"", - ""type"": ""object"", - ""properties"": { - ""AntimalwareEnabled"": { ""type"": ""boolean"", ""required"" : true }, - ""RealtimeProtectionEnabled"": { ""type"": ""boolean"" }, - ""ScheduledScanSettings"": { - ""type"": ""object"", - ""properties"": { - ""isEnabled"": { ""type"": ""boolean""}, - ""day"": {""type"": ""integer""}, - ""time"": {""type"": ""integer""}, - ""scanType"": {""type"": ""string""} - }, + ""type"": ""object"", + ""properties"": { + ""AntimalwareEnabled"": { ""type"": ""boolean"", ""required"" : true }, + ""RealtimeProtectionEnabled"": { ""type"": ""boolean"" }, + ""ScheduledScanSettings"": { + ""type"": ""object"", + ""properties"": { + ""isEnabled"": { ""type"": ""boolean""}, + ""day"": {""type"": ""integer""}, + ""time"": {""type"": ""integer""}, + ""scanType"": {""type"": ""string""} + }, ""additionalProperties"": false - }, - ""Exclusions"": { - ""type"": ""object"", - ""properties"": { - ""Extensions"": {""type"": ""string""}, - ""Paths"": {""type"": ""string""}, - ""Processes"": {""type"": ""string""} - }, + }, + ""Exclusions"": { + ""type"": ""object"", + ""properties"": { + ""Extensions"": {""type"": ""string""}, + ""Paths"": {""type"": ""string""}, + ""Processes"": {""type"": ""string""} + }, ""additionalProperties"": false - }, - }, + }, + }, ""additionalProperties"": false } } diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/GetAzureVMSqlServerExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/GetAzureVMSqlServerExtension.cs index c179bbcbd5e4..486ee3ca2f4e 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/GetAzureVMSqlServerExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/GetAzureVMSqlServerExtension.cs @@ -12,18 +12,21 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Management.Automation; -using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; +using System.Net; using Newtonsoft.Json; +using Microsoft.WindowsAzure.Commands.ServiceManagement; +using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; -using System.Collections.Generic; -using System.Net; -using System.Globalization; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { using NSM = Management.Compute.Models; + using Hyak.Common; /// /// Get-AzureVMSqlServerExtension implementation diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/NewAzureVMSqlServerAutoBackupConfig.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/NewAzureVMSqlServerAutoBackupConfig.cs index dd361d54199f..ba210d00758a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/NewAzureVMSqlServerAutoBackupConfig.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/NewAzureVMSqlServerAutoBackupConfig.cs @@ -24,6 +24,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/SetAzureVMSqlServerExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/SetAzureVMSqlServerExtension.cs index 42177ad9f257..fbce66eab59a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/SetAzureVMSqlServerExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/SetAzureVMSqlServerExtension.cs @@ -16,9 +16,13 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common.Storage; +using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using System.Net; +using Microsoft.WindowsAzure.Management.Compute; +using Microsoft.WindowsAzure.Management; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/IaaSDeploymentManagementCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/IaaSDeploymentManagementCmdletBase.cs index 0bd748cb9a7b..7bf76be3cf08 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/IaaSDeploymentManagementCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/IaaSDeploymentManagementCmdletBase.cs @@ -22,6 +22,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; +using Microsoft.WindowsAzure.Management.Compute; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureDns.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureDns.cs index 868c139f6620..ee6d66bb49e2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureDns.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureDns.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Network { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureInternalLoadBalancer.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureInternalLoadBalancer.cs index ab56fd33c076..a00efbb15950 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureInternalLoadBalancer.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/AddAzureInternalLoadBalancer.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using System.Net; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureInternalLoadBalancer.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureInternalLoadBalancer.cs index c00e6b47cc1b..7e79378b4a3d 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureInternalLoadBalancer.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureInternalLoadBalancer.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureReservedIP.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureReservedIP.cs index f268878ddddb..c3ccaf6c8060 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureReservedIP.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureReservedIP.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Network.Models; +using Microsoft.WindowsAzure.Management.Network; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetConfig.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetConfig.cs index b7b19458176c..02731ff680d2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetConfig.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetConfig.cs @@ -16,9 +16,11 @@ using System.IO; using System.Management.Automation; using System.Net; +using Hyak.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Network; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetSite.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetSite.cs index 4afc53af5276..3b665bd54e35 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetSite.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/GetAzureVNetSite.cs @@ -21,7 +21,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Network.Models; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/NewAzureReservedIP.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/NewAzureReservedIP.cs index 9806a32e84db..8f18ba394a17 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/NewAzureReservedIP.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/NewAzureReservedIP.cs @@ -16,6 +16,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Network.Models; +using Microsoft.WindowsAzure.Management.Network; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureDns.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureDns.cs index 80c961cce520..dc6f249b129a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureDns.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureDns.cs @@ -16,6 +16,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Store; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Network diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureInternalLoadBalancer.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureInternalLoadBalancer.cs index a7fc9b7a0db6..332fd79e6b81 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureInternalLoadBalancer.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureInternalLoadBalancer.cs @@ -17,6 +17,8 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { @@ -39,7 +41,7 @@ protected override void OnProcessRecord() CommandRuntime.ToString(), () => { - OperationResponse op = null; + AzureOperationResponse op = null; var deployment = this.ComputeClient.Deployments.GetBySlot(this.ServiceName, DeploymentSlot.Production); if (deployment.LoadBalancers != null && deployment.LoadBalancers.Any()) { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureReservedIP.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureReservedIP.cs index a15d45301c56..26d431957428 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureReservedIP.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureReservedIP.cs @@ -16,6 +16,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Network; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureVNetConfig.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureVNetConfig.cs index 1b49e9f10e17..f0f13bf7d5d8 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureVNetConfig.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/RemoveAzureVNetConfig.cs @@ -17,6 +17,7 @@ using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Network.Models; +using Microsoft.WindowsAzure.Management.Network; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureDns.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureDns.cs index 0a7188e9475d..6b5c63d9ff48 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureDns.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureDns.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Network { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureInternalLoadBalancer.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureInternalLoadBalancer.cs index 5f5c40265bcc..097d2c1ee54e 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureInternalLoadBalancer.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureInternalLoadBalancer.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using System.Net; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureVNetConfig.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureVNetConfig.cs index 83b8f5640b84..9dd88a6383d8 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureVNetConfig.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/SetAzureVNetConfig.cs @@ -17,6 +17,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Network.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/TestAzureStaticVNetIP.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/TestAzureStaticVNetIP.cs index 9d6f02ab8d35..da6ee1bf3a9f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/TestAzureStaticVNetIP.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Network/TestAzureStaticVNetIP.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Network.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureRemoteDesktopFile.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureRemoteDesktopFile.cs index 09cbd3754521..b026198758f9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureRemoteDesktopFile.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureRemoteDesktopFile.cs @@ -20,6 +20,7 @@ using System.Security.Permissions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureVM.cs index 4ee86ed627b7..d927cd6df07a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/GetAzureVM.cs @@ -20,8 +20,10 @@ using System.Management.Automation; using System.Net; using AutoMapper; +using Hyak.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; +using Microsoft.WindowsAzure.Management.Compute; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs index fe3ff8b244fa..89547a2adc39 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs @@ -28,11 +28,14 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; using Microsoft.WindowsAzure.Storage; using ConfigurationSet = Microsoft.WindowsAzure.Commands.ServiceManagement.Model.ConfigurationSet; using InputEndpoint = Microsoft.WindowsAzure.Commands.ServiceManagement.Model.InputEndpoint; using OSVirtualHardDisk = Microsoft.WindowsAzure.Commands.ServiceManagement.Model.OSVirtualHardDisk; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs index 18678c8dc634..e68837914729 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs @@ -23,7 +23,10 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Storage; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs { @@ -190,7 +193,7 @@ public void NewAzureVMProcess() } catch (CloudException ex) { - if (string.Equals(ex.ErrorCode, "ConflictError")) + if (string.Equals(ex.Error.Code, "ConflictError")) { HostedServiceGetResponse existingService = this.ComputeClient.HostedServices.Get(this.ServiceName); @@ -207,7 +210,7 @@ public void NewAzureVMProcess() { // The same service name is already created under the same subscription, // and its affinity group or location is matched with the given parameter. - this.WriteWarning(ex.ErrorMessage); + this.WriteWarning(ex.Error.Message); } else { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RemoveAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RemoveAzureVM.cs index a89edb11d806..5784f1d24125 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RemoveAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RemoveAzureVM.cs @@ -18,6 +18,8 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.WindowsAzure.Management.Compute; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { @@ -69,7 +71,7 @@ protected override void ExecuteCommand() WriteVerboseWithTimestamp(string.Format(Resources.ReservedIPNameNoLongerInUseByDeletingLastVMButStillBeingReserved, deploymentGetResponse.ReservedIPName)); } - ExecuteClientActionNewSM( + ExecuteClientActionNewSM( null, CommandRuntime.ToString(), () => this.ComputeClient.Deployments.DeleteByName(this.ServiceName, CurrentDeploymentNewSM.Name, DeleteVHD.IsPresent)); diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RestartAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RestartAzureVM.cs index 7c4a506b3569..fcae05e2fdc1 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RestartAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/RestartAzureVM.cs @@ -16,6 +16,8 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/SaveAzureVMImage.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/SaveAzureVMImage.cs index 1b9ffbd070fe..fc413f6245f6 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/SaveAzureVMImage.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/SaveAzureVMImage.cs @@ -18,7 +18,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StartAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StartAzureVM.cs index 2ee5e199f439..4c52a43dc607 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StartAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StartAzureVM.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StopAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StopAzureVM.cs index d8f41605c07a..7ffcc9074a8c 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StopAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/StopAzureVM.cs @@ -19,7 +19,9 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs index 95f00ff5e63e..de7a15577691 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs @@ -21,8 +21,10 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; using Microsoft.WindowsAzure.Storage; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/RoleSizes/GetAzureRoleSize.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/RoleSizes/GetAzureRoleSize.cs index ccc4ece9de8a..f581fc021634 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/RoleSizes/GetAzureRoleSize.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/RoleSizes/GetAzureRoleSize.cs @@ -17,6 +17,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.HostedServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/ServiceManagementProfile.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/ServiceManagementProfile.cs index 6a50fcb1408c..8a348ef17f8d 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/ServiceManagementProfile.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/ServiceManagementProfile.cs @@ -31,6 +31,7 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement using NSM = Management.Compute.Models; using NVM = Management.Network.Models; using PVM = Model; + using Microsoft.Azure; public static class ServiceManagementMapperExtension { @@ -327,7 +328,7 @@ protected override void Configure() .ForMember(c => c.Vip, o => o.MapFrom(r => r.VirtualIPAddress)); //Common mapping - Mapper.CreateMap() + Mapper.CreateMap() .ForMember(c => c.OperationId, o => o.MapFrom(r => r.RequestId)) .ForMember(c => c.OperationStatus, o => o.MapFrom(r => r.StatusCode.ToString())); diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageAccount.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageAccount.cs index a8c448153127..0a47020db806 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageAccount.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageAccount.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Storage.Models; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageKey.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageKey.cs index 966b1a6fb493..2bc5ea961042 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageKey.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/GetAzureStorageKey.cs @@ -16,6 +16,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Storage.Models; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageAccount.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageAccount.cs index a86c86a75744..3a8c13153059 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageAccount.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageAccount.cs @@ -14,6 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.Storage.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageKey.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageKey.cs index 4788a85c3893..1b95564ba060 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageKey.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/NewAzureStorageKey.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Storage.Models; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/RemoveAzureStorageAccount.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/RemoveAzureStorageAccount.cs index 19b105be0b65..452db85d1fe0 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/RemoveAzureStorageAccount.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/RemoveAzureStorageAccount.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SaveAzureVhdCommand.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SaveAzureVhdCommand.cs index 0e5cf34605c5..f979ca6ea8ce 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SaveAzureVhdCommand.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SaveAzureVhdCommand.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Sync.Download; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SetAzureStorageAccount.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SetAzureStorageAccount.cs index 24a8ef4e0e6e..b07081fa5da6 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SetAzureStorageAccount.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/SetAzureStorageAccount.cs @@ -15,6 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.Storage.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config index 9ac585e925be..ce92088d8fe7 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config @@ -1,20 +1,24 @@  + + + + + + - - - - - - + + + + diff --git a/src/ServiceManagement/Compute/Sync/Upload/ExtensionMethods.cs b/src/ServiceManagement/Compute/Sync/Upload/ExtensionMethods.cs index 64e6253a7553..4da61052ed99 100644 --- a/src/ServiceManagement/Compute/Sync/Upload/ExtensionMethods.cs +++ b/src/ServiceManagement/Compute/Sync/Upload/ExtensionMethods.cs @@ -212,7 +212,7 @@ public static string DumpStorageExceptionErrorDetails(StorageException storageEx var message = new StringBuilder(); message.AppendLine("StorageException details"); - message.Append("ErrorCode:").AppendLine(storageException.RequestInformation.ExtendedErrorInformation.ErrorCode); + message.Append("Error.Code:").AppendLine(storageException.RequestInformation.ExtendedErrorInformation.ErrorCode); message.Append("ErrorMessage:").AppendLine(storageException.RequestInformation.ExtendedErrorInformation.ErrorMessage); foreach (var key in storageException.RequestInformation.ExtendedErrorInformation.AdditionalDetails.Keys) { diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj index 66268195ceec..a8b0fbada5a1 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj @@ -41,6 +41,30 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -53,17 +77,13 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False - ..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -149,10 +169,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs index a8d9340e11d3..22a67f9b9ed4 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs @@ -15,7 +15,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; -using Microsoft.WindowsAzure.Common; +using Microsoft.Azure.Common; namespace Microsoft.WindowsAzure.Commands.ExpressRoute { @@ -27,6 +27,7 @@ namespace Microsoft.WindowsAzure.Commands.ExpressRoute using Utilities.Common; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; public class ExpressRouteClient diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config index 2229a2a14dca..d4e8dbc49ceb 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config @@ -1,11 +1,16 @@  + + + + + + - - - + + \ No newline at end of file diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj index fad22f253ca0..40d1ef4d94b0 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj @@ -41,6 +41,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -56,6 +72,13 @@ ..\..\..\packages\Microsoft.Hadoop.Client.1.3.3.2\lib\net40\Microsoft.HDInsight.Net.Http.Formatting.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -66,17 +89,12 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.HDInsight.1.3.3.2\lib\net40\Microsoft.WindowsAzure.Management.HDInsight.dll @@ -209,10 +227,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config index c33660e0c70c..91d551eb0fa6 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config @@ -1,5 +1,10 @@  + + + + + @@ -7,10 +12,10 @@ + - - + diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj b/src/ServiceManagement/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj index a9ccabd2e293..786ed2f06e50 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj @@ -47,6 +47,26 @@ false + + False + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -62,6 +82,13 @@ ..\..\..\packages\Microsoft.Hadoop.Client.1.3.3.2\lib\net40\Microsoft.HDInsight.Net.Http.Formatting.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -71,17 +98,13 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.HDInsight.1.3.3.2\lib\net40\Microsoft.WindowsAzure.Management.HDInsight.dll @@ -322,10 +345,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config b/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config index 105f7505faea..a59c5846574c 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config @@ -1,5 +1,10 @@  + + + + + @@ -7,10 +12,10 @@ + - - + diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj index 263a10a59f99..fd297a903b9c 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj @@ -38,9 +38,27 @@ 4 - + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -72,17 +90,8 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll False @@ -160,10 +169,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTests.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTests.cs index b4fa1f56cf2b..84fd8b71c8de 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTests.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTests.cs @@ -13,7 +13,6 @@ // ---------------------------------------------------------------------------------- using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Testing; using Xunit; namespace Microsoft.Azure.Commands.ManagedCache.Test.ScenarioTests diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs index 77de25285d93..ddeb5726923a 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs @@ -14,9 +14,9 @@ using Microsoft.Azure.Common.Extensions; using Microsoft.Azure.Management.ManagedCache; +using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Testing; namespace Microsoft.Azure.Commands.ManagedCache.Test.ScenarioTests { diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config index 03ff9e41503d..7c4ab8c1b5b2 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config @@ -1,7 +1,12 @@  - - + + + + + + + @@ -10,8 +15,7 @@ - - + diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj index 6191b85ddc9e..4625783942d3 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj @@ -41,6 +41,23 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -50,6 +67,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -62,17 +86,13 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll True @@ -106,7 +126,6 @@ - @@ -138,10 +157,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {CD5AA507-F5EF-473D-855B-84B91A1ABE54} Commands diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs index a2638475cde2..643845b11c17 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs @@ -27,6 +27,7 @@ using Microsoft.Azure.Common.Extensions.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Common.Extensions; +using Hyak.Common; namespace Microsoft.Azure.Commands.ManagedCache { @@ -428,7 +429,7 @@ private string EnsureCloudServiceExists(string subscriptionId, string location) parameters.GeoRegion = location; parameters.Description = cloudServiceName; parameters.Label = cloudServiceName; - OperationResponse response = client.CloudServices.Create(cloudServiceName, parameters); + AzureOperationResponse response = client.CloudServices.Create(cloudServiceName, parameters); } return cloudServiceName; } diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.Customization.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.Customization.cs deleted file mode 100644 index 29c3bfc34a87..000000000000 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.Customization.cs +++ /dev/null @@ -1,70 +0,0 @@ -// -// Copyright (c) Microsoft. All rights reserved. -// -// 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.Net.Http; -using Microsoft.Azure.Management.ManagedCache; -using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Common; -using Microsoft.WindowsAzure.Common.Internals; - -namespace Microsoft.Azure -{ - public static class ManagedCacheDiscoveryExtensions - { - public static ManagedCacheClient CreateManagedCacheManagementClient(this CloudClients clients, SubscriptionCloudCredentials credentials) - { - return new ManagedCacheClient(credentials); - } - - public static ManagedCacheClient CreateManagedCacheManagementClient(this CloudClients clients, SubscriptionCloudCredentials credentials, Uri baseUri) - { - return new ManagedCacheClient(credentials, baseUri); - } - - public static ManagedCacheClient CreateManagedCacheClient(this CloudClients clients) - { - return ConfigurationHelper.CreateFromSettings(ManagedCacheClient.Create); - } - } -} - -namespace Microsoft.Azure.Management.ManagedCache -{ - public partial class ManagedCacheClient - { - public static ManagedCacheClient Create(IDictionary settings) - { - if (settings == null) - { - throw new ArgumentNullException("settings"); - } - - SubscriptionCloudCredentials credentials = ConfigurationHelper.GetCredentials(settings); - - Uri baseUri = ConfigurationHelper.GetUri(settings, "BaseUri", false); - - return baseUri != null ? - new ManagedCacheClient(credentials, baseUri) : - new ManagedCacheClient(credentials); - } - - public override ManagedCacheClient WithHandler(DelegatingHandler handler) - { - return (ManagedCacheClient)WithHandler(new ManagedCacheClient(), handler); - } - } -} diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.cs index 9112b359d02d..4b34aedca965 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/lib/ManagedCacheClient.cs @@ -30,11 +30,11 @@ using System.Threading; using System.Threading.Tasks; using System.Xml.Linq; +using Hyak.Common; +using Hyak.Common.Internals; +using Microsoft.Azure; using Microsoft.Azure.Management.ManagedCache; using Microsoft.Azure.Management.ManagedCache.Models; -using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Common; -using Microsoft.WindowsAzure.Common.Internals; namespace Microsoft.Azure.Management.ManagedCache.Models { @@ -139,7 +139,7 @@ public enum CacheServiceSkuType /// A standard service response including an HTTP status code and request /// ID. /// - public partial class CachingKeysResponse : OperationResponse + public partial class CachingKeysResponse : AzureOperationResponse { private string _primary; @@ -175,7 +175,7 @@ public CachingKeysResponse() /// A standard service response including an HTTP status code and request /// ID. /// - public partial class CheckCacheNameAvailabilityResponse : OperationResponse + public partial class CheckCacheNameAvailabilityResponse : AzureOperationResponse { private bool _available; @@ -280,7 +280,7 @@ public CloudServiceCreateParameters(string label, string description, string geo /// /// Information about a retrieved Cloud Service. /// - public partial class CloudServiceGetResponse : OperationResponse + public partial class CloudServiceGetResponse : AzureOperationResponse { private string _geoLocation; @@ -309,14 +309,14 @@ public IList Resources /// public CloudServiceGetResponse() { - this.Resources = new List(); + this.Resources = new LazyList(); } } /// /// The response structure for the Cloud Service List operation. /// - public partial class CloudServiceListResponse : OperationResponse, IEnumerable + public partial class CloudServiceListResponse : AzureOperationResponse, IEnumerable { private IList _cloudServices; @@ -334,7 +334,7 @@ public IList CloudServices /// public CloudServiceListResponse() { - this.CloudServices = new List(); + this.CloudServices = new LazyList(); } /// @@ -421,7 +421,7 @@ public IList Resources /// public CloudService() { - this.Resources = new List(); + this.Resources = new LazyList(); } } } @@ -457,7 +457,7 @@ public enum CloudServiceOperationStatus /// failed, the response body includes the HTTP status code for the failed /// request, and also includes error information regarding the failure. /// - public partial class CloudServiceOperationStatusResponse : OperationResponse + public partial class CloudServiceOperationStatusResponse : AzureOperationResponse { private CloudServiceOperationStatusResponse.ErrorDetails _error; @@ -683,8 +683,43 @@ public IList UsageLimits /// public CloudServiceResource() { - this.OutputItems = new Dictionary(); - this.UsageLimits = new List(); + this.OutputItems = new LazyDictionary(); + this.UsageLimits = new LazyList(); + } + + /// + /// The operation status of an individual resource item. + /// + public partial class OperationStatus + { + private string _result; + + /// + /// Optional. The result of this operation status. + /// + public string Result + { + get { return this._result; } + set { this._result = value; } + } + + private string _type; + + /// + /// Optional. The type of this operation status. + /// + public string Type + { + get { return this._type; } + set { this._type = value; } + } + + /// + /// Initializes a new instance of the OperationStatus class. + /// + public OperationStatus() + { + } } /// @@ -840,7 +875,7 @@ public CacheServiceSkuType SkuType /// public CacheServiceInput() { - this.NamedCaches = new List(); + this.NamedCaches = new LazyList(); } public partial class NamedCache @@ -968,7 +1003,7 @@ public RegenerateKeysParameters() /// A standard service response including an HTTP status code and request /// ID. /// - public partial class RegionsResponse : OperationResponse, IEnumerable + public partial class RegionsResponse : AzureOperationResponse, IEnumerable { private IList _regions; @@ -986,7 +1021,7 @@ public IList Regions /// public RegionsResponse() { - this.Regions = new List(); + this.Regions = new LazyList(); } /// @@ -1033,6 +1068,79 @@ public Region() namespace Microsoft.Azure.Management.ManagedCache { + public static partial class ManagedCacheClientExtensions + { + /// + /// The Get Operation Status operation returns the status of + /// thespecified operation. After calling an asynchronous operation, + /// you can call Get Operation Status to determine whether the + /// operation has succeeded, failed, or is still in progress. (see + /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx + /// for more information) + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.IManagedCacheClient. + /// + /// + /// Required. The request ID for the request you wish to track. The + /// request ID is returned in the x-ms-request-id response header for + /// every request. + /// + /// + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. + /// + public static CloudServiceOperationStatusResponse GetOperationStatus(this IManagedCacheClient operations, string requestId) + { + return Task.Factory.StartNew((object s) => + { + return ((IManagedCacheClient)s).GetOperationStatusAsync(requestId); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } + + /// + /// The Get Operation Status operation returns the status of + /// thespecified operation. After calling an asynchronous operation, + /// you can call Get Operation Status to determine whether the + /// operation has succeeded, failed, or is still in progress. (see + /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx + /// for more information) + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.IManagedCacheClient. + /// + /// + /// Required. The request ID for the request you wish to track. The + /// request ID is returned in the x-ms-request-id response header for + /// every request. + /// + /// + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. + /// + public static Task GetOperationStatusAsync(this IManagedCacheClient operations, string requestId) + { + return operations.GetOperationStatusAsync(requestId, CancellationToken.None); + } + } + public partial interface IManagedCacheClient : IDisposable { /// @@ -1151,7 +1259,7 @@ public virtual ICloudServiceOperations CloudServices /// /// Initializes a new instance of the ManagedCacheClient class. /// - private ManagedCacheClient() + public ManagedCacheClient() : base() { this._cacheServices = new CacheServiceOperations(this); @@ -1172,7 +1280,7 @@ private ManagedCacheClient() /// requests are allowed. /// /// - /// Required. The URI used as the base for all Service Management + /// Optional. The URI used as the base for all Service Management /// requests. /// public ManagedCacheClient(SubscriptionCloudCredentials credentials, Uri baseUri) @@ -1223,7 +1331,7 @@ public ManagedCacheClient(SubscriptionCloudCredentials credentials) /// /// The Http client /// - private ManagedCacheClient(HttpClient httpClient) + public ManagedCacheClient(HttpClient httpClient) : base(httpClient) { this._cacheServices = new CacheServiceOperations(this); @@ -1244,7 +1352,7 @@ private ManagedCacheClient(HttpClient httpClient) /// requests are allowed. /// /// - /// Required. The URI used as the base for all Service Management + /// Optional. The URI used as the base for all Service Management /// requests. /// /// @@ -1353,18 +1461,18 @@ public async Task GetOperationStatusAsync(s } // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); tracingParameters.Add("requestId", requestId); - Tracing.Enter(invocationId, this, "GetOperationStatusAsync", tracingParameters); + TracingAdapter.Enter(invocationId, this, "GetOperationStatusAsync", tracingParameters); } // Construct URL - string url = (this.Credentials.SubscriptionId != null ? this.Credentials.SubscriptionId.Trim() : "") + "/operations/" + requestId.Trim(); + string url = (this.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Credentials.SubscriptionId)) + "/operations/" + Uri.EscapeDataString(requestId); string baseUrl = this.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') @@ -1399,13 +1507,13 @@ public async Task GetOperationStatusAsync(s { if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); + TracingAdapter.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { - Tracing.ReceiveResponse(invocationId, httpResponse); + TracingAdapter.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; if (statusCode != HttpStatusCode.OK) @@ -1414,7 +1522,7 @@ public async Task GetOperationStatusAsync(s CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { - Tracing.Error(invocationId, ex); + TracingAdapter.Error(invocationId, ex); } throw ex; } @@ -1422,57 +1530,60 @@ public async Task GetOperationStatusAsync(s // Create Result CloudServiceOperationStatusResponse result = null; // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CloudServiceOperationStatusResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement operationElement = responseDoc.Element(XName.Get("Operation", "http://schemas.microsoft.com/windowsazure")); - if (operationElement != null) + if (statusCode == HttpStatusCode.OK) { - XElement idElement = operationElement.Element(XName.Get("ID", "http://schemas.microsoft.com/windowsazure")); - if (idElement != null) - { - string idInstance = idElement.Value; - result.Id = idInstance; - } - - XElement statusElement = operationElement.Element(XName.Get("Status", "http://schemas.microsoft.com/windowsazure")); - if (statusElement != null) - { - CloudServiceOperationStatus statusInstance = ((CloudServiceOperationStatus)Enum.Parse(typeof(CloudServiceOperationStatus), statusElement.Value, true)); - result.Status = statusInstance; - } - - XElement httpStatusCodeElement = operationElement.Element(XName.Get("HttpStatusCode", "http://schemas.microsoft.com/windowsazure")); - if (httpStatusCodeElement != null) - { - HttpStatusCode httpStatusCodeInstance = ((HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), httpStatusCodeElement.Value, true)); - result.HttpStatusCode = httpStatusCodeInstance; - } + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CloudServiceOperationStatusResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); - XElement errorElement = operationElement.Element(XName.Get("Error", "http://schemas.microsoft.com/windowsazure")); - if (errorElement != null) + XElement operationElement = responseDoc.Element(XName.Get("Operation", "http://schemas.microsoft.com/windowsazure")); + if (operationElement != null) { - CloudServiceOperationStatusResponse.ErrorDetails errorInstance = new CloudServiceOperationStatusResponse.ErrorDetails(); - result.Error = errorInstance; + XElement idElement = operationElement.Element(XName.Get("ID", "http://schemas.microsoft.com/windowsazure")); + if (idElement != null) + { + string idInstance = idElement.Value; + result.Id = idInstance; + } + + XElement statusElement = operationElement.Element(XName.Get("Status", "http://schemas.microsoft.com/windowsazure")); + if (statusElement != null) + { + CloudServiceOperationStatus statusInstance = ((CloudServiceOperationStatus)Enum.Parse(typeof(CloudServiceOperationStatus), statusElement.Value, true)); + result.Status = statusInstance; + } - XElement codeElement = errorElement.Element(XName.Get("Code", "http://schemas.microsoft.com/windowsazure")); - if (codeElement != null) + XElement httpStatusCodeElement = operationElement.Element(XName.Get("HttpStatusCode", "http://schemas.microsoft.com/windowsazure")); + if (httpStatusCodeElement != null) { - string codeInstance = codeElement.Value; - errorInstance.Code = codeInstance; + HttpStatusCode httpStatusCodeInstance = ((HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), httpStatusCodeElement.Value, true)); + result.HttpStatusCode = httpStatusCodeInstance; } - XElement messageElement = errorElement.Element(XName.Get("Message", "http://schemas.microsoft.com/windowsazure")); - if (messageElement != null) + XElement errorElement = operationElement.Element(XName.Get("Error", "http://schemas.microsoft.com/windowsazure")); + if (errorElement != null) { - string messageInstance = messageElement.Value; - errorInstance.Message = messageInstance; + CloudServiceOperationStatusResponse.ErrorDetails errorInstance = new CloudServiceOperationStatusResponse.ErrorDetails(); + result.Error = errorInstance; + + XElement codeElement = errorElement.Element(XName.Get("Code", "http://schemas.microsoft.com/windowsazure")); + if (codeElement != null) + { + string codeInstance = codeElement.Value; + errorInstance.Code = codeInstance; + } + + XElement messageElement = errorElement.Element(XName.Get("Message", "http://schemas.microsoft.com/windowsazure")); + if (messageElement != null) + { + string messageInstance = messageElement.Value; + errorInstance.Message = messageInstance; + } } } + } - result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { @@ -1481,7 +1592,7 @@ public async Task GetOperationStatusAsync(s if (shouldTrace) { - Tracing.Exit(invocationId, result); + TracingAdapter.Exit(invocationId, result); } return result; } @@ -1503,33 +1614,67 @@ public async Task GetOperationStatusAsync(s } } - /// - /// The Managed Cache API includes operations for managing cache services - /// - public partial interface ICacheServiceOperations + public static partial class CacheServiceOperationsExtensions { /// /// Creates a new Cache Service in specified subscription and cloud /// service. /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The name of the cloud service. + /// Required. The name of the cloud service. /// /// - /// A name of the cache service. The name can be up to 20 characters - /// in length with minimum 6 characters and must be all lower cases. + /// Required. A name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. /// /// - /// Parameter supplied to create a cache service + /// Required. Parameter supplied to create a cache service /// - /// - /// Cancellation token. + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public static AzureOperationResponse BeginCreatingCacheService(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } + + /// + /// Creates a new Cache Service in specified subscription and cloud + /// service. + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// + /// Required. The name of the cloud service. + /// + /// + /// Required. A name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. + /// + /// + /// Required. Parameter supplied to create a cache service /// /// /// A standard service response including an HTTP status code and /// request ID. /// - Task BeginCreatingCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken); + public static Task BeginCreatingCacheServiceAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + { + return operations.BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); + } /// /// The begin of deleting Cache Service.This operation is an @@ -1538,82 +1683,121 @@ public partial interface ICacheServiceOperations /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more /// information) /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The name of the cloud service. + /// Required. The name of the cloud service. /// /// - /// A name of the cache service. - /// - /// - /// Cancellation token. + /// Required. A name of the cache service. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - Task BeginDeletingAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + public static AzureOperationResponse BeginDeleting(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).BeginDeletingAsync(cloudServiceName, cacheServiceName); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } /// - /// Get access keys of Cache Service + /// The begin of deleting Cache Service.This operation is an + /// asynchronous operation. To determine whether service has finished + /// processing the request, call Get Operation. (see + /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more + /// information) /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The cloud service name. + /// Required. The name of the cloud service. /// /// - /// The cache service name. - /// - /// - /// Cancellation token. + /// Required. A name of the cache service. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - Task CheckNameAvailabilityAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + public static Task BeginDeletingAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return operations.BeginDeletingAsync(cloudServiceName, cacheServiceName, CancellationToken.None); + } /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// Get access keys of Cache Service /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The name of the cloud service. + /// Required. The cloud service name. /// /// - /// The name of the cache service. The name can be up to 20 characters - /// in length with minimum 6 characters and must be all lower cases. - /// - /// - /// Parameter supplied to create a cache service - /// - /// - /// Cancellation token. + /// Required. The cache service name. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// A standard service response including an HTTP status code and + /// request ID. /// - Task CreateCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken); + public static CheckCacheNameAvailabilityResponse CheckNameAvailability(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).CheckNameAvailabilityAsync(cloudServiceName, cacheServiceName); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } /// - /// Delete Cache Service in specified subscription and cloud service. - /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for - /// more information) + /// Get access keys of Cache Service /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The name of the cloud service. + /// Required. The cloud service name. /// /// - /// A name of the cache service. + /// Required. The cache service name. /// - /// - /// Cancellation token. + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public static Task CheckNameAvailabilityAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return operations.CheckNameAvailabilityAsync(cloudServiceName, cacheServiceName, CancellationToken.None); + } + + /// + /// Creates a new Cache Service in specified subscription and cloud + /// service. + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// + /// Required. The name of the cloud service. + /// + /// + /// Required. The name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. + /// + /// + /// Required. Parameter supplied to create a cache service /// /// /// The response body contains the status of the specified asynchronous @@ -1626,826 +1810,352 @@ public partial interface ICacheServiceOperations /// status code for the failed request, and also includes error /// information regarding the failure. /// - Task DeleteAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + public static CloudServiceOperationStatusResponse CreateCacheService(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).CreateCacheServiceAsync(cloudServiceName, cacheServiceName, parameters); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } /// - /// Get access keys of Cache Service + /// Creates a new Cache Service in specified subscription and cloud + /// service. /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The cloud service name. + /// Required. The name of the cloud service. /// /// - /// The cache service name. + /// Required. The name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. /// - /// - /// Cancellation token. + /// + /// Required. Parameter supplied to create a cache service /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - Task GetKeysAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + public static Task CreateCacheServiceAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + { + return operations.CreateCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); + } /// - /// List supported regions of Cache Service + /// Delete Cache Service in specified subscription and cloud service. + /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for + /// more information) /// - /// - /// Cancellation token. + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// + /// Required. The name of the cloud service. + /// + /// + /// Required. A name of the cache service. /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - Task ListRegionsAsync(CancellationToken cancellationToken); + public static CloudServiceOperationStatusResponse Delete(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).DeleteAsync(cloudServiceName, cacheServiceName); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } /// - /// Regenerate access keys for a Cache Service + /// Delete Cache Service in specified subscription and cloud service. + /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for + /// more information) /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// The cloud service name. + /// Required. The name of the cloud service. /// /// - /// The cache service name. + /// Required. A name of the cache service. /// - /// - /// Key type + /// + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. + /// + public static Task DeleteAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return operations.DeleteAsync(cloudServiceName, cacheServiceName, CancellationToken.None); + } + + /// + /// Get access keys of Cache Service + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. /// - /// - /// Cancellation token. + /// + /// Required. The cloud service name. + /// + /// + /// Required. The cache service name. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - Task RegenerateKeysAsync(string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters, CancellationToken cancellationToken); - } - - /// - /// The Managed Cache API includes operations for managing cache services - /// - internal partial class CacheServiceOperations : IServiceOperations, ICacheServiceOperations - { + public static CachingKeysResponse GetKeys(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).GetKeysAsync(cloudServiceName, cacheServiceName); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } + /// - /// Initializes a new instance of the CacheServiceOperations class. + /// Get access keys of Cache Service /// - /// - /// Reference to the service client. + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. /// - internal CacheServiceOperations(ManagedCacheClient client) + /// + /// Required. The cloud service name. + /// + /// + /// Required. The cache service name. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public static Task GetKeysAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) { - this._client = client; + return operations.GetKeysAsync(cloudServiceName, cacheServiceName, CancellationToken.None); } - private ManagedCacheClient _client; + /// + /// List supported regions of Cache Service + /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public static RegionsResponse ListRegions(this ICacheServiceOperations operations) + { + return Task.Factory.StartNew((object s) => + { + return ((ICacheServiceOperations)s).ListRegionsAsync(); + } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + } /// - /// Gets a reference to the - /// Microsoft.Azure.Management.ManagedCache.ManagedCacheClient. + /// List supported regions of Cache Service /// - public ManagedCacheClient Client + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public static Task ListRegionsAsync(this ICacheServiceOperations operations) { - get { return this._client; } + return operations.ListRegionsAsync(CancellationToken.None); } /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// Regenerate access keys for a Cache Service /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// - /// Required. The name of the cloud service. + /// Required. The cloud service name. /// /// - /// Required. A name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. + /// Required. The cache service name. /// /// - /// Required. Parameter supplied to create a cache service - /// - /// - /// Cancellation token. + /// Required. Key type /// /// /// A standard service response including an HTTP status code and /// request ID. /// - public async Task BeginCreatingCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken) + public static CachingKeysResponse RegenerateKeys(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters) { - // Validate - if (cloudServiceName == null) - { - throw new ArgumentNullException("cloudServiceName"); - } - if (cacheServiceName == null) + return Task.Factory.StartNew((object s) => { - throw new ArgumentNullException("cacheServiceName"); - } - if (cacheServiceName.Length < 6) - { - throw new ArgumentOutOfRangeException("cacheServiceName"); - } - if (cacheServiceName.Length > 20) - { - throw new ArgumentOutOfRangeException("cacheServiceName"); - } - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } - - // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - tracingParameters.Add("parameters", parameters); - Tracing.Enter(invocationId, this, "BeginCreatingCacheServiceAsync", tracingParameters); - } - - // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/" + cloudServiceName.Trim() + "/resources/cacheservice/Caching/" + cacheServiceName.Trim(); - string baseUrl = this.Client.BaseUri.AbsoluteUri; - // Trim '/' character from the end of baseUrl and beginning of url. - if (baseUrl[baseUrl.Length - 1] == '/') - { - baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); - } - if (url[0] == '/') - { - url = url.Substring(1); - } - url = baseUrl + "/" + url; - url = url.Replace(" ", "%20"); - - // Create HTTP transport objects - HttpRequestMessage httpRequest = null; - try - { - httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Put; - httpRequest.RequestUri = new Uri(url); - - // Set Headers - httpRequest.Headers.TryAddWithoutValidation("If-Match", parameters.ETag); - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Serialize Request - string requestContent = null; - XDocument requestDoc = new XDocument(); - - XElement resourceElement = new XElement(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure")); - requestDoc.Add(resourceElement); - - if (parameters.ResourceProviderNamespace != null) - { - XElement resourceProviderNamespaceElement = new XElement(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); - resourceProviderNamespaceElement.Value = parameters.ResourceProviderNamespace; - resourceElement.Add(resourceProviderNamespaceElement); - } - - if (parameters.Type != null) - { - XElement typeElement = new XElement(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); - typeElement.Value = parameters.Type; - resourceElement.Add(typeElement); - } - - if (parameters.Name != null) - { - XElement nameElement = new XElement(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - nameElement.Value = parameters.Name; - resourceElement.Add(nameElement); - } - - if (parameters.SchemaVersion != null) - { - XElement schemaVersionElement = new XElement(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); - schemaVersionElement.Value = parameters.SchemaVersion; - resourceElement.Add(schemaVersionElement); - } - - if (parameters.Settings != null) - { - XElement intrinsicSettingsElement = new XElement(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); - resourceElement.Add(intrinsicSettingsElement); - - if (parameters.Settings.CacheServiceInputSection != null) - { - XElement cacheServiceInputElement = new XElement(XName.Get("CacheServiceInput", "")); - intrinsicSettingsElement.Add(cacheServiceInputElement); - - XElement skuTypeElement = new XElement(XName.Get("SkuType", "")); - skuTypeElement.Value = parameters.Settings.CacheServiceInputSection.SkuType.ToString(); - cacheServiceInputElement.Add(skuTypeElement); - - if (parameters.Settings.CacheServiceInputSection.Location != null) - { - XElement locationElement = new XElement(XName.Get("Location", "")); - locationElement.Value = parameters.Settings.CacheServiceInputSection.Location; - cacheServiceInputElement.Add(locationElement); - } - - XElement skuCountElement = new XElement(XName.Get("SkuCount", "")); - skuCountElement.Value = parameters.Settings.CacheServiceInputSection.SkuCount.ToString(); - cacheServiceInputElement.Add(skuCountElement); - - if (parameters.Settings.CacheServiceInputSection.ServiceVersion != null) - { - XElement serviceVersionElement = new XElement(XName.Get("ServiceVersion", "")); - serviceVersionElement.Value = parameters.Settings.CacheServiceInputSection.ServiceVersion; - cacheServiceInputElement.Add(serviceVersionElement); - } - - XElement objectSizeInBytesElement = new XElement(XName.Get("ObjectSizeInBytes", "")); - objectSizeInBytesElement.Value = parameters.Settings.CacheServiceInputSection.ObjectSizeInBytes.ToString(); - cacheServiceInputElement.Add(objectSizeInBytesElement); - - if (parameters.Settings.CacheServiceInputSection.NamedCaches != null) - { - XElement namedCachesSequenceElement = new XElement(XName.Get("NamedCaches", "")); - foreach (IntrinsicSettings.CacheServiceInput.NamedCache namedCachesItem in parameters.Settings.CacheServiceInputSection.NamedCaches) - { - XElement namedCacheElement = new XElement(XName.Get("NamedCache", "")); - namedCachesSequenceElement.Add(namedCacheElement); - - if (namedCachesItem.CacheName != null) - { - XElement cacheNameElement = new XElement(XName.Get("CacheName", "")); - cacheNameElement.Value = namedCachesItem.CacheName; - namedCacheElement.Add(cacheNameElement); - } - - XElement notificationsEnabledElement = new XElement(XName.Get("NotificationsEnabled", "")); - notificationsEnabledElement.Value = namedCachesItem.NotificationsEnabled.ToString().ToLower(); - namedCacheElement.Add(notificationsEnabledElement); - - XElement highAvailabilityEnabledElement = new XElement(XName.Get("HighAvailabilityEnabled", "")); - highAvailabilityEnabledElement.Value = namedCachesItem.HighAvailabilityEnabled.ToString().ToLower(); - namedCacheElement.Add(highAvailabilityEnabledElement); - - if (namedCachesItem.EvictionPolicy != null) - { - XElement evictionPolicyElement = new XElement(XName.Get("EvictionPolicy", "")); - evictionPolicyElement.Value = namedCachesItem.EvictionPolicy; - namedCacheElement.Add(evictionPolicyElement); - } - - if (namedCachesItem.ExpirationSettingsSection != null) - { - XElement expirationSettingsElement = new XElement(XName.Get("ExpirationSettings", "")); - namedCacheElement.Add(expirationSettingsElement); - - XElement timeToLiveInMinutesElement = new XElement(XName.Get("TimeToLiveInMinutes", "")); - timeToLiveInMinutesElement.Value = namedCachesItem.ExpirationSettingsSection.TimeToLiveInMinutes.ToString(); - expirationSettingsElement.Add(timeToLiveInMinutesElement); - - if (namedCachesItem.ExpirationSettingsSection.Type != null) - { - XElement typeElement2 = new XElement(XName.Get("Type", "")); - typeElement2.Value = namedCachesItem.ExpirationSettingsSection.Type; - expirationSettingsElement.Add(typeElement2); - } - } - } - cacheServiceInputElement.Add(namedCachesSequenceElement); - } - } - } - - if (parameters.IntrinsicSettingsSection != null) - { - XElement intrinsicSettingsElement2 = new XElement(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); - resourceElement.Add(intrinsicSettingsElement2); - - if (parameters.IntrinsicSettingsSection.CacheServiceInputSection != null) - { - XElement cacheServiceInputElement2 = new XElement(XName.Get("CacheServiceInput", "")); - intrinsicSettingsElement2.Add(cacheServiceInputElement2); - - XElement skuTypeElement2 = new XElement(XName.Get("SkuType", "")); - skuTypeElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.SkuType.ToString(); - cacheServiceInputElement2.Add(skuTypeElement2); - - if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.Location != null) - { - XElement locationElement2 = new XElement(XName.Get("Location", "")); - locationElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.Location; - cacheServiceInputElement2.Add(locationElement2); - } - - XElement skuCountElement2 = new XElement(XName.Get("SkuCount", "")); - skuCountElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.SkuCount.ToString(); - cacheServiceInputElement2.Add(skuCountElement2); - - if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.ServiceVersion != null) - { - XElement serviceVersionElement2 = new XElement(XName.Get("ServiceVersion", "")); - serviceVersionElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.ServiceVersion; - cacheServiceInputElement2.Add(serviceVersionElement2); - } - - XElement objectSizeInBytesElement2 = new XElement(XName.Get("ObjectSizeInBytes", "")); - objectSizeInBytesElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.ObjectSizeInBytes.ToString(); - cacheServiceInputElement2.Add(objectSizeInBytesElement2); - - if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches != null) - { - XElement namedCachesSequenceElement2 = new XElement(XName.Get("NamedCaches", "")); - foreach (IntrinsicSettings.CacheServiceInput.NamedCache namedCachesItem2 in parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches) - { - XElement namedCacheElement2 = new XElement(XName.Get("NamedCache", "")); - namedCachesSequenceElement2.Add(namedCacheElement2); - - if (namedCachesItem2.CacheName != null) - { - XElement cacheNameElement2 = new XElement(XName.Get("CacheName", "")); - cacheNameElement2.Value = namedCachesItem2.CacheName; - namedCacheElement2.Add(cacheNameElement2); - } - - XElement notificationsEnabledElement2 = new XElement(XName.Get("NotificationsEnabled", "")); - notificationsEnabledElement2.Value = namedCachesItem2.NotificationsEnabled.ToString().ToLower(); - namedCacheElement2.Add(notificationsEnabledElement2); - - XElement highAvailabilityEnabledElement2 = new XElement(XName.Get("HighAvailabilityEnabled", "")); - highAvailabilityEnabledElement2.Value = namedCachesItem2.HighAvailabilityEnabled.ToString().ToLower(); - namedCacheElement2.Add(highAvailabilityEnabledElement2); - - if (namedCachesItem2.EvictionPolicy != null) - { - XElement evictionPolicyElement2 = new XElement(XName.Get("EvictionPolicy", "")); - evictionPolicyElement2.Value = namedCachesItem2.EvictionPolicy; - namedCacheElement2.Add(evictionPolicyElement2); - } - - if (namedCachesItem2.ExpirationSettingsSection != null) - { - XElement expirationSettingsElement2 = new XElement(XName.Get("ExpirationSettings", "")); - namedCacheElement2.Add(expirationSettingsElement2); - - XElement timeToLiveInMinutesElement2 = new XElement(XName.Get("TimeToLiveInMinutes", "")); - timeToLiveInMinutesElement2.Value = namedCachesItem2.ExpirationSettingsSection.TimeToLiveInMinutes.ToString(); - expirationSettingsElement2.Add(timeToLiveInMinutesElement2); - - if (namedCachesItem2.ExpirationSettingsSection.Type != null) - { - XElement typeElement3 = new XElement(XName.Get("Type", "")); - typeElement3.Value = namedCachesItem2.ExpirationSettingsSection.Type; - expirationSettingsElement2.Add(typeElement3); - } - } - } - cacheServiceInputElement2.Add(namedCachesSequenceElement2); - } - } - } - - requestContent = requestDoc.ToString(); - requestContent = System.Text.RegularExpressions.Regex.Replace(requestContent, "\\s* - /// The begin of deleting Cache Service.This operation is an - /// asynchronous operation. To determine whether service has finished - /// processing the request, call Get Operation. (see - /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more - /// information) - /// - /// - /// Required. The name of the cloud service. - /// - /// - /// Required. A name of the cache service. - /// - /// - /// Cancellation token. - /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - public async Task BeginDeletingAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) - { - // Validate - if (cloudServiceName == null) - { - throw new ArgumentNullException("cloudServiceName"); - } - if (cacheServiceName == null) - { - throw new ArgumentNullException("cacheServiceName"); - } - - // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - Tracing.Enter(invocationId, this, "BeginDeletingAsync", tracingParameters); - } - - // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/" + cloudServiceName.Trim() + "/resources/cacheservice/Caching/" + cacheServiceName.Trim(); - string baseUrl = this.Client.BaseUri.AbsoluteUri; - // Trim '/' character from the end of baseUrl and beginning of url. - if (baseUrl[baseUrl.Length - 1] == '/') - { - baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); - } - if (url[0] == '/') - { - url = url.Substring(1); - } - url = baseUrl + "/" + url; - url = url.Replace(" ", "%20"); - - // Create HTTP transport objects - HttpRequestMessage httpRequest = null; - try - { - httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Delete; - httpRequest.RequestUri = new Uri(url); - - // Set Headers - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Send Request - HttpResponseMessage httpResponse = null; - try - { - if (shouldTrace) - { - Tracing.SendRequest(invocationId, httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); - if (shouldTrace) - { - Tracing.ReceiveResponse(invocationId, httpResponse); - } - HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.Accepted) - { - cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - - // Create Result - OperationResponse result = null; - result = new OperationResponse(); - result.StatusCode = statusCode; - if (httpResponse.Headers.Contains("x-ms-request-id")) - { - result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - return result; - } - finally - { - if (httpResponse != null) - { - httpResponse.Dispose(); - } - } - } - finally - { - if (httpRequest != null) - { - httpRequest.Dispose(); - } + return ((ICacheServiceOperations)s).RegenerateKeysAsync(cloudServiceName, cacheServiceName, parameters); } + , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } /// - /// Get access keys of Cache Service + /// Regenerate access keys for a Cache Service /// + /// + /// Reference to the + /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// /// /// Required. The cloud service name. /// /// /// Required. The cache service name. /// - /// - /// Cancellation token. + /// + /// Required. Key type /// /// /// A standard service response including an HTTP status code and /// request ID. /// - public async Task CheckNameAvailabilityAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) + public static Task RegenerateKeysAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters) { - // Validate - if (cloudServiceName == null) - { - throw new ArgumentNullException("cloudServiceName"); - } - if (cacheServiceName == null) - { - throw new ArgumentNullException("cacheServiceName"); - } - - // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - Tracing.Enter(invocationId, this, "CheckNameAvailabilityAsync", tracingParameters); - } - - // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/" + cloudServiceName.Trim() + "/resources/cacheservice/~/Caching/dummy/Namespaces/" + cacheServiceName.Trim(); - string baseUrl = this.Client.BaseUri.AbsoluteUri; - // Trim '/' character from the end of baseUrl and beginning of url. - if (baseUrl[baseUrl.Length - 1] == '/') - { - baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); - } - if (url[0] == '/') - { - url = url.Substring(1); - } - url = baseUrl + "/" + url; - url = url.Replace(" ", "%20"); - - // Create HTTP transport objects - HttpRequestMessage httpRequest = null; - try - { - httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Get; - httpRequest.RequestUri = new Uri(url); - - // Set Headers - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Send Request - HttpResponseMessage httpResponse = null; - try - { - if (shouldTrace) - { - Tracing.SendRequest(invocationId, httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); - if (shouldTrace) - { - Tracing.ReceiveResponse(invocationId, httpResponse); - } - HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.OK) - { - cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - - // Create Result - CheckCacheNameAvailabilityResponse result = null; - // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CheckCacheNameAvailabilityResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement booleanElement = responseDoc.Element(XName.Get("boolean", "http://schemas.microsoft.com/2003/10/Serialization/")); - if (booleanElement != null) - { - bool booleanInstance = bool.Parse(booleanElement.Value); - result.Available = booleanInstance; - } - - result.StatusCode = statusCode; - if (httpResponse.Headers.Contains("x-ms-request-id")) - { - result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - return result; - } - finally - { - if (httpResponse != null) - { - httpResponse.Dispose(); - } - } - } - finally - { - if (httpRequest != null) - { - httpRequest.Dispose(); - } - } + return operations.RegenerateKeysAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); } - + } + + /// + /// The Managed Cache API includes operations for managing cache services + /// + public partial interface ICacheServiceOperations + { /// /// Creates a new Cache Service in specified subscription and cloud /// service. /// /// - /// Required. The name of the cloud service. + /// The name of the cloud service. /// /// - /// Required. The name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. + /// A name of the cache service. The name can be up to 20 characters + /// in length with minimum 6 characters and must be all lower cases. /// /// - /// Required. Parameter supplied to create a cache service + /// Parameter supplied to create a cache service /// /// /// Cancellation token. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// A standard service response including an HTTP status code and + /// request ID. /// - public async Task CreateCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken) - { - ManagedCacheClient client = this.Client; - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - tracingParameters.Add("parameters", parameters); - Tracing.Enter(invocationId, this, "CreateCacheServiceAsync", tracingParameters); - } - try - { - if (shouldTrace) - { - client = this.Client.WithHandler(new ClientRequestTrackingHandler(invocationId)); - } - - cancellationToken.ThrowIfCancellationRequested(); - OperationResponse response = await client.CacheServices.BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, cancellationToken).ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); - CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - int delayInSeconds = 30; - while ((result.Status != CloudServiceOperationStatus.InProgress) == false) - { - cancellationToken.ThrowIfCancellationRequested(); - await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); - result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - delayInSeconds = 30; - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - - if (result.Status != CloudServiceOperationStatus.Succeeded) - { - if (result.Error != null) - { - CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); - ex.ErrorCode = result.Error.Code; - ex.ErrorMessage = result.Error.Message; - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - else - { - CloudException ex = new CloudException(""); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - } - - return result; - } - finally - { - if (client != null && shouldTrace) - { - client.Dispose(); - } - } - } + Task BeginCreatingCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken); + + /// + /// The begin of deleting Cache Service.This operation is an + /// asynchronous operation. To determine whether service has finished + /// processing the request, call Get Operation. (see + /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more + /// information) + /// + /// + /// The name of the cloud service. + /// + /// + /// A name of the cache service. + /// + /// + /// Cancellation token. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + Task BeginDeletingAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + + /// + /// Get access keys of Cache Service + /// + /// + /// The cloud service name. + /// + /// + /// The cache service name. + /// + /// + /// Cancellation token. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + Task CheckNameAvailabilityAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + + /// + /// Creates a new Cache Service in specified subscription and cloud + /// service. + /// + /// + /// The name of the cloud service. + /// + /// + /// The name of the cache service. The name can be up to 20 characters + /// in length with minimum 6 characters and must be all lower cases. + /// + /// + /// Parameter supplied to create a cache service + /// + /// + /// Cancellation token. + /// + /// + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. + /// + Task CreateCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken); /// /// Delete Cache Service in specified subscription and cloud service. @@ -2453,10 +2163,10 @@ public async Task CreateCacheServiceAsync(s /// more information) /// /// - /// Required. The name of the cloud service. + /// The name of the cloud service. /// /// - /// Required. A name of the cache service. + /// A name of the cache service. /// /// /// Cancellation token. @@ -2472,88 +2182,16 @@ public async Task CreateCacheServiceAsync(s /// status code for the failed request, and also includes error /// information regarding the failure. /// - public async Task DeleteAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) - { - ManagedCacheClient client = this.Client; - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - Tracing.Enter(invocationId, this, "DeleteAsync", tracingParameters); - } - try - { - if (shouldTrace) - { - client = this.Client.WithHandler(new ClientRequestTrackingHandler(invocationId)); - } - - cancellationToken.ThrowIfCancellationRequested(); - OperationResponse response = await client.CacheServices.BeginDeletingAsync(cloudServiceName, cacheServiceName, cancellationToken).ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); - CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - int delayInSeconds = 30; - while ((result.Status != CloudServiceOperationStatus.InProgress) == false) - { - cancellationToken.ThrowIfCancellationRequested(); - await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); - result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - delayInSeconds = 30; - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - - if (result.Status != CloudServiceOperationStatus.Succeeded) - { - if (result.Error != null) - { - CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); - ex.ErrorCode = result.Error.Code; - ex.ErrorMessage = result.Error.Message; - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - else - { - CloudException ex = new CloudException(""); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - } - - return result; - } - finally - { - if (client != null && shouldTrace) - { - client.Dispose(); - } - } - } + Task DeleteAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); /// /// Get access keys of Cache Service /// /// - /// Required. The cloud service name. + /// The cloud service name. /// /// - /// Required. The cache service name. + /// The cache service name. /// /// /// Cancellation token. @@ -2562,152 +2200,84 @@ public async Task DeleteAsync(string cloudS /// A standard service response including an HTTP status code and /// request ID. /// - public async Task GetKeysAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) + Task GetKeysAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken); + + /// + /// List supported regions of Cache Service + /// + /// + /// Cancellation token. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + Task ListRegionsAsync(CancellationToken cancellationToken); + + /// + /// Regenerate access keys for a Cache Service + /// + /// + /// The cloud service name. + /// + /// + /// The cache service name. + /// + /// + /// Key type + /// + /// + /// Cancellation token. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + Task RegenerateKeysAsync(string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters, CancellationToken cancellationToken); + } + + /// + /// The Managed Cache API includes operations for managing cache services + /// + internal partial class CacheServiceOperations : IServiceOperations, ICacheServiceOperations + { + /// + /// Initializes a new instance of the CacheServiceOperations class. + /// + /// + /// Reference to the service client. + /// + internal CacheServiceOperations(ManagedCacheClient client) { - // Validate - if (cloudServiceName == null) - { - throw new ArgumentNullException("cloudServiceName"); - } - if (cloudServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cloudServiceName"); - } - if (cacheServiceName == null) - { - throw new ArgumentNullException("cacheServiceName"); - } - if (cacheServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cacheServiceName"); - } - - // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; - string invocationId = null; - if (shouldTrace) - { - invocationId = Tracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("cacheServiceName", cacheServiceName); - Tracing.Enter(invocationId, this, "GetKeysAsync", tracingParameters); - } - - // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/" + cloudServiceName.Trim() + "/resources/cacheservice/~/Caching/" + cacheServiceName.Trim() + "/Keys"; - string baseUrl = this.Client.BaseUri.AbsoluteUri; - // Trim '/' character from the end of baseUrl and beginning of url. - if (baseUrl[baseUrl.Length - 1] == '/') - { - baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); - } - if (url[0] == '/') - { - url = url.Substring(1); - } - url = baseUrl + "/" + url; - url = url.Replace(" ", "%20"); - - // Create HTTP transport objects - HttpRequestMessage httpRequest = null; - try - { - httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Get; - httpRequest.RequestUri = new Uri(url); - - // Set Headers - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Send Request - HttpResponseMessage httpResponse = null; - try - { - if (shouldTrace) - { - Tracing.SendRequest(invocationId, httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); - if (shouldTrace) - { - Tracing.ReceiveResponse(invocationId, httpResponse); - } - HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.OK) - { - cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - - // Create Result - CachingKeysResponse result = null; - // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CachingKeysResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement cachingKeysElement = responseDoc.Element(XName.Get("CachingKeys", "http://schemas.microsoft.com/windowsazure")); - if (cachingKeysElement != null) - { - XElement primaryElement = cachingKeysElement.Element(XName.Get("Primary", "http://schemas.microsoft.com/windowsazure")); - if (primaryElement != null) - { - string primaryInstance = primaryElement.Value; - result.Primary = primaryInstance; - } - - XElement secondaryElement = cachingKeysElement.Element(XName.Get("Secondary", "http://schemas.microsoft.com/windowsazure")); - if (secondaryElement != null) - { - string secondaryInstance = secondaryElement.Value; - result.Secondary = secondaryInstance; - } - } - - result.StatusCode = statusCode; - if (httpResponse.Headers.Contains("x-ms-request-id")) - { - result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - return result; - } - finally - { - if (httpResponse != null) - { - httpResponse.Dispose(); - } - } - } - finally - { - if (httpRequest != null) - { - httpRequest.Dispose(); - } - } + this._client = client; + } + + private ManagedCacheClient _client; + + /// + /// Gets a reference to the + /// Microsoft.Azure.Management.ManagedCache.ManagedCacheClient. + /// + public ManagedCacheClient Client + { + get { return this._client; } } /// - /// List supported regions of Cache Service + /// Creates a new Cache Service in specified subscription and cloud + /// service. /// + /// + /// Required. The name of the cloud service. + /// + /// + /// Required. A name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. + /// + /// + /// Required. Parameter supplied to create a cache service + /// /// /// Cancellation token. /// @@ -2715,22 +2285,45 @@ public async Task GetKeysAsync(string cloudServiceName, str /// A standard service response including an HTTP status code and /// request ID. /// - public async Task ListRegionsAsync(CancellationToken cancellationToken) + public async Task BeginCreatingCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken) { // Validate + if (cloudServiceName == null) + { + throw new ArgumentNullException("cloudServiceName"); + } + if (cacheServiceName == null) + { + throw new ArgumentNullException("cacheServiceName"); + } + if (cacheServiceName.Length < 6) + { + throw new ArgumentOutOfRangeException("cacheServiceName"); + } + if (cacheServiceName.Length > 20) + { + throw new ArgumentOutOfRangeException("cacheServiceName"); + } + if (parameters == null) + { + throw new ArgumentNullException("parameters"); + } // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); - Tracing.Enter(invocationId, this, "ListRegionsAsync", tracingParameters); + tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("cacheServiceName", cacheServiceName); + tracingParameters.Add("parameters", parameters); + TracingAdapter.Enter(invocationId, this, "BeginCreatingCacheServiceAsync", tracingParameters); } // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/mycloudservice/resources/cacheservice/~/Caching/mycacheservice/Options/Regions"; + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/" + Uri.EscapeDataString(cloudServiceName) + "/resources/cacheservice/Caching/" + Uri.EscapeDataString(cacheServiceName); string baseUrl = this.Client.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') @@ -2749,62 +2342,268 @@ public async Task ListRegionsAsync(CancellationToken cancellati try { httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Get; + httpRequest.Method = HttpMethod.Put; httpRequest.RequestUri = new Uri(url); // Set Headers + httpRequest.Headers.TryAddWithoutValidation("If-Match", parameters.ETag); httpRequest.Headers.Add("x-ms-version", "2012-08-01"); // Set Credentials cancellationToken.ThrowIfCancellationRequested(); await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + // Serialize Request + string requestContent = null; + XDocument requestDoc = new XDocument(); + + XElement resourceElement = new XElement(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure")); + requestDoc.Add(resourceElement); + + if (parameters.ResourceProviderNamespace != null) + { + XElement resourceProviderNamespaceElement = new XElement(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); + resourceProviderNamespaceElement.Value = parameters.ResourceProviderNamespace; + resourceElement.Add(resourceProviderNamespaceElement); + } + + if (parameters.Type != null) + { + XElement typeElement = new XElement(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); + typeElement.Value = parameters.Type; + resourceElement.Add(typeElement); + } + + if (parameters.Name != null) + { + XElement nameElement = new XElement(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + nameElement.Value = parameters.Name; + resourceElement.Add(nameElement); + } + + if (parameters.SchemaVersion != null) + { + XElement schemaVersionElement = new XElement(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); + schemaVersionElement.Value = parameters.SchemaVersion; + resourceElement.Add(schemaVersionElement); + } + + if (parameters.Settings != null) + { + XElement intrinsicSettingsElement = new XElement(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); + resourceElement.Add(intrinsicSettingsElement); + + if (parameters.Settings.CacheServiceInputSection != null) + { + XElement cacheServiceInputElement = new XElement(XName.Get("CacheServiceInput", "")); + intrinsicSettingsElement.Add(cacheServiceInputElement); + + XElement skuTypeElement = new XElement(XName.Get("SkuType", "")); + skuTypeElement.Value = parameters.Settings.CacheServiceInputSection.SkuType.ToString(); + cacheServiceInputElement.Add(skuTypeElement); + + if (parameters.Settings.CacheServiceInputSection.Location != null) + { + XElement locationElement = new XElement(XName.Get("Location", "")); + locationElement.Value = parameters.Settings.CacheServiceInputSection.Location; + cacheServiceInputElement.Add(locationElement); + } + + XElement skuCountElement = new XElement(XName.Get("SkuCount", "")); + skuCountElement.Value = parameters.Settings.CacheServiceInputSection.SkuCount.ToString(); + cacheServiceInputElement.Add(skuCountElement); + + if (parameters.Settings.CacheServiceInputSection.ServiceVersion != null) + { + XElement serviceVersionElement = new XElement(XName.Get("ServiceVersion", "")); + serviceVersionElement.Value = parameters.Settings.CacheServiceInputSection.ServiceVersion; + cacheServiceInputElement.Add(serviceVersionElement); + } + + XElement objectSizeInBytesElement = new XElement(XName.Get("ObjectSizeInBytes", "")); + objectSizeInBytesElement.Value = parameters.Settings.CacheServiceInputSection.ObjectSizeInBytes.ToString(); + cacheServiceInputElement.Add(objectSizeInBytesElement); + + if (parameters.Settings.CacheServiceInputSection.NamedCaches != null) + { + if (parameters.Settings.CacheServiceInputSection.NamedCaches is ILazyCollection == false || ((ILazyCollection)parameters.Settings.CacheServiceInputSection.NamedCaches).IsInitialized) + { + XElement namedCachesSequenceElement = new XElement(XName.Get("NamedCaches", "")); + foreach (IntrinsicSettings.CacheServiceInput.NamedCache namedCachesItem in parameters.Settings.CacheServiceInputSection.NamedCaches) + { + XElement namedCacheElement = new XElement(XName.Get("NamedCache", "")); + namedCachesSequenceElement.Add(namedCacheElement); + + if (namedCachesItem.CacheName != null) + { + XElement cacheNameElement = new XElement(XName.Get("CacheName", "")); + cacheNameElement.Value = namedCachesItem.CacheName; + namedCacheElement.Add(cacheNameElement); + } + + XElement notificationsEnabledElement = new XElement(XName.Get("NotificationsEnabled", "")); + notificationsEnabledElement.Value = namedCachesItem.NotificationsEnabled.ToString().ToLower(); + namedCacheElement.Add(notificationsEnabledElement); + + XElement highAvailabilityEnabledElement = new XElement(XName.Get("HighAvailabilityEnabled", "")); + highAvailabilityEnabledElement.Value = namedCachesItem.HighAvailabilityEnabled.ToString().ToLower(); + namedCacheElement.Add(highAvailabilityEnabledElement); + + if (namedCachesItem.EvictionPolicy != null) + { + XElement evictionPolicyElement = new XElement(XName.Get("EvictionPolicy", "")); + evictionPolicyElement.Value = namedCachesItem.EvictionPolicy; + namedCacheElement.Add(evictionPolicyElement); + } + + if (namedCachesItem.ExpirationSettingsSection != null) + { + XElement expirationSettingsElement = new XElement(XName.Get("ExpirationSettings", "")); + namedCacheElement.Add(expirationSettingsElement); + + XElement timeToLiveInMinutesElement = new XElement(XName.Get("TimeToLiveInMinutes", "")); + timeToLiveInMinutesElement.Value = namedCachesItem.ExpirationSettingsSection.TimeToLiveInMinutes.ToString(); + expirationSettingsElement.Add(timeToLiveInMinutesElement); + + if (namedCachesItem.ExpirationSettingsSection.Type != null) + { + XElement typeElement2 = new XElement(XName.Get("Type", "")); + typeElement2.Value = namedCachesItem.ExpirationSettingsSection.Type; + expirationSettingsElement.Add(typeElement2); + } + } + } + cacheServiceInputElement.Add(namedCachesSequenceElement); + } + } + } + } + + if (parameters.IntrinsicSettingsSection != null) + { + XElement intrinsicSettingsElement2 = new XElement(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); + resourceElement.Add(intrinsicSettingsElement2); + + if (parameters.IntrinsicSettingsSection.CacheServiceInputSection != null) + { + XElement cacheServiceInputElement2 = new XElement(XName.Get("CacheServiceInput", "")); + intrinsicSettingsElement2.Add(cacheServiceInputElement2); + + XElement skuTypeElement2 = new XElement(XName.Get("SkuType", "")); + skuTypeElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.SkuType.ToString(); + cacheServiceInputElement2.Add(skuTypeElement2); + + if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.Location != null) + { + XElement locationElement2 = new XElement(XName.Get("Location", "")); + locationElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.Location; + cacheServiceInputElement2.Add(locationElement2); + } + + XElement skuCountElement2 = new XElement(XName.Get("SkuCount", "")); + skuCountElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.SkuCount.ToString(); + cacheServiceInputElement2.Add(skuCountElement2); + + if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.ServiceVersion != null) + { + XElement serviceVersionElement2 = new XElement(XName.Get("ServiceVersion", "")); + serviceVersionElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.ServiceVersion; + cacheServiceInputElement2.Add(serviceVersionElement2); + } + + XElement objectSizeInBytesElement2 = new XElement(XName.Get("ObjectSizeInBytes", "")); + objectSizeInBytesElement2.Value = parameters.IntrinsicSettingsSection.CacheServiceInputSection.ObjectSizeInBytes.ToString(); + cacheServiceInputElement2.Add(objectSizeInBytesElement2); + + if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches != null) + { + if (parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches is ILazyCollection == false || ((ILazyCollection)parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches).IsInitialized) + { + XElement namedCachesSequenceElement2 = new XElement(XName.Get("NamedCaches", "")); + foreach (IntrinsicSettings.CacheServiceInput.NamedCache namedCachesItem2 in parameters.IntrinsicSettingsSection.CacheServiceInputSection.NamedCaches) + { + XElement namedCacheElement2 = new XElement(XName.Get("NamedCache", "")); + namedCachesSequenceElement2.Add(namedCacheElement2); + + if (namedCachesItem2.CacheName != null) + { + XElement cacheNameElement2 = new XElement(XName.Get("CacheName", "")); + cacheNameElement2.Value = namedCachesItem2.CacheName; + namedCacheElement2.Add(cacheNameElement2); + } + + XElement notificationsEnabledElement2 = new XElement(XName.Get("NotificationsEnabled", "")); + notificationsEnabledElement2.Value = namedCachesItem2.NotificationsEnabled.ToString().ToLower(); + namedCacheElement2.Add(notificationsEnabledElement2); + + XElement highAvailabilityEnabledElement2 = new XElement(XName.Get("HighAvailabilityEnabled", "")); + highAvailabilityEnabledElement2.Value = namedCachesItem2.HighAvailabilityEnabled.ToString().ToLower(); + namedCacheElement2.Add(highAvailabilityEnabledElement2); + + if (namedCachesItem2.EvictionPolicy != null) + { + XElement evictionPolicyElement2 = new XElement(XName.Get("EvictionPolicy", "")); + evictionPolicyElement2.Value = namedCachesItem2.EvictionPolicy; + namedCacheElement2.Add(evictionPolicyElement2); + } + + if (namedCachesItem2.ExpirationSettingsSection != null) + { + XElement expirationSettingsElement2 = new XElement(XName.Get("ExpirationSettings", "")); + namedCacheElement2.Add(expirationSettingsElement2); + + XElement timeToLiveInMinutesElement2 = new XElement(XName.Get("TimeToLiveInMinutes", "")); + timeToLiveInMinutesElement2.Value = namedCachesItem2.ExpirationSettingsSection.TimeToLiveInMinutes.ToString(); + expirationSettingsElement2.Add(timeToLiveInMinutesElement2); + + if (namedCachesItem2.ExpirationSettingsSection.Type != null) + { + XElement typeElement3 = new XElement(XName.Get("Type", "")); + typeElement3.Value = namedCachesItem2.ExpirationSettingsSection.Type; + expirationSettingsElement2.Add(typeElement3); + } + } + } + cacheServiceInputElement2.Add(namedCachesSequenceElement2); + } + } + } + } + + requestContent = requestDoc.ToString(); + httpRequest.Content = new StringContent(requestContent, Encoding.UTF8); + httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); + // Send Request HttpResponseMessage httpResponse = null; try { if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); + TracingAdapter.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { - Tracing.ReceiveResponse(invocationId, httpResponse); + TracingAdapter.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.OK) + if (statusCode != HttpStatusCode.Accepted) { cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { - Tracing.Error(invocationId, ex); + TracingAdapter.Error(invocationId, ex); } throw ex; } // Create Result - RegionsResponse result = null; + AzureOperationResponse result = null; // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new RegionsResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement regionsSequenceElement = responseDoc.Element(XName.Get("Regions", "http://schemas.microsoft.com/windowsazure")); - if (regionsSequenceElement != null) - { - foreach (XElement regionsElement in regionsSequenceElement.Elements(XName.Get("Region", "http://schemas.microsoft.com/windowsazure"))) - { - RegionsResponse.Region regionInstance = new RegionsResponse.Region(); - result.Regions.Add(regionInstance); - - regionInstance.Location = regionsElement.Value; - } - } - + result = new AzureOperationResponse(); result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { @@ -2813,7 +2612,7 @@ public async Task ListRegionsAsync(CancellationToken cancellati if (shouldTrace) { - Tracing.Exit(invocationId, result); + TracingAdapter.Exit(invocationId, result); } return result; } @@ -2835,16 +2634,17 @@ public async Task ListRegionsAsync(CancellationToken cancellati } /// - /// Regenerate access keys for a Cache Service + /// The begin of deleting Cache Service.This operation is an + /// asynchronous operation. To determine whether service has finished + /// processing the request, call Get Operation. (see + /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more + /// information) /// /// - /// Required. The cloud service name. + /// Required. The name of the cloud service. /// /// - /// Required. The cache service name. - /// - /// - /// Required. Key type + /// Required. A name of the cache service. /// /// /// Cancellation token. @@ -2853,45 +2653,32 @@ public async Task ListRegionsAsync(CancellationToken cancellati /// A standard service response including an HTTP status code and /// request ID. /// - public async Task RegenerateKeysAsync(string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters, CancellationToken cancellationToken) + public async Task BeginDeletingAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) { // Validate if (cloudServiceName == null) { throw new ArgumentNullException("cloudServiceName"); } - if (cloudServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cloudServiceName"); - } if (cacheServiceName == null) { throw new ArgumentNullException("cacheServiceName"); } - if (cacheServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cacheServiceName"); - } - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); tracingParameters.Add("cloudServiceName", cloudServiceName); tracingParameters.Add("cacheServiceName", cacheServiceName); - tracingParameters.Add("parameters", parameters); - Tracing.Enter(invocationId, this, "RegenerateKeysAsync", tracingParameters); + TracingAdapter.Enter(invocationId, this, "BeginDeletingAsync", tracingParameters); } // Construct URL - string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/cloudservices/" + cloudServiceName.Trim() + "/resources/cacheservice/~/Caching/" + cacheServiceName.Trim() + "/Keys/?comp=regenerate"; + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/" + Uri.EscapeDataString(cloudServiceName) + "/resources/cacheservice/Caching/" + Uri.EscapeDataString(cacheServiceName); string baseUrl = this.Client.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') @@ -2910,33 +2697,15 @@ public async Task RegenerateKeysAsync(string cloudServiceNa try { httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Post; + httpRequest.Method = HttpMethod.Delete; httpRequest.RequestUri = new Uri(url); // Set Headers - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Serialize Request - string requestContent = null; - XDocument requestDoc = new XDocument(); - - XElement regenerateKeysElement = new XElement(XName.Get("RegenerateKeys", "http://schemas.microsoft.com/windowsazure")); - requestDoc.Add(regenerateKeysElement); - - if (parameters.KeyType != null) - { - XElement keyTypeElement = new XElement(XName.Get("KeyType", "http://schemas.microsoft.com/windowsazure")); - keyTypeElement.Value = parameters.KeyType; - regenerateKeysElement.Add(keyTypeElement); - } + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - requestContent = requestDoc.ToString(); - httpRequest.Content = new StringContent(requestContent, Encoding.UTF8); - httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); // Send Request HttpResponseMessage httpResponse = null; @@ -2944,52 +2713,30 @@ public async Task RegenerateKeysAsync(string cloudServiceNa { if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); + TracingAdapter.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { - Tracing.ReceiveResponse(invocationId, httpResponse); + TracingAdapter.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.OK) + if (statusCode != HttpStatusCode.Accepted) { cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { - Tracing.Error(invocationId, ex); + TracingAdapter.Error(invocationId, ex); } throw ex; } // Create Result - CachingKeysResponse result = null; + AzureOperationResponse result = null; // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CachingKeysResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement cachingKeysElement = responseDoc.Element(XName.Get("CachingKeys", "http://schemas.microsoft.com/windowsazure")); - if (cachingKeysElement != null) - { - XElement primaryElement = cachingKeysElement.Element(XName.Get("Primary", "http://schemas.microsoft.com/windowsazure")); - if (primaryElement != null) - { - string primaryInstance = primaryElement.Value; - result.Primary = primaryInstance; - } - - XElement secondaryElement = cachingKeysElement.Element(XName.Get("Secondary", "http://schemas.microsoft.com/windowsazure")); - if (secondaryElement != null) - { - string secondaryInstance = secondaryElement.Value; - result.Secondary = secondaryInstance; - } - } - + result = new AzureOperationResponse(); result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { @@ -2998,7 +2745,7 @@ public async Task RegenerateKeysAsync(string cloudServiceNa if (shouldTrace) { - Tracing.Exit(invocationId, result); + TracingAdapter.Exit(invocationId, result); } return result; } @@ -3018,112 +2765,15 @@ public async Task RegenerateKeysAsync(string cloudServiceNa } } } - } - - public partial interface ICloudServiceOperations - { - /// - /// Create a cloud service. - /// - /// - /// The cloud service name. - /// - /// - /// Parameters supplied to the Create cloud service operation. - /// - /// - /// Cancellation token. - /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - Task BeginCreatingAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken); - - /// - /// Create a cloud service. - /// - /// - /// The cloud service name. - /// - /// - /// Parameters supplied to the Create cloud service operation. - /// - /// - /// Cancellation token. - /// - /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. - /// - Task CreateAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken); - - /// - /// Retrieve a cloud service. - /// - /// - /// The cloud service name. - /// - /// - /// Cancellation token. - /// - /// - /// Information about a retrieved Cloud Service. - /// - Task GetAsync(string cloudServiceName, CancellationToken cancellationToken); - - /// - /// The List Cloud Services operation enumerates services that are - /// provisioned for a subscription. - /// - /// - /// Cancellation token. - /// - /// - /// The response structure for the Cloud Service List operation. - /// - Task ListAsync(CancellationToken cancellationToken); - } - - internal partial class CloudServiceOperations : IServiceOperations, ICloudServiceOperations - { - /// - /// Initializes a new instance of the CloudServiceOperations class. - /// - /// - /// Reference to the service client. - /// - internal CloudServiceOperations(ManagedCacheClient client) - { - this._client = client; - } - - private ManagedCacheClient _client; - - /// - /// Gets a reference to the - /// Microsoft.Azure.Management.ManagedCache.ManagedCacheClient. - /// - public ManagedCacheClient Client - { - get { return this._client; } - } /// - /// Create a cloud service. + /// Get access keys of Cache Service /// /// /// Required. The cloud service name. /// - /// - /// Required. Parameters supplied to the Create cloud service operation. + /// + /// Required. The cache service name. /// /// /// Cancellation token. @@ -3132,56 +2782,32 @@ public ManagedCacheClient Client /// A standard service response including an HTTP status code and /// request ID. /// - public async Task BeginCreatingAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken) + public async Task CheckNameAvailabilityAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) { // Validate if (cloudServiceName == null) { throw new ArgumentNullException("cloudServiceName"); } - if (cloudServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cloudServiceName"); - } - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } - if (parameters.Description == null) - { - throw new ArgumentNullException("parameters.Description"); - } - if (parameters.Description.Length > 1024) - { - throw new ArgumentOutOfRangeException("parameters.Description"); - } - if (parameters.GeoRegion == null) - { - throw new ArgumentNullException("parameters.GeoRegion"); - } - if (parameters.Label == null) - { - throw new ArgumentNullException("parameters.Label"); - } - if (parameters.Label.Length > 100) + if (cacheServiceName == null) { - throw new ArgumentOutOfRangeException("parameters.Label"); + throw new ArgumentNullException("cacheServiceName"); } // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); tracingParameters.Add("cloudServiceName", cloudServiceName); - tracingParameters.Add("parameters", parameters); - Tracing.Enter(invocationId, this, "BeginCreatingAsync", tracingParameters); + tracingParameters.Add("cacheServiceName", cacheServiceName); + TracingAdapter.Enter(invocationId, this, "CheckNameAvailabilityAsync", tracingParameters); } // Construct URL - string url = (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/CloudServices/" + cloudServiceName.Trim(); + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/" + Uri.EscapeDataString(cloudServiceName) + "/resources/cacheservice/~/Caching/dummy/Namespaces/" + Uri.EscapeDataString(cacheServiceName); string baseUrl = this.Client.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') @@ -3200,7 +2826,7 @@ public async Task BeginCreatingAsync(string cloudServiceName, try { httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Put; + httpRequest.Method = HttpMethod.Get; httpRequest.RequestUri = new Uri(url); // Set Headers @@ -3210,65 +2836,50 @@ public async Task BeginCreatingAsync(string cloudServiceName, cancellationToken.ThrowIfCancellationRequested(); await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - // Serialize Request - string requestContent = null; - XDocument requestDoc = new XDocument(); - - XElement cloudServiceElement = new XElement(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure")); - requestDoc.Add(cloudServiceElement); - - XElement labelElement = new XElement(XName.Get("Label", "http://schemas.microsoft.com/windowsazure")); - labelElement.Value = parameters.Label; - cloudServiceElement.Add(labelElement); - - XElement descriptionElement = new XElement(XName.Get("Description", "http://schemas.microsoft.com/windowsazure")); - descriptionElement.Value = parameters.Description; - cloudServiceElement.Add(descriptionElement); - - XElement geoRegionElement = new XElement(XName.Get("GeoRegion", "http://schemas.microsoft.com/windowsazure")); - geoRegionElement.Value = parameters.GeoRegion; - cloudServiceElement.Add(geoRegionElement); - - if (parameters.Email != null) - { - XElement emailElement = new XElement(XName.Get("Email", "http://schemas.microsoft.com/windowsazure")); - emailElement.Value = parameters.Email; - cloudServiceElement.Add(emailElement); - } - - requestContent = requestDoc.ToString(); - httpRequest.Content = new StringContent(requestContent, Encoding.UTF8); - httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); - // Send Request HttpResponseMessage httpResponse = null; try { if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); + TracingAdapter.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { - Tracing.ReceiveResponse(invocationId, httpResponse); + TracingAdapter.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.Accepted) + if (statusCode != HttpStatusCode.OK) { cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { - Tracing.Error(invocationId, ex); + TracingAdapter.Error(invocationId, ex); } throw ex; } // Create Result - OperationResponse result = null; - result = new OperationResponse(); + CheckCacheNameAvailabilityResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CheckCacheNameAvailabilityResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement booleanElement = responseDoc.Element(XName.Get("boolean", "http://schemas.microsoft.com/2003/10/Serialization/")); + if (booleanElement != null) + { + bool booleanInstance = bool.Parse(booleanElement.Value); + result.Available = booleanInstance; + } + + } result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { @@ -3277,7 +2888,7 @@ public async Task BeginCreatingAsync(string cloudServiceName, if (shouldTrace) { - Tracing.Exit(invocationId, result); + TracingAdapter.Exit(invocationId, result); } return result; } @@ -3299,13 +2910,19 @@ public async Task BeginCreatingAsync(string cloudServiceName, } /// - /// Create a cloud service. + /// Creates a new Cache Service in specified subscription and cloud + /// service. /// /// - /// Required. The cloud service name. + /// Required. The name of the cloud service. + /// + /// + /// Required. The name of the cache service. The name can be up to 20 + /// characters in length with minimum 6 characters and must be all + /// lower cases. /// /// - /// Required. Parameters supplied to the Create cloud service operation. + /// Required. Parameter supplied to create a cache service /// /// /// Cancellation token. @@ -3321,464 +2938,204 @@ public async Task BeginCreatingAsync(string cloudServiceName, /// status code for the failed request, and also includes error /// information regarding the failure. /// - public async Task CreateAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken) + public async Task CreateCacheServiceAsync(string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters, CancellationToken cancellationToken) { ManagedCacheClient client = this.Client; - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("cacheServiceName", cacheServiceName); tracingParameters.Add("parameters", parameters); - Tracing.Enter(invocationId, this, "CreateAsync", tracingParameters); + TracingAdapter.Enter(invocationId, this, "CreateCacheServiceAsync", tracingParameters); } - try + + cancellationToken.ThrowIfCancellationRequested(); + AzureOperationResponse response = await client.CacheServices.BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, cancellationToken).ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + int delayInSeconds = 30; + while ((result.Status != CloudServiceOperationStatus.InProgress) == false) { - if (shouldTrace) - { - client = this.Client.WithHandler(new ClientRequestTrackingHandler(invocationId)); - } - cancellationToken.ThrowIfCancellationRequested(); - OperationResponse response = await client.CloudServices.BeginCreatingAsync(cloudServiceName, parameters, cancellationToken).ConfigureAwait(false); + await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); - CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - int delayInSeconds = 10; - while ((result.Status != CloudServiceOperationStatus.InProgress) == false) - { - cancellationToken.ThrowIfCancellationRequested(); - await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); - result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); - delayInSeconds = 5; - } - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); - } - - if (result.Status != CloudServiceOperationStatus.Succeeded) + result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + delayInSeconds = 30; + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + + if (result.Status != CloudServiceOperationStatus.Succeeded) + { + if (result.Error != null) { - if (result.Error != null) - { - CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); - ex.ErrorCode = result.Error.Code; - ex.ErrorMessage = result.Error.Message; - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - else + CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); + ex.Error = new CloudError(); + ex.Error.Code = result.Error.Code; + ex.Error.Message = result.Error.Message; + if (shouldTrace) { - CloudException ex = new CloudException(""); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; + TracingAdapter.Error(invocationId, ex); } + throw ex; } - - return result; - } - finally - { - if (client != null && shouldTrace) + else { - client.Dispose(); + CloudException ex = new CloudException(""); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; } } + + return result; } /// - /// Retrieve a cloud service. + /// Delete Cache Service in specified subscription and cloud service. + /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for + /// more information) /// /// - /// Required. The cloud service name. + /// Required. The name of the cloud service. + /// + /// + /// Required. A name of the cache service. /// /// /// Cancellation token. /// /// - /// Information about a retrieved Cloud Service. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - public async Task GetAsync(string cloudServiceName, CancellationToken cancellationToken) + public async Task DeleteAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) { - // Validate - if (cloudServiceName == null) - { - throw new ArgumentNullException("cloudServiceName"); - } - if (cloudServiceName.Length > 100) - { - throw new ArgumentOutOfRangeException("cloudServiceName"); - } - - // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + ManagedCacheClient client = this.Client; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); tracingParameters.Add("cloudServiceName", cloudServiceName); - Tracing.Enter(invocationId, this, "GetAsync", tracingParameters); + tracingParameters.Add("cacheServiceName", cacheServiceName); + TracingAdapter.Enter(invocationId, this, "DeleteAsync", tracingParameters); } - // Construct URL - string url = (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/CloudServices/" + cloudServiceName.Trim(); - string baseUrl = this.Client.BaseUri.AbsoluteUri; - // Trim '/' character from the end of baseUrl and beginning of url. - if (baseUrl[baseUrl.Length - 1] == '/') + cancellationToken.ThrowIfCancellationRequested(); + AzureOperationResponse response = await client.CacheServices.BeginDeletingAsync(cloudServiceName, cacheServiceName, cancellationToken).ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + int delayInSeconds = 30; + while ((result.Status != CloudServiceOperationStatus.InProgress) == false) { - baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + cancellationToken.ThrowIfCancellationRequested(); + await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + delayInSeconds = 30; } - if (url[0] == '/') + + if (shouldTrace) { - url = url.Substring(1); + TracingAdapter.Exit(invocationId, result); } - url = baseUrl + "/" + url; - url = url.Replace(" ", "%20"); - // Create HTTP transport objects - HttpRequestMessage httpRequest = null; - try + if (result.Status != CloudServiceOperationStatus.Succeeded) { - httpRequest = new HttpRequestMessage(); - httpRequest.Method = HttpMethod.Get; - httpRequest.RequestUri = new Uri(url); - - // Set Headers - httpRequest.Headers.Add("x-ms-version", "2012-08-01"); - - // Set Credentials - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); - - // Send Request - HttpResponseMessage httpResponse = null; - try + if (result.Error != null) { + CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); + ex.Error = new CloudError(); + ex.Error.Code = result.Error.Code; + ex.Error.Message = result.Error.Message; if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); - if (shouldTrace) - { - Tracing.ReceiveResponse(invocationId, httpResponse); - } - HttpStatusCode statusCode = httpResponse.StatusCode; - if (statusCode != HttpStatusCode.OK) - { - cancellationToken.ThrowIfCancellationRequested(); - CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); - if (shouldTrace) - { - Tracing.Error(invocationId, ex); - } - throw ex; - } - - // Create Result - CloudServiceGetResponse result = null; - // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CloudServiceGetResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement cloudServiceElement = responseDoc.Element(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure")); - if (cloudServiceElement != null) - { - XElement geoLocationElement = cloudServiceElement.Element(XName.Get("GeoLocation", "http://schemas.microsoft.com/windowsazure")); - if (geoLocationElement != null) - { - string geoLocationInstance = geoLocationElement.Value; - result.GeoLocation = geoLocationInstance; - } - - XElement resourcesSequenceElement = cloudServiceElement.Element(XName.Get("Resources", "http://schemas.microsoft.com/windowsazure")); - if (resourcesSequenceElement != null) - { - foreach (XElement resourcesElement in resourcesSequenceElement.Elements(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure"))) - { - CloudServiceResource resourceInstance = new CloudServiceResource(); - result.Resources.Add(resourceInstance); - - XElement resourceProviderNamespaceElement = resourcesElement.Element(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); - if (resourceProviderNamespaceElement != null) - { - string resourceProviderNamespaceInstance = resourceProviderNamespaceElement.Value; - resourceInstance.Namespace = resourceProviderNamespaceInstance; - } - - XElement typeElement = resourcesElement.Element(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); - if (typeElement != null) - { - string typeInstance = typeElement.Value; - resourceInstance.Type = typeInstance; - } - - XElement nameElement = resourcesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - if (nameElement != null) - { - string nameInstance = nameElement.Value; - resourceInstance.Name = nameInstance; - } - - XElement planElement = resourcesElement.Element(XName.Get("Plan", "http://schemas.microsoft.com/windowsazure")); - if (planElement != null) - { - string planInstance = planElement.Value; - resourceInstance.Plan = planInstance; - } - - XElement schemaVersionElement = resourcesElement.Element(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); - if (schemaVersionElement != null) - { - string schemaVersionInstance = schemaVersionElement.Value; - resourceInstance.SchemaVersion = schemaVersionInstance; - } - - XElement eTagElement = resourcesElement.Element(XName.Get("ETag", "http://schemas.microsoft.com/windowsazure")); - if (eTagElement != null) - { - string eTagInstance = eTagElement.Value; - resourceInstance.ETag = eTagInstance; - } - - XElement stateElement = resourcesElement.Element(XName.Get("State", "http://schemas.microsoft.com/windowsazure")); - if (stateElement != null) - { - string stateInstance = stateElement.Value; - resourceInstance.State = stateInstance; - } - - XElement subStateElement = resourcesElement.Element(XName.Get("SubState", "http://schemas.microsoft.com/windowsazure")); - if (subStateElement != null) - { - string subStateInstance = subStateElement.Value; - resourceInstance.SubState = subStateInstance; - } - - XElement usageMetersSequenceElement = resourcesElement.Element(XName.Get("UsageMeters", "http://schemas.microsoft.com/windowsazure")); - if (usageMetersSequenceElement != null) - { - foreach (XElement usageMetersElement in usageMetersSequenceElement.Elements(XName.Get("UsageMeter", "http://schemas.microsoft.com/windowsazure"))) - { - CloudServiceResource.UsageLimit usageMeterInstance = new CloudServiceResource.UsageLimit(); - resourceInstance.UsageLimits.Add(usageMeterInstance); - - XElement nameElement2 = usageMetersElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - if (nameElement2 != null) - { - string nameInstance2 = nameElement2.Value; - usageMeterInstance.Name = nameInstance2; - } - - XElement unitElement = usageMetersElement.Element(XName.Get("Unit", "http://schemas.microsoft.com/windowsazure")); - if (unitElement != null) - { - string unitInstance = unitElement.Value; - usageMeterInstance.Unit = unitInstance; - } - - XElement includedElement = usageMetersElement.Element(XName.Get("Included", "http://schemas.microsoft.com/windowsazure")); - if (includedElement != null) - { - string includedInstance = includedElement.Value; - usageMeterInstance.AmountIncluded = includedInstance; - } - - XElement usedElement = usageMetersElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure")); - if (usedElement != null) - { - string usedInstance = usedElement.Value; - usageMeterInstance.AmountUsed = usedInstance; - } - } - } - - XElement outputItemsSequenceElement = resourcesElement.Element(XName.Get("OutputItems", "http://schemas.microsoft.com/windowsazure")); - if (outputItemsSequenceElement != null) - { - foreach (XElement outputItemsElement in outputItemsSequenceElement.Elements(XName.Get("OutputItem", "http://schemas.microsoft.com/windowsazure"))) - { - string outputItemsKey = outputItemsElement.Element(XName.Get("Key", "http://schemas.microsoft.com/windowsazure")).Value; - string outputItemsValue = outputItemsElement.Element(XName.Get("Value", "http://schemas.microsoft.com/windowsazure")).Value; - resourceInstance.OutputItems.Add(outputItemsKey, outputItemsValue); - } - } - - XElement intrinsicSettingsElement = resourcesElement.Element(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); - if (intrinsicSettingsElement != null) - { - IntrinsicSettings intrinsicSettingsInstance = new IntrinsicSettings(); - resourceInstance.IntrinsicSettingsSection = intrinsicSettingsInstance; - - XElement cacheServiceInputElement = intrinsicSettingsElement.Element(XName.Get("CacheServiceInput", "")); - if (cacheServiceInputElement != null) - { - IntrinsicSettings.CacheServiceInput cacheServiceInputInstance = new IntrinsicSettings.CacheServiceInput(); - intrinsicSettingsInstance.CacheServiceInputSection = cacheServiceInputInstance; - - XElement skuTypeElement = cacheServiceInputElement.Element(XName.Get("SkuType", "")); - if (skuTypeElement != null) - { - CacheServiceSkuType skuTypeInstance = ((CacheServiceSkuType)Enum.Parse(typeof(CacheServiceSkuType), skuTypeElement.Value, true)); - cacheServiceInputInstance.SkuType = skuTypeInstance; - } - - XElement locationElement = cacheServiceInputElement.Element(XName.Get("Location", "")); - if (locationElement != null) - { - string locationInstance = locationElement.Value; - cacheServiceInputInstance.Location = locationInstance; - } - - XElement skuCountElement = cacheServiceInputElement.Element(XName.Get("SkuCount", "")); - if (skuCountElement != null) - { - int skuCountInstance = int.Parse(skuCountElement.Value, CultureInfo.InvariantCulture); - cacheServiceInputInstance.SkuCount = skuCountInstance; - } - - XElement serviceVersionElement = cacheServiceInputElement.Element(XName.Get("ServiceVersion", "")); - if (serviceVersionElement != null) - { - string serviceVersionInstance = serviceVersionElement.Value; - cacheServiceInputInstance.ServiceVersion = serviceVersionInstance; - } - - XElement objectSizeInBytesElement = cacheServiceInputElement.Element(XName.Get("ObjectSizeInBytes", "")); - if (objectSizeInBytesElement != null) - { - int objectSizeInBytesInstance = int.Parse(objectSizeInBytesElement.Value, CultureInfo.InvariantCulture); - cacheServiceInputInstance.ObjectSizeInBytes = objectSizeInBytesInstance; - } - - XElement namedCachesSequenceElement = cacheServiceInputElement.Element(XName.Get("NamedCaches", "")); - if (namedCachesSequenceElement != null) - { - foreach (XElement namedCachesElement in namedCachesSequenceElement.Elements(XName.Get("NamedCache", ""))) - { - IntrinsicSettings.CacheServiceInput.NamedCache namedCacheInstance = new IntrinsicSettings.CacheServiceInput.NamedCache(); - cacheServiceInputInstance.NamedCaches.Add(namedCacheInstance); - - XElement cacheNameElement = namedCachesElement.Element(XName.Get("CacheName", "")); - if (cacheNameElement != null) - { - string cacheNameInstance = cacheNameElement.Value; - namedCacheInstance.CacheName = cacheNameInstance; - } - - XElement notificationsEnabledElement = namedCachesElement.Element(XName.Get("NotificationsEnabled", "")); - if (notificationsEnabledElement != null) - { - bool notificationsEnabledInstance = bool.Parse(notificationsEnabledElement.Value); - namedCacheInstance.NotificationsEnabled = notificationsEnabledInstance; - } - - XElement highAvailabilityEnabledElement = namedCachesElement.Element(XName.Get("HighAvailabilityEnabled", "")); - if (highAvailabilityEnabledElement != null) - { - bool highAvailabilityEnabledInstance = bool.Parse(highAvailabilityEnabledElement.Value); - namedCacheInstance.HighAvailabilityEnabled = highAvailabilityEnabledInstance; - } - - XElement evictionPolicyElement = namedCachesElement.Element(XName.Get("EvictionPolicy", "")); - if (evictionPolicyElement != null) - { - string evictionPolicyInstance = evictionPolicyElement.Value; - namedCacheInstance.EvictionPolicy = evictionPolicyInstance; - } - - XElement expirationSettingsElement = namedCachesElement.Element(XName.Get("ExpirationSettings", "")); - if (expirationSettingsElement != null) - { - IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings expirationSettingsInstance = new IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings(); - namedCacheInstance.ExpirationSettingsSection = expirationSettingsInstance; - - XElement timeToLiveInMinutesElement = expirationSettingsElement.Element(XName.Get("TimeToLiveInMinutes", "")); - if (timeToLiveInMinutesElement != null) - { - int timeToLiveInMinutesInstance = int.Parse(timeToLiveInMinutesElement.Value, CultureInfo.InvariantCulture); - expirationSettingsInstance.TimeToLiveInMinutes = timeToLiveInMinutesInstance; - } - - XElement typeElement2 = expirationSettingsElement.Element(XName.Get("Type", "")); - if (typeElement2 != null) - { - string typeInstance2 = typeElement2.Value; - expirationSettingsInstance.Type = typeInstance2; - } - } - } - } - } - } - } - } - } - - result.StatusCode = statusCode; - - if (shouldTrace) - { - Tracing.Exit(invocationId, result); + TracingAdapter.Error(invocationId, ex); } - return result; + throw ex; } - finally + else { - if (httpResponse != null) + CloudException ex = new CloudException(""); + if (shouldTrace) { - httpResponse.Dispose(); + TracingAdapter.Error(invocationId, ex); } + throw ex; } } - finally - { - if (httpRequest != null) - { - httpRequest.Dispose(); - } - } + + return result; } /// - /// The List Cloud Services operation enumerates services that are - /// provisioned for a subscription. + /// Get access keys of Cache Service /// + /// + /// Required. The cloud service name. + /// + /// + /// Required. The cache service name. + /// /// /// Cancellation token. /// /// - /// The response structure for the Cloud Service List operation. + /// A standard service response including an HTTP status code and + /// request ID. /// - public async Task ListAsync(CancellationToken cancellationToken) + public async Task GetKeysAsync(string cloudServiceName, string cacheServiceName, CancellationToken cancellationToken) { // Validate + if (cloudServiceName == null) + { + throw new ArgumentNullException("cloudServiceName"); + } + if (cloudServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cloudServiceName"); + } + if (cacheServiceName == null) + { + throw new ArgumentNullException("cacheServiceName"); + } + if (cacheServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cacheServiceName"); + } // Tracing - bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; + bool shouldTrace = TracingAdapter.IsEnabled; string invocationId = null; if (shouldTrace) { - invocationId = Tracing.NextInvocationId.ToString(); + invocationId = TracingAdapter.NextInvocationId.ToString(); Dictionary tracingParameters = new Dictionary(); - Tracing.Enter(invocationId, this, "ListAsync", tracingParameters); + tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("cacheServiceName", cacheServiceName); + TracingAdapter.Enter(invocationId, this, "GetKeysAsync", tracingParameters); } // Construct URL - string url = (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/CloudServices"; + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/" + Uri.EscapeDataString(cloudServiceName) + "/resources/cacheservice/~/Caching/" + Uri.EscapeDataString(cacheServiceName) + "/Keys"; string baseUrl = this.Client.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') @@ -3813,13 +3170,13 @@ public async Task ListAsync(CancellationToken cancella { if (shouldTrace) { - Tracing.SendRequest(invocationId, httpRequest); + TracingAdapter.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { - Tracing.ReceiveResponse(invocationId, httpResponse); + TracingAdapter.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; if (statusCode != HttpStatusCode.OK) @@ -3828,280 +3185,172 @@ public async Task ListAsync(CancellationToken cancella CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { - Tracing.Error(invocationId, ex); + TracingAdapter.Error(invocationId, ex); } throw ex; } // Create Result - CloudServiceListResponse result = null; - // Deserialize Response - cancellationToken.ThrowIfCancellationRequested(); - string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - result = new CloudServiceListResponse(); - XDocument responseDoc = XDocument.Parse(responseContent); - - XElement cloudServicesSequenceElement = responseDoc.Element(XName.Get("CloudServices", "http://schemas.microsoft.com/windowsazure")); - if (cloudServicesSequenceElement != null) - { - foreach (XElement cloudServicesElement in cloudServicesSequenceElement.Elements(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure"))) - { - CloudServiceListResponse.CloudService cloudServiceInstance = new CloudServiceListResponse.CloudService(); - result.CloudServices.Add(cloudServiceInstance); - - XElement nameElement = cloudServicesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - if (nameElement != null) - { - string nameInstance = nameElement.Value; - cloudServiceInstance.Name = nameInstance; - } - - XElement labelElement = cloudServicesElement.Element(XName.Get("Label", "http://schemas.microsoft.com/windowsazure")); - if (labelElement != null) - { - string labelInstance = labelElement.Value; - cloudServiceInstance.Label = labelInstance; - } - - XElement descriptionElement = cloudServicesElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure")); - if (descriptionElement != null) - { - string descriptionInstance = descriptionElement.Value; - cloudServiceInstance.Description = descriptionInstance; - } - - XElement geoRegionElement = cloudServicesElement.Element(XName.Get("GeoRegion", "http://schemas.microsoft.com/windowsazure")); - if (geoRegionElement != null) + CachingKeysResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CachingKeysResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement cachingKeysElement = responseDoc.Element(XName.Get("CachingKeys", "http://schemas.microsoft.com/windowsazure")); + if (cachingKeysElement != null) + { + XElement primaryElement = cachingKeysElement.Element(XName.Get("Primary", "http://schemas.microsoft.com/windowsazure")); + if (primaryElement != null) { - string geoRegionInstance = geoRegionElement.Value; - cloudServiceInstance.GeoRegion = geoRegionInstance; + string primaryInstance = primaryElement.Value; + result.Primary = primaryInstance; } - XElement resourcesSequenceElement = cloudServicesElement.Element(XName.Get("Resources", "http://schemas.microsoft.com/windowsazure")); - if (resourcesSequenceElement != null) + XElement secondaryElement = cachingKeysElement.Element(XName.Get("Secondary", "http://schemas.microsoft.com/windowsazure")); + if (secondaryElement != null) { - foreach (XElement resourcesElement in resourcesSequenceElement.Elements(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure"))) - { - CloudServiceResource resourceInstance = new CloudServiceResource(); - cloudServiceInstance.Resources.Add(resourceInstance); - - XElement resourceProviderNamespaceElement = resourcesElement.Element(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); - if (resourceProviderNamespaceElement != null) - { - string resourceProviderNamespaceInstance = resourceProviderNamespaceElement.Value; - resourceInstance.Namespace = resourceProviderNamespaceInstance; - } - - XElement typeElement = resourcesElement.Element(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); - if (typeElement != null) - { - string typeInstance = typeElement.Value; - resourceInstance.Type = typeInstance; - } - - XElement nameElement2 = resourcesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - if (nameElement2 != null) - { - string nameInstance2 = nameElement2.Value; - resourceInstance.Name = nameInstance2; - } - - XElement planElement = resourcesElement.Element(XName.Get("Plan", "http://schemas.microsoft.com/windowsazure")); - if (planElement != null) - { - string planInstance = planElement.Value; - resourceInstance.Plan = planInstance; - } - - XElement schemaVersionElement = resourcesElement.Element(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); - if (schemaVersionElement != null) - { - string schemaVersionInstance = schemaVersionElement.Value; - resourceInstance.SchemaVersion = schemaVersionInstance; - } - - XElement eTagElement = resourcesElement.Element(XName.Get("ETag", "http://schemas.microsoft.com/windowsazure")); - if (eTagElement != null) - { - string eTagInstance = eTagElement.Value; - resourceInstance.ETag = eTagInstance; - } - - XElement stateElement = resourcesElement.Element(XName.Get("State", "http://schemas.microsoft.com/windowsazure")); - if (stateElement != null) - { - string stateInstance = stateElement.Value; - resourceInstance.State = stateInstance; - } - - XElement subStateElement = resourcesElement.Element(XName.Get("SubState", "http://schemas.microsoft.com/windowsazure")); - if (subStateElement != null) - { - string subStateInstance = subStateElement.Value; - resourceInstance.SubState = subStateInstance; - } - - XElement usageMetersSequenceElement = resourcesElement.Element(XName.Get("UsageMeters", "http://schemas.microsoft.com/windowsazure")); - if (usageMetersSequenceElement != null) - { - foreach (XElement usageMetersElement in usageMetersSequenceElement.Elements(XName.Get("UsageMeter", "http://schemas.microsoft.com/windowsazure"))) - { - CloudServiceResource.UsageLimit usageMeterInstance = new CloudServiceResource.UsageLimit(); - resourceInstance.UsageLimits.Add(usageMeterInstance); - - XElement nameElement3 = usageMetersElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); - if (nameElement3 != null) - { - string nameInstance3 = nameElement3.Value; - usageMeterInstance.Name = nameInstance3; - } - - XElement unitElement = usageMetersElement.Element(XName.Get("Unit", "http://schemas.microsoft.com/windowsazure")); - if (unitElement != null) - { - string unitInstance = unitElement.Value; - usageMeterInstance.Unit = unitInstance; - } - - XElement includedElement = usageMetersElement.Element(XName.Get("Included", "http://schemas.microsoft.com/windowsazure")); - if (includedElement != null) - { - string includedInstance = includedElement.Value; - usageMeterInstance.AmountIncluded = includedInstance; - } - - XElement usedElement = usageMetersElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure")); - if (usedElement != null) - { - string usedInstance = usedElement.Value; - usageMeterInstance.AmountUsed = usedInstance; - } - } - } - - XElement outputItemsSequenceElement = resourcesElement.Element(XName.Get("OutputItems", "http://schemas.microsoft.com/windowsazure")); - if (outputItemsSequenceElement != null) - { - foreach (XElement outputItemsElement in outputItemsSequenceElement.Elements(XName.Get("OutputItem", "http://schemas.microsoft.com/windowsazure"))) - { - string outputItemsKey = outputItemsElement.Element(XName.Get("Key", "http://schemas.microsoft.com/windowsazure")).Value; - string outputItemsValue = outputItemsElement.Element(XName.Get("Value", "http://schemas.microsoft.com/windowsazure")).Value; - resourceInstance.OutputItems.Add(outputItemsKey, outputItemsValue); - } - } - - XElement intrinsicSettingsElement = resourcesElement.Element(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); - if (intrinsicSettingsElement != null) - { - IntrinsicSettings intrinsicSettingsInstance = new IntrinsicSettings(); - resourceInstance.IntrinsicSettingsSection = intrinsicSettingsInstance; - - XElement cacheServiceInputElement = intrinsicSettingsElement.Element(XName.Get("CacheServiceInput", "")); - if (cacheServiceInputElement != null) - { - IntrinsicSettings.CacheServiceInput cacheServiceInputInstance = new IntrinsicSettings.CacheServiceInput(); - intrinsicSettingsInstance.CacheServiceInputSection = cacheServiceInputInstance; - - XElement skuTypeElement = cacheServiceInputElement.Element(XName.Get("SkuType", "")); - if (skuTypeElement != null) - { - CacheServiceSkuType skuTypeInstance = ((CacheServiceSkuType)Enum.Parse(typeof(CacheServiceSkuType), skuTypeElement.Value, true)); - cacheServiceInputInstance.SkuType = skuTypeInstance; - } - - XElement locationElement = cacheServiceInputElement.Element(XName.Get("Location", "")); - if (locationElement != null) - { - string locationInstance = locationElement.Value; - cacheServiceInputInstance.Location = locationInstance; - } - - XElement skuCountElement = cacheServiceInputElement.Element(XName.Get("SkuCount", "")); - if (skuCountElement != null) - { - int skuCountInstance = int.Parse(skuCountElement.Value, CultureInfo.InvariantCulture); - cacheServiceInputInstance.SkuCount = skuCountInstance; - } - - XElement serviceVersionElement = cacheServiceInputElement.Element(XName.Get("ServiceVersion", "")); - if (serviceVersionElement != null) - { - string serviceVersionInstance = serviceVersionElement.Value; - cacheServiceInputInstance.ServiceVersion = serviceVersionInstance; - } - - XElement objectSizeInBytesElement = cacheServiceInputElement.Element(XName.Get("ObjectSizeInBytes", "")); - if (objectSizeInBytesElement != null) - { - int objectSizeInBytesInstance = int.Parse(objectSizeInBytesElement.Value, CultureInfo.InvariantCulture); - cacheServiceInputInstance.ObjectSizeInBytes = objectSizeInBytesInstance; - } - - XElement namedCachesSequenceElement = cacheServiceInputElement.Element(XName.Get("NamedCaches", "")); - if (namedCachesSequenceElement != null) - { - foreach (XElement namedCachesElement in namedCachesSequenceElement.Elements(XName.Get("NamedCache", ""))) - { - IntrinsicSettings.CacheServiceInput.NamedCache namedCacheInstance = new IntrinsicSettings.CacheServiceInput.NamedCache(); - cacheServiceInputInstance.NamedCaches.Add(namedCacheInstance); - - XElement cacheNameElement = namedCachesElement.Element(XName.Get("CacheName", "")); - if (cacheNameElement != null) - { - string cacheNameInstance = cacheNameElement.Value; - namedCacheInstance.CacheName = cacheNameInstance; - } - - XElement notificationsEnabledElement = namedCachesElement.Element(XName.Get("NotificationsEnabled", "")); - if (notificationsEnabledElement != null) - { - bool notificationsEnabledInstance = bool.Parse(notificationsEnabledElement.Value); - namedCacheInstance.NotificationsEnabled = notificationsEnabledInstance; - } - - XElement highAvailabilityEnabledElement = namedCachesElement.Element(XName.Get("HighAvailabilityEnabled", "")); - if (highAvailabilityEnabledElement != null) - { - bool highAvailabilityEnabledInstance = bool.Parse(highAvailabilityEnabledElement.Value); - namedCacheInstance.HighAvailabilityEnabled = highAvailabilityEnabledInstance; - } - - XElement evictionPolicyElement = namedCachesElement.Element(XName.Get("EvictionPolicy", "")); - if (evictionPolicyElement != null) - { - string evictionPolicyInstance = evictionPolicyElement.Value; - namedCacheInstance.EvictionPolicy = evictionPolicyInstance; - } - - XElement expirationSettingsElement = namedCachesElement.Element(XName.Get("ExpirationSettings", "")); - if (expirationSettingsElement != null) - { - IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings expirationSettingsInstance = new IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings(); - namedCacheInstance.ExpirationSettingsSection = expirationSettingsInstance; - - XElement timeToLiveInMinutesElement = expirationSettingsElement.Element(XName.Get("TimeToLiveInMinutes", "")); - if (timeToLiveInMinutesElement != null) - { - int timeToLiveInMinutesInstance = int.Parse(timeToLiveInMinutesElement.Value, CultureInfo.InvariantCulture); - expirationSettingsInstance.TimeToLiveInMinutes = timeToLiveInMinutesInstance; - } - - XElement typeElement2 = expirationSettingsElement.Element(XName.Get("Type", "")); - if (typeElement2 != null) - { - string typeInstance2 = typeElement2.Value; - expirationSettingsInstance.Type = typeInstance2; - } - } - } - } - } - } - } + string secondaryInstance = secondaryElement.Value; + result.Secondary = secondaryInstance; } } + + } + result.StatusCode = statusCode; + if (httpResponse.Headers.Contains("x-ms-request-id")) + { + result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + return result; + } + finally + { + if (httpResponse != null) + { + httpResponse.Dispose(); + } + } + } + finally + { + if (httpRequest != null) + { + httpRequest.Dispose(); + } + } + } + + /// + /// List supported regions of Cache Service + /// + /// + /// Cancellation token. + /// + /// + /// A standard service response including an HTTP status code and + /// request ID. + /// + public async Task ListRegionsAsync(CancellationToken cancellationToken) + { + // Validate + + // Tracing + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) + { + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + TracingAdapter.Enter(invocationId, this, "ListRegionsAsync", tracingParameters); + } + + // Construct URL + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/mycloudservice/resources/cacheservice/~/Caching/mycacheservice/Options/Regions"; + string baseUrl = this.Client.BaseUri.AbsoluteUri; + // Trim '/' character from the end of baseUrl and beginning of url. + if (baseUrl[baseUrl.Length - 1] == '/') + { + baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + } + if (url[0] == '/') + { + url = url.Substring(1); + } + url = baseUrl + "/" + url; + url = url.Replace(" ", "%20"); + + // Create HTTP transport objects + HttpRequestMessage httpRequest = null; + try + { + httpRequest = new HttpRequestMessage(); + httpRequest.Method = HttpMethod.Get; + httpRequest.RequestUri = new Uri(url); + + // Set Headers + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); + + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + + // Send Request + HttpResponseMessage httpResponse = null; + try + { + if (shouldTrace) + { + TracingAdapter.SendRequest(invocationId, httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + if (shouldTrace) + { + TracingAdapter.ReceiveResponse(invocationId, httpResponse); + } + HttpStatusCode statusCode = httpResponse.StatusCode; + if (statusCode != HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; } + // Create Result + RegionsResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new RegionsResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement regionsSequenceElement = responseDoc.Element(XName.Get("Regions", "http://schemas.microsoft.com/windowsazure")); + if (regionsSequenceElement != null) + { + foreach (XElement regionsElement in regionsSequenceElement.Elements(XName.Get("Region", "http://schemas.microsoft.com/windowsazure"))) + { + RegionsResponse.Region regionInstance = new RegionsResponse.Region(); + result.Regions.Add(regionInstance); + + regionInstance.Location = regionsElement.Value; + } + } + + } result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { @@ -4110,7 +3359,7 @@ public async Task ListAsync(CancellationToken cancella if (shouldTrace) { - Tracing.Exit(invocationId, result); + TracingAdapter.Exit(invocationId, result); } return result; } @@ -4130,376 +3379,416 @@ public async Task ListAsync(CancellationToken cancella } } } - } -} - -namespace Microsoft.WindowsAzure -{ - public static partial class ManagedCacheClientExtensions - { + /// - /// The Get Operation Status operation returns the status of - /// thespecified operation. After calling an asynchronous operation, - /// you can call Get Operation Status to determine whether the - /// operation has succeeded, failed, or is still in progress. (see - /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx - /// for more information) + /// Regenerate access keys for a Cache Service /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.IManagedCacheClient. + /// + /// Required. The cloud service name. /// - /// - /// Required. The request ID for the request you wish to track. The - /// request ID is returned in the x-ms-request-id response header for - /// every request. + /// + /// Required. The cache service name. + /// + /// + /// Required. Key type + /// + /// + /// Cancellation token. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// A standard service response including an HTTP status code and + /// request ID. /// - public static CloudServiceOperationStatusResponse GetOperationStatus(this IManagedCacheClient operations, string requestId) + public async Task RegenerateKeysAsync(string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters, CancellationToken cancellationToken) { - return Task.Factory.StartNew((object s) => + // Validate + if (cloudServiceName == null) + { + throw new ArgumentNullException("cloudServiceName"); + } + if (cloudServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cloudServiceName"); + } + if (cacheServiceName == null) + { + throw new ArgumentNullException("cacheServiceName"); + } + if (cacheServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cacheServiceName"); + } + if (parameters == null) + { + throw new ArgumentNullException("parameters"); + } + + // Tracing + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) + { + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("cacheServiceName", cacheServiceName); + tracingParameters.Add("parameters", parameters); + TracingAdapter.Enter(invocationId, this, "RegenerateKeysAsync", tracingParameters); + } + + // Construct URL + string url = "/" + (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/cloudservices/" + Uri.EscapeDataString(cloudServiceName) + "/resources/cacheservice/~/Caching/" + Uri.EscapeDataString(cacheServiceName) + "/Keys/?comp=regenerate"; + string baseUrl = this.Client.BaseUri.AbsoluteUri; + // Trim '/' character from the end of baseUrl and beginning of url. + if (baseUrl[baseUrl.Length - 1] == '/') + { + baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + } + if (url[0] == '/') + { + url = url.Substring(1); + } + url = baseUrl + "/" + url; + url = url.Replace(" ", "%20"); + + // Create HTTP transport objects + HttpRequestMessage httpRequest = null; + try + { + httpRequest = new HttpRequestMessage(); + httpRequest.Method = HttpMethod.Post; + httpRequest.RequestUri = new Uri(url); + + // Set Headers + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); + + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + + // Serialize Request + string requestContent = null; + XDocument requestDoc = new XDocument(); + + XElement regenerateKeysElement = new XElement(XName.Get("RegenerateKeys", "http://schemas.microsoft.com/windowsazure")); + requestDoc.Add(regenerateKeysElement); + + if (parameters.KeyType != null) + { + XElement keyTypeElement = new XElement(XName.Get("KeyType", "http://schemas.microsoft.com/windowsazure")); + keyTypeElement.Value = parameters.KeyType; + regenerateKeysElement.Add(keyTypeElement); + } + + requestContent = requestDoc.ToString(); + httpRequest.Content = new StringContent(requestContent, Encoding.UTF8); + httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); + + // Send Request + HttpResponseMessage httpResponse = null; + try + { + if (shouldTrace) + { + TracingAdapter.SendRequest(invocationId, httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + if (shouldTrace) + { + TracingAdapter.ReceiveResponse(invocationId, httpResponse); + } + HttpStatusCode statusCode = httpResponse.StatusCode; + if (statusCode != HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + + // Create Result + CachingKeysResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CachingKeysResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement cachingKeysElement = responseDoc.Element(XName.Get("CachingKeys", "http://schemas.microsoft.com/windowsazure")); + if (cachingKeysElement != null) + { + XElement primaryElement = cachingKeysElement.Element(XName.Get("Primary", "http://schemas.microsoft.com/windowsazure")); + if (primaryElement != null) + { + string primaryInstance = primaryElement.Value; + result.Primary = primaryInstance; + } + + XElement secondaryElement = cachingKeysElement.Element(XName.Get("Secondary", "http://schemas.microsoft.com/windowsazure")); + if (secondaryElement != null) + { + string secondaryInstance = secondaryElement.Value; + result.Secondary = secondaryInstance; + } + } + + } + result.StatusCode = statusCode; + if (httpResponse.Headers.Contains("x-ms-request-id")) + { + result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + return result; + } + finally + { + if (httpResponse != null) + { + httpResponse.Dispose(); + } + } + } + finally { - return ((IManagedCacheClient)s).GetOperationStatusAsync(requestId); + if (httpRequest != null) + { + httpRequest.Dispose(); + } } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } - - /// - /// The Get Operation Status operation returns the status of - /// thespecified operation. After calling an asynchronous operation, - /// you can call Get Operation Status to determine whether the - /// operation has succeeded, failed, or is still in progress. (see - /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx - /// for more information) - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.IManagedCacheClient. - /// - /// - /// Required. The request ID for the request you wish to track. The - /// request ID is returned in the x-ms-request-id response header for - /// every request. - /// - /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. - /// - public static Task GetOperationStatusAsync(this IManagedCacheClient operations, string requestId) - { - return operations.GetOperationStatusAsync(requestId, CancellationToken.None); } } -} - -namespace Microsoft.WindowsAzure -{ - public static partial class CacheServiceOperationsExtensions + + public static partial class CloudServiceOperationsExtensions { /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// Create a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// Required. The name of the cloud service. - /// - /// - /// Required. A name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. + /// Required. The cloud service name. /// /// - /// Required. Parameter supplied to create a cache service + /// Required. Parameters supplied to the Create cloud service operation. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - public static OperationResponse BeginCreatingCacheService(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + public static AzureOperationResponse BeginCreating(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) { return Task.Factory.StartNew((object s) => { - return ((ICacheServiceOperations)s).BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters); + return ((ICloudServiceOperations)s).BeginCreatingAsync(cloudServiceName, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// Create a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// Required. The name of the cloud service. - /// - /// - /// Required. A name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. + /// Required. The cloud service name. /// /// - /// Required. Parameter supplied to create a cache service + /// Required. Parameters supplied to the Create cloud service operation. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - public static Task BeginCreatingCacheServiceAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + public static Task BeginCreatingAsync(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) { - return operations.BeginCreatingCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); + return operations.BeginCreatingAsync(cloudServiceName, parameters, CancellationToken.None); } /// - /// The begin of deleting Cache Service.This operation is an - /// asynchronous operation. To determine whether service has finished - /// processing the request, call Get Operation. (see - /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more - /// information) + /// Create a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// Required. The name of the cloud service. + /// Required. The cloud service name. /// - /// - /// Required. A name of the cache service. + /// + /// Required. Parameters supplied to the Create cloud service operation. /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - public static OperationResponse BeginDeleting(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + public static CloudServiceOperationStatusResponse Create(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) { return Task.Factory.StartNew((object s) => { - return ((ICacheServiceOperations)s).BeginDeletingAsync(cloudServiceName, cacheServiceName); + return ((ICloudServiceOperations)s).CreateAsync(cloudServiceName, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } /// - /// The begin of deleting Cache Service.This operation is an - /// asynchronous operation. To determine whether service has finished - /// processing the request, call Get Operation. (see - /// http://msdn.microsoft.com/en-us/library/hh758254.aspx for more - /// information) + /// Create a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// Required. The name of the cloud service. + /// Required. The cloud service name. /// - /// - /// Required. A name of the cache service. + /// + /// Required. Parameters supplied to the Create cloud service operation. /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - public static Task BeginDeletingAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + public static Task CreateAsync(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) { - return operations.BeginDeletingAsync(cloudServiceName, cacheServiceName, CancellationToken.None); + return operations.CreateAsync(cloudServiceName, parameters, CancellationToken.None); } /// - /// Get access keys of Cache Service + /// Retrieve a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// /// Required. The cloud service name. /// - /// - /// Required. The cache service name. - /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// Information about a retrieved Cloud Service. /// - public static CheckCacheNameAvailabilityResponse CheckNameAvailability(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + public static CloudServiceGetResponse Get(this ICloudServiceOperations operations, string cloudServiceName) { return Task.Factory.StartNew((object s) => { - return ((ICacheServiceOperations)s).CheckNameAvailabilityAsync(cloudServiceName, cacheServiceName); + return ((ICloudServiceOperations)s).GetAsync(cloudServiceName); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } /// - /// Get access keys of Cache Service + /// Retrieve a cloud service. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// /// Required. The cloud service name. /// - /// - /// Required. The cache service name. - /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// Information about a retrieved Cloud Service. /// - public static Task CheckNameAvailabilityAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) + public static Task GetAsync(this ICloudServiceOperations operations, string cloudServiceName) { - return operations.CheckNameAvailabilityAsync(cloudServiceName, cacheServiceName, CancellationToken.None); + return operations.GetAsync(cloudServiceName, CancellationToken.None); } /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// The List Cloud Services operation enumerates services that are + /// provisioned for a subscription. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// - /// - /// Required. The name of the cloud service. - /// - /// - /// Required. The name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. - /// - /// - /// Required. Parameter supplied to create a cache service + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// The response structure for the Cloud Service List operation. /// - public static CloudServiceOperationStatusResponse CreateCacheService(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + public static CloudServiceListResponse List(this ICloudServiceOperations operations) { return Task.Factory.StartNew((object s) => { - return ((ICacheServiceOperations)s).CreateCacheServiceAsync(cloudServiceName, cacheServiceName, parameters); + return ((ICloudServiceOperations)s).ListAsync(); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } /// - /// Creates a new Cache Service in specified subscription and cloud - /// service. + /// The List Cloud Services operation enumerates services that are + /// provisioned for a subscription. /// /// /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// - /// - /// Required. The name of the cloud service. - /// - /// - /// Required. The name of the cache service. The name can be up to 20 - /// characters in length with minimum 6 characters and must be all - /// lower cases. - /// - /// - /// Required. Parameter supplied to create a cache service + /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// The response structure for the Cloud Service List operation. /// - public static Task CreateCacheServiceAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, CacheServiceCreateParameters parameters) + public static Task ListAsync(this ICloudServiceOperations operations) { - return operations.CreateCacheServiceAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); + return operations.ListAsync(CancellationToken.None); } - + } + + public partial interface ICloudServiceOperations + { /// - /// Delete Cache Service in specified subscription and cloud service. - /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for - /// more information) + /// Create a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// /// - /// Required. The name of the cloud service. + /// The cloud service name. /// - /// - /// Required. A name of the cache service. + /// + /// Parameters supplied to the Create cloud service operation. + /// + /// + /// Cancellation token. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// A standard service response including an HTTP status code and + /// request ID. /// - public static CloudServiceOperationStatusResponse Delete(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) - { - return Task.Factory.StartNew((object s) => - { - return ((ICacheServiceOperations)s).DeleteAsync(cloudServiceName, cacheServiceName); - } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } + Task BeginCreatingAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken); /// - /// Delete Cache Service in specified subscription and cloud service. - /// (see http://msdn.microsoft.com/en-us/library/hh758254.aspx for - /// more information) + /// Create a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// /// - /// Required. The name of the cloud service. + /// The cloud service name. /// - /// - /// Required. A name of the cache service. + /// + /// Parameters supplied to the Create cloud service operation. + /// + /// + /// Cancellation token. /// /// /// The response body contains the status of the specified asynchronous @@ -4512,339 +3801,1066 @@ public static CloudServiceOperationStatusResponse Delete(this ICacheServiceOpera /// status code for the failed request, and also includes error /// information regarding the failure. /// - public static Task DeleteAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) - { - return operations.DeleteAsync(cloudServiceName, cacheServiceName, CancellationToken.None); - } + Task CreateAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken); /// - /// Get access keys of Cache Service + /// Retrieve a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// /// - /// Required. The cloud service name. + /// The cloud service name. /// - /// - /// Required. The cache service name. + /// + /// Cancellation token. /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// Information about a retrieved Cloud Service. /// - public static CachingKeysResponse GetKeys(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) - { - return Task.Factory.StartNew((object s) => - { - return ((ICacheServiceOperations)s).GetKeysAsync(cloudServiceName, cacheServiceName); - } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } + Task GetAsync(string cloudServiceName, CancellationToken cancellationToken); /// - /// Get access keys of Cache Service + /// The List Cloud Services operation enumerates services that are + /// provisioned for a subscription. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Required. The cache service name. + /// + /// Cancellation token. /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response structure for the Cloud Service List operation. /// - public static Task GetKeysAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName) - { - return operations.GetKeysAsync(cloudServiceName, cacheServiceName, CancellationToken.None); - } - + Task ListAsync(CancellationToken cancellationToken); + } + + internal partial class CloudServiceOperations : IServiceOperations, ICloudServiceOperations + { /// - /// List supported regions of Cache Service + /// Initializes a new instance of the CloudServiceOperations class. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. + /// + /// Reference to the service client. /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - public static RegionsResponse ListRegions(this ICacheServiceOperations operations) + internal CloudServiceOperations(ManagedCacheClient client) { - return Task.Factory.StartNew((object s) => - { - return ((ICacheServiceOperations)s).ListRegionsAsync(); - } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); + this._client = client; } + private ManagedCacheClient _client; + /// - /// List supported regions of Cache Service + /// Gets a reference to the + /// Microsoft.Azure.Management.ManagedCache.ManagedCacheClient. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - public static Task ListRegionsAsync(this ICacheServiceOperations operations) + public ManagedCacheClient Client { - return operations.ListRegionsAsync(CancellationToken.None); + get { return this._client; } } /// - /// Regenerate access keys for a Cache Service + /// Create a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// /// /// Required. The cloud service name. /// - /// - /// Required. The cache service name. - /// /// - /// Required. Key type + /// Required. Parameters supplied to the Create cloud service operation. + /// + /// + /// Cancellation token. /// /// /// A standard service response including an HTTP status code and /// request ID. /// - public static CachingKeysResponse RegenerateKeys(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters) + public async Task BeginCreatingAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken) { - return Task.Factory.StartNew((object s) => + // Validate + if (cloudServiceName == null) + { + throw new ArgumentNullException("cloudServiceName"); + } + if (cloudServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cloudServiceName"); + } + if (parameters == null) + { + throw new ArgumentNullException("parameters"); + } + if (parameters.Description == null) + { + throw new ArgumentNullException("parameters.Description"); + } + if (parameters.Description.Length > 1024) + { + throw new ArgumentOutOfRangeException("parameters.Description"); + } + if (parameters.GeoRegion == null) + { + throw new ArgumentNullException("parameters.GeoRegion"); + } + if (parameters.Label == null) + { + throw new ArgumentNullException("parameters.Label"); + } + if (parameters.Label.Length > 100) + { + throw new ArgumentOutOfRangeException("parameters.Label"); + } + + // Tracing + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) + { + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("parameters", parameters); + TracingAdapter.Enter(invocationId, this, "BeginCreatingAsync", tracingParameters); + } + + // Construct URL + string url = (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/CloudServices/" + Uri.EscapeDataString(cloudServiceName); + string baseUrl = this.Client.BaseUri.AbsoluteUri; + // Trim '/' character from the end of baseUrl and beginning of url. + if (baseUrl[baseUrl.Length - 1] == '/') + { + baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + } + if (url[0] == '/') + { + url = url.Substring(1); + } + url = baseUrl + "/" + url; + url = url.Replace(" ", "%20"); + + // Create HTTP transport objects + HttpRequestMessage httpRequest = null; + try + { + httpRequest = new HttpRequestMessage(); + httpRequest.Method = HttpMethod.Put; + httpRequest.RequestUri = new Uri(url); + + // Set Headers + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); + + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + + // Serialize Request + string requestContent = null; + XDocument requestDoc = new XDocument(); + + XElement cloudServiceElement = new XElement(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure")); + requestDoc.Add(cloudServiceElement); + + XElement labelElement = new XElement(XName.Get("Label", "http://schemas.microsoft.com/windowsazure")); + labelElement.Value = parameters.Label; + cloudServiceElement.Add(labelElement); + + XElement descriptionElement = new XElement(XName.Get("Description", "http://schemas.microsoft.com/windowsazure")); + descriptionElement.Value = parameters.Description; + cloudServiceElement.Add(descriptionElement); + + XElement geoRegionElement = new XElement(XName.Get("GeoRegion", "http://schemas.microsoft.com/windowsazure")); + geoRegionElement.Value = parameters.GeoRegion; + cloudServiceElement.Add(geoRegionElement); + + if (parameters.Email != null) + { + XElement emailElement = new XElement(XName.Get("Email", "http://schemas.microsoft.com/windowsazure")); + emailElement.Value = parameters.Email; + cloudServiceElement.Add(emailElement); + } + + requestContent = requestDoc.ToString(); + httpRequest.Content = new StringContent(requestContent, Encoding.UTF8); + httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); + + // Send Request + HttpResponseMessage httpResponse = null; + try + { + if (shouldTrace) + { + TracingAdapter.SendRequest(invocationId, httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + if (shouldTrace) + { + TracingAdapter.ReceiveResponse(invocationId, httpResponse); + } + HttpStatusCode statusCode = httpResponse.StatusCode; + if (statusCode != HttpStatusCode.Accepted) + { + cancellationToken.ThrowIfCancellationRequested(); + CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + + // Create Result + AzureOperationResponse result = null; + // Deserialize Response + result = new AzureOperationResponse(); + result.StatusCode = statusCode; + if (httpResponse.Headers.Contains("x-ms-request-id")) + { + result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + return result; + } + finally + { + if (httpResponse != null) + { + httpResponse.Dispose(); + } + } + } + finally { - return ((ICacheServiceOperations)s).RegenerateKeysAsync(cloudServiceName, cacheServiceName, parameters); + if (httpRequest != null) + { + httpRequest.Dispose(); + } } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); } - /// - /// Regenerate access keys for a Cache Service - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICacheServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Required. The cache service name. - /// - /// - /// Required. Key type - /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - public static Task RegenerateKeysAsync(this ICacheServiceOperations operations, string cloudServiceName, string cacheServiceName, RegenerateKeysParameters parameters) - { - return operations.RegenerateKeysAsync(cloudServiceName, cacheServiceName, parameters, CancellationToken.None); - } - } -} - -namespace Microsoft.WindowsAzure -{ - public static partial class CloudServiceOperationsExtensions - { /// /// Create a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// /// /// Required. The cloud service name. /// /// /// Required. Parameters supplied to the Create cloud service operation. /// + /// + /// Cancellation token. + /// /// - /// A standard service response including an HTTP status code and - /// request ID. + /// The response body contains the status of the specified asynchronous + /// operation, indicating whether it has succeeded, is inprogress, or + /// has failed. Note that this status is distinct from the HTTP status + /// code returned for the Get Operation Status operation itself. If + /// the asynchronous operation succeeded, the response body includes + /// the HTTP status code for the successful request. If the + /// asynchronous operation failed, the response body includes the HTTP + /// status code for the failed request, and also includes error + /// information regarding the failure. /// - public static OperationResponse BeginCreating(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) + public async Task CreateAsync(string cloudServiceName, CloudServiceCreateParameters parameters, CancellationToken cancellationToken) { - return Task.Factory.StartNew((object s) => + ManagedCacheClient client = this.Client; + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) { - return ((ICloudServiceOperations)s).BeginCreatingAsync(cloudServiceName, parameters); + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cloudServiceName", cloudServiceName); + tracingParameters.Add("parameters", parameters); + TracingAdapter.Enter(invocationId, this, "CreateAsync", tracingParameters); } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } - - /// - /// Create a cloud service. - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Required. Parameters supplied to the Create cloud service operation. - /// - /// - /// A standard service response including an HTTP status code and - /// request ID. - /// - public static Task BeginCreatingAsync(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) - { - return operations.BeginCreatingAsync(cloudServiceName, parameters, CancellationToken.None); + + cancellationToken.ThrowIfCancellationRequested(); + AzureOperationResponse response = await client.CloudServices.BeginCreatingAsync(cloudServiceName, parameters, cancellationToken).ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + CloudServiceOperationStatusResponse result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + int delayInSeconds = 10; + while ((result.Status != CloudServiceOperationStatus.InProgress) == false) + { + cancellationToken.ThrowIfCancellationRequested(); + await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + result = await client.GetOperationStatusAsync(response.RequestId, cancellationToken).ConfigureAwait(false); + delayInSeconds = 5; + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + + if (result.Status != CloudServiceOperationStatus.Succeeded) + { + if (result.Error != null) + { + CloudException ex = new CloudException(result.Error.Code + " : " + result.Error.Message); + ex.Error = new CloudError(); + ex.Error.Code = result.Error.Code; + ex.Error.Message = result.Error.Message; + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + else + { + CloudException ex = new CloudException(""); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + } + + return result; } /// - /// Create a cloud service. + /// Retrieve a cloud service. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// /// /// Required. The cloud service name. /// - /// - /// Required. Parameters supplied to the Create cloud service operation. + /// + /// Cancellation token. /// /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. + /// Information about a retrieved Cloud Service. /// - public static CloudServiceOperationStatusResponse Create(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) + public async Task GetAsync(string cloudServiceName, CancellationToken cancellationToken) { - return Task.Factory.StartNew((object s) => + // Validate + if (cloudServiceName == null) { - return ((ICloudServiceOperations)s).CreateAsync(cloudServiceName, parameters); + throw new ArgumentNullException("cloudServiceName"); + } + if (cloudServiceName.Length > 100) + { + throw new ArgumentOutOfRangeException("cloudServiceName"); + } + + // Tracing + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) + { + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cloudServiceName", cloudServiceName); + TracingAdapter.Enter(invocationId, this, "GetAsync", tracingParameters); + } + + // Construct URL + string url = (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/CloudServices/" + Uri.EscapeDataString(cloudServiceName); + string baseUrl = this.Client.BaseUri.AbsoluteUri; + // Trim '/' character from the end of baseUrl and beginning of url. + if (baseUrl[baseUrl.Length - 1] == '/') + { + baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + } + if (url[0] == '/') + { + url = url.Substring(1); + } + url = baseUrl + "/" + url; + url = url.Replace(" ", "%20"); + + // Create HTTP transport objects + HttpRequestMessage httpRequest = null; + try + { + httpRequest = new HttpRequestMessage(); + httpRequest.Method = HttpMethod.Get; + httpRequest.RequestUri = new Uri(url); + + // Set Headers + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); + + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + + // Send Request + HttpResponseMessage httpResponse = null; + try + { + if (shouldTrace) + { + TracingAdapter.SendRequest(invocationId, httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + if (shouldTrace) + { + TracingAdapter.ReceiveResponse(invocationId, httpResponse); + } + HttpStatusCode statusCode = httpResponse.StatusCode; + if (statusCode != HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + + // Create Result + CloudServiceGetResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CloudServiceGetResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement cloudServiceElement = responseDoc.Element(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure")); + if (cloudServiceElement != null) + { + XElement geoLocationElement = cloudServiceElement.Element(XName.Get("GeoLocation", "http://schemas.microsoft.com/windowsazure")); + if (geoLocationElement != null) + { + string geoLocationInstance = geoLocationElement.Value; + result.GeoLocation = geoLocationInstance; + } + + XElement resourcesSequenceElement = cloudServiceElement.Element(XName.Get("Resources", "http://schemas.microsoft.com/windowsazure")); + if (resourcesSequenceElement != null) + { + foreach (XElement resourcesElement in resourcesSequenceElement.Elements(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure"))) + { + CloudServiceResource resourceInstance = new CloudServiceResource(); + result.Resources.Add(resourceInstance); + + XElement resourceProviderNamespaceElement = resourcesElement.Element(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); + if (resourceProviderNamespaceElement != null) + { + string resourceProviderNamespaceInstance = resourceProviderNamespaceElement.Value; + resourceInstance.Namespace = resourceProviderNamespaceInstance; + } + + XElement typeElement = resourcesElement.Element(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); + if (typeElement != null) + { + string typeInstance = typeElement.Value; + resourceInstance.Type = typeInstance; + } + + XElement nameElement = resourcesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + if (nameElement != null) + { + string nameInstance = nameElement.Value; + resourceInstance.Name = nameInstance; + } + + XElement planElement = resourcesElement.Element(XName.Get("Plan", "http://schemas.microsoft.com/windowsazure")); + if (planElement != null) + { + string planInstance = planElement.Value; + resourceInstance.Plan = planInstance; + } + + XElement schemaVersionElement = resourcesElement.Element(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); + if (schemaVersionElement != null) + { + string schemaVersionInstance = schemaVersionElement.Value; + resourceInstance.SchemaVersion = schemaVersionInstance; + } + + XElement eTagElement = resourcesElement.Element(XName.Get("ETag", "http://schemas.microsoft.com/windowsazure")); + if (eTagElement != null) + { + string eTagInstance = eTagElement.Value; + resourceInstance.ETag = eTagInstance; + } + + XElement stateElement = resourcesElement.Element(XName.Get("State", "http://schemas.microsoft.com/windowsazure")); + if (stateElement != null) + { + string stateInstance = stateElement.Value; + resourceInstance.State = stateInstance; + } + + XElement subStateElement = resourcesElement.Element(XName.Get("SubState", "http://schemas.microsoft.com/windowsazure")); + if (subStateElement != null) + { + string subStateInstance = subStateElement.Value; + resourceInstance.SubState = subStateInstance; + } + + XElement usageMetersSequenceElement = resourcesElement.Element(XName.Get("UsageMeters", "http://schemas.microsoft.com/windowsazure")); + if (usageMetersSequenceElement != null) + { + foreach (XElement usageMetersElement in usageMetersSequenceElement.Elements(XName.Get("UsageMeter", "http://schemas.microsoft.com/windowsazure"))) + { + CloudServiceResource.UsageLimit usageMeterInstance = new CloudServiceResource.UsageLimit(); + resourceInstance.UsageLimits.Add(usageMeterInstance); + + XElement nameElement2 = usageMetersElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + if (nameElement2 != null) + { + string nameInstance2 = nameElement2.Value; + usageMeterInstance.Name = nameInstance2; + } + + XElement unitElement = usageMetersElement.Element(XName.Get("Unit", "http://schemas.microsoft.com/windowsazure")); + if (unitElement != null) + { + string unitInstance = unitElement.Value; + usageMeterInstance.Unit = unitInstance; + } + + XElement includedElement = usageMetersElement.Element(XName.Get("Included", "http://schemas.microsoft.com/windowsazure")); + if (includedElement != null) + { + string includedInstance = includedElement.Value; + usageMeterInstance.AmountIncluded = includedInstance; + } + + XElement usedElement = usageMetersElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure")); + if (usedElement != null) + { + string usedInstance = usedElement.Value; + usageMeterInstance.AmountUsed = usedInstance; + } + } + } + + XElement outputItemsSequenceElement = resourcesElement.Element(XName.Get("OutputItems", "http://schemas.microsoft.com/windowsazure")); + if (outputItemsSequenceElement != null) + { + foreach (XElement outputItemsElement in outputItemsSequenceElement.Elements(XName.Get("OutputItem", "http://schemas.microsoft.com/windowsazure"))) + { + string outputItemsKey = outputItemsElement.Element(XName.Get("Key", "http://schemas.microsoft.com/windowsazure")).Value; + string outputItemsValue = outputItemsElement.Element(XName.Get("Value", "http://schemas.microsoft.com/windowsazure")).Value; + resourceInstance.OutputItems.Add(outputItemsKey, outputItemsValue); + } + } + + XElement intrinsicSettingsElement = resourcesElement.Element(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); + if (intrinsicSettingsElement != null) + { + IntrinsicSettings intrinsicSettingsInstance = new IntrinsicSettings(); + resourceInstance.IntrinsicSettingsSection = intrinsicSettingsInstance; + + XElement cacheServiceInputElement = intrinsicSettingsElement.Element(XName.Get("CacheServiceInput", "")); + if (cacheServiceInputElement != null) + { + IntrinsicSettings.CacheServiceInput cacheServiceInputInstance = new IntrinsicSettings.CacheServiceInput(); + intrinsicSettingsInstance.CacheServiceInputSection = cacheServiceInputInstance; + + XElement skuTypeElement = cacheServiceInputElement.Element(XName.Get("SkuType", "")); + if (skuTypeElement != null) + { + CacheServiceSkuType skuTypeInstance = ((CacheServiceSkuType)Enum.Parse(typeof(CacheServiceSkuType), skuTypeElement.Value, true)); + cacheServiceInputInstance.SkuType = skuTypeInstance; + } + + XElement locationElement = cacheServiceInputElement.Element(XName.Get("Location", "")); + if (locationElement != null) + { + string locationInstance = locationElement.Value; + cacheServiceInputInstance.Location = locationInstance; + } + + XElement skuCountElement = cacheServiceInputElement.Element(XName.Get("SkuCount", "")); + if (skuCountElement != null) + { + int skuCountInstance = int.Parse(skuCountElement.Value, CultureInfo.InvariantCulture); + cacheServiceInputInstance.SkuCount = skuCountInstance; + } + + XElement serviceVersionElement = cacheServiceInputElement.Element(XName.Get("ServiceVersion", "")); + if (serviceVersionElement != null) + { + string serviceVersionInstance = serviceVersionElement.Value; + cacheServiceInputInstance.ServiceVersion = serviceVersionInstance; + } + + XElement objectSizeInBytesElement = cacheServiceInputElement.Element(XName.Get("ObjectSizeInBytes", "")); + if (objectSizeInBytesElement != null) + { + int objectSizeInBytesInstance = int.Parse(objectSizeInBytesElement.Value, CultureInfo.InvariantCulture); + cacheServiceInputInstance.ObjectSizeInBytes = objectSizeInBytesInstance; + } + + XElement namedCachesSequenceElement = cacheServiceInputElement.Element(XName.Get("NamedCaches", "")); + if (namedCachesSequenceElement != null) + { + foreach (XElement namedCachesElement in namedCachesSequenceElement.Elements(XName.Get("NamedCache", ""))) + { + IntrinsicSettings.CacheServiceInput.NamedCache namedCacheInstance = new IntrinsicSettings.CacheServiceInput.NamedCache(); + cacheServiceInputInstance.NamedCaches.Add(namedCacheInstance); + + XElement cacheNameElement = namedCachesElement.Element(XName.Get("CacheName", "")); + if (cacheNameElement != null) + { + string cacheNameInstance = cacheNameElement.Value; + namedCacheInstance.CacheName = cacheNameInstance; + } + + XElement notificationsEnabledElement = namedCachesElement.Element(XName.Get("NotificationsEnabled", "")); + if (notificationsEnabledElement != null) + { + bool notificationsEnabledInstance = bool.Parse(notificationsEnabledElement.Value); + namedCacheInstance.NotificationsEnabled = notificationsEnabledInstance; + } + + XElement highAvailabilityEnabledElement = namedCachesElement.Element(XName.Get("HighAvailabilityEnabled", "")); + if (highAvailabilityEnabledElement != null) + { + bool highAvailabilityEnabledInstance = bool.Parse(highAvailabilityEnabledElement.Value); + namedCacheInstance.HighAvailabilityEnabled = highAvailabilityEnabledInstance; + } + + XElement evictionPolicyElement = namedCachesElement.Element(XName.Get("EvictionPolicy", "")); + if (evictionPolicyElement != null) + { + string evictionPolicyInstance = evictionPolicyElement.Value; + namedCacheInstance.EvictionPolicy = evictionPolicyInstance; + } + + XElement expirationSettingsElement = namedCachesElement.Element(XName.Get("ExpirationSettings", "")); + if (expirationSettingsElement != null) + { + IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings expirationSettingsInstance = new IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings(); + namedCacheInstance.ExpirationSettingsSection = expirationSettingsInstance; + + XElement timeToLiveInMinutesElement = expirationSettingsElement.Element(XName.Get("TimeToLiveInMinutes", "")); + if (timeToLiveInMinutesElement != null) + { + int timeToLiveInMinutesInstance = int.Parse(timeToLiveInMinutesElement.Value, CultureInfo.InvariantCulture); + expirationSettingsInstance.TimeToLiveInMinutes = timeToLiveInMinutesInstance; + } + + XElement typeElement2 = expirationSettingsElement.Element(XName.Get("Type", "")); + if (typeElement2 != null) + { + string typeInstance2 = typeElement2.Value; + expirationSettingsInstance.Type = typeInstance2; + } + } + } + } + } + } + } + } + } + + } + result.StatusCode = statusCode; + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + return result; + } + finally + { + if (httpResponse != null) + { + httpResponse.Dispose(); + } + } } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } - - /// - /// Create a cloud service. - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Required. Parameters supplied to the Create cloud service operation. - /// - /// - /// The response body contains the status of the specified asynchronous - /// operation, indicating whether it has succeeded, is inprogress, or - /// has failed. Note that this status is distinct from the HTTP status - /// code returned for the Get Operation Status operation itself. If - /// the asynchronous operation succeeded, the response body includes - /// the HTTP status code for the successful request. If the - /// asynchronous operation failed, the response body includes the HTTP - /// status code for the failed request, and also includes error - /// information regarding the failure. - /// - public static Task CreateAsync(this ICloudServiceOperations operations, string cloudServiceName, CloudServiceCreateParameters parameters) - { - return operations.CreateAsync(cloudServiceName, parameters, CancellationToken.None); - } - - /// - /// Retrieve a cloud service. - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Information about a retrieved Cloud Service. - /// - public static CloudServiceGetResponse Get(this ICloudServiceOperations operations, string cloudServiceName) - { - return Task.Factory.StartNew((object s) => + finally { - return ((ICloudServiceOperations)s).GetAsync(cloudServiceName); + if (httpRequest != null) + { + httpRequest.Dispose(); + } } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } - - /// - /// Retrieve a cloud service. - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// - /// - /// Required. The cloud service name. - /// - /// - /// Information about a retrieved Cloud Service. - /// - public static Task GetAsync(this ICloudServiceOperations operations, string cloudServiceName) - { - return operations.GetAsync(cloudServiceName, CancellationToken.None); } /// /// The List Cloud Services operation enumerates services that are /// provisioned for a subscription. /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. + /// + /// Cancellation token. /// /// /// The response structure for the Cloud Service List operation. /// - public static CloudServiceListResponse List(this ICloudServiceOperations operations) + public async Task ListAsync(CancellationToken cancellationToken) { - return Task.Factory.StartNew((object s) => + // Validate + + // Tracing + bool shouldTrace = TracingAdapter.IsEnabled; + string invocationId = null; + if (shouldTrace) { - return ((ICloudServiceOperations)s).ListAsync(); + invocationId = TracingAdapter.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + TracingAdapter.Enter(invocationId, this, "ListAsync", tracingParameters); + } + + // Construct URL + string url = (this.Client.Credentials.SubscriptionId == null ? "" : Uri.EscapeDataString(this.Client.Credentials.SubscriptionId)) + "/CloudServices"; + string baseUrl = this.Client.BaseUri.AbsoluteUri; + // Trim '/' character from the end of baseUrl and beginning of url. + if (baseUrl[baseUrl.Length - 1] == '/') + { + baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); + } + if (url[0] == '/') + { + url = url.Substring(1); + } + url = baseUrl + "/" + url; + url = url.Replace(" ", "%20"); + + // Create HTTP transport objects + HttpRequestMessage httpRequest = null; + try + { + httpRequest = new HttpRequestMessage(); + httpRequest.Method = HttpMethod.Get; + httpRequest.RequestUri = new Uri(url); + + // Set Headers + httpRequest.Headers.Add("x-ms-version", "2012-08-01"); + + // Set Credentials + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); + + // Send Request + HttpResponseMessage httpResponse = null; + try + { + if (shouldTrace) + { + TracingAdapter.SendRequest(invocationId, httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + if (shouldTrace) + { + TracingAdapter.ReceiveResponse(invocationId, httpResponse); + } + HttpStatusCode statusCode = httpResponse.StatusCode; + if (statusCode != HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); + if (shouldTrace) + { + TracingAdapter.Error(invocationId, ex); + } + throw ex; + } + + // Create Result + CloudServiceListResponse result = null; + // Deserialize Response + if (statusCode == HttpStatusCode.OK) + { + cancellationToken.ThrowIfCancellationRequested(); + string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + result = new CloudServiceListResponse(); + XDocument responseDoc = XDocument.Parse(responseContent); + + XElement cloudServicesSequenceElement = responseDoc.Element(XName.Get("CloudServices", "http://schemas.microsoft.com/windowsazure")); + if (cloudServicesSequenceElement != null) + { + foreach (XElement cloudServicesElement in cloudServicesSequenceElement.Elements(XName.Get("CloudService", "http://schemas.microsoft.com/windowsazure"))) + { + CloudServiceListResponse.CloudService cloudServiceInstance = new CloudServiceListResponse.CloudService(); + result.CloudServices.Add(cloudServiceInstance); + + XElement nameElement = cloudServicesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + if (nameElement != null) + { + string nameInstance = nameElement.Value; + cloudServiceInstance.Name = nameInstance; + } + + XElement labelElement = cloudServicesElement.Element(XName.Get("Label", "http://schemas.microsoft.com/windowsazure")); + if (labelElement != null) + { + string labelInstance = labelElement.Value; + cloudServiceInstance.Label = labelInstance; + } + + XElement descriptionElement = cloudServicesElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure")); + if (descriptionElement != null) + { + string descriptionInstance = descriptionElement.Value; + cloudServiceInstance.Description = descriptionInstance; + } + + XElement geoRegionElement = cloudServicesElement.Element(XName.Get("GeoRegion", "http://schemas.microsoft.com/windowsazure")); + if (geoRegionElement != null) + { + string geoRegionInstance = geoRegionElement.Value; + cloudServiceInstance.GeoRegion = geoRegionInstance; + } + + XElement resourcesSequenceElement = cloudServicesElement.Element(XName.Get("Resources", "http://schemas.microsoft.com/windowsazure")); + if (resourcesSequenceElement != null) + { + foreach (XElement resourcesElement in resourcesSequenceElement.Elements(XName.Get("Resource", "http://schemas.microsoft.com/windowsazure"))) + { + CloudServiceResource resourceInstance = new CloudServiceResource(); + cloudServiceInstance.Resources.Add(resourceInstance); + + XElement resourceProviderNamespaceElement = resourcesElement.Element(XName.Get("ResourceProviderNamespace", "http://schemas.microsoft.com/windowsazure")); + if (resourceProviderNamespaceElement != null) + { + string resourceProviderNamespaceInstance = resourceProviderNamespaceElement.Value; + resourceInstance.Namespace = resourceProviderNamespaceInstance; + } + + XElement typeElement = resourcesElement.Element(XName.Get("Type", "http://schemas.microsoft.com/windowsazure")); + if (typeElement != null) + { + string typeInstance = typeElement.Value; + resourceInstance.Type = typeInstance; + } + + XElement nameElement2 = resourcesElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + if (nameElement2 != null) + { + string nameInstance2 = nameElement2.Value; + resourceInstance.Name = nameInstance2; + } + + XElement planElement = resourcesElement.Element(XName.Get("Plan", "http://schemas.microsoft.com/windowsazure")); + if (planElement != null) + { + string planInstance = planElement.Value; + resourceInstance.Plan = planInstance; + } + + XElement schemaVersionElement = resourcesElement.Element(XName.Get("SchemaVersion", "http://schemas.microsoft.com/windowsazure")); + if (schemaVersionElement != null) + { + string schemaVersionInstance = schemaVersionElement.Value; + resourceInstance.SchemaVersion = schemaVersionInstance; + } + + XElement eTagElement = resourcesElement.Element(XName.Get("ETag", "http://schemas.microsoft.com/windowsazure")); + if (eTagElement != null) + { + string eTagInstance = eTagElement.Value; + resourceInstance.ETag = eTagInstance; + } + + XElement stateElement = resourcesElement.Element(XName.Get("State", "http://schemas.microsoft.com/windowsazure")); + if (stateElement != null) + { + string stateInstance = stateElement.Value; + resourceInstance.State = stateInstance; + } + + XElement subStateElement = resourcesElement.Element(XName.Get("SubState", "http://schemas.microsoft.com/windowsazure")); + if (subStateElement != null) + { + string subStateInstance = subStateElement.Value; + resourceInstance.SubState = subStateInstance; + } + + XElement usageMetersSequenceElement = resourcesElement.Element(XName.Get("UsageMeters", "http://schemas.microsoft.com/windowsazure")); + if (usageMetersSequenceElement != null) + { + foreach (XElement usageMetersElement in usageMetersSequenceElement.Elements(XName.Get("UsageMeter", "http://schemas.microsoft.com/windowsazure"))) + { + CloudServiceResource.UsageLimit usageMeterInstance = new CloudServiceResource.UsageLimit(); + resourceInstance.UsageLimits.Add(usageMeterInstance); + + XElement nameElement3 = usageMetersElement.Element(XName.Get("Name", "http://schemas.microsoft.com/windowsazure")); + if (nameElement3 != null) + { + string nameInstance3 = nameElement3.Value; + usageMeterInstance.Name = nameInstance3; + } + + XElement unitElement = usageMetersElement.Element(XName.Get("Unit", "http://schemas.microsoft.com/windowsazure")); + if (unitElement != null) + { + string unitInstance = unitElement.Value; + usageMeterInstance.Unit = unitInstance; + } + + XElement includedElement = usageMetersElement.Element(XName.Get("Included", "http://schemas.microsoft.com/windowsazure")); + if (includedElement != null) + { + string includedInstance = includedElement.Value; + usageMeterInstance.AmountIncluded = includedInstance; + } + + XElement usedElement = usageMetersElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure")); + if (usedElement != null) + { + string usedInstance = usedElement.Value; + usageMeterInstance.AmountUsed = usedInstance; + } + } + } + + XElement outputItemsSequenceElement = resourcesElement.Element(XName.Get("OutputItems", "http://schemas.microsoft.com/windowsazure")); + if (outputItemsSequenceElement != null) + { + foreach (XElement outputItemsElement in outputItemsSequenceElement.Elements(XName.Get("OutputItem", "http://schemas.microsoft.com/windowsazure"))) + { + string outputItemsKey = outputItemsElement.Element(XName.Get("Key", "http://schemas.microsoft.com/windowsazure")).Value; + string outputItemsValue = outputItemsElement.Element(XName.Get("Value", "http://schemas.microsoft.com/windowsazure")).Value; + resourceInstance.OutputItems.Add(outputItemsKey, outputItemsValue); + } + } + + XElement intrinsicSettingsElement = resourcesElement.Element(XName.Get("IntrinsicSettings", "http://schemas.microsoft.com/windowsazure")); + if (intrinsicSettingsElement != null) + { + IntrinsicSettings intrinsicSettingsInstance = new IntrinsicSettings(); + resourceInstance.IntrinsicSettingsSection = intrinsicSettingsInstance; + + XElement cacheServiceInputElement = intrinsicSettingsElement.Element(XName.Get("CacheServiceInput", "")); + if (cacheServiceInputElement != null) + { + IntrinsicSettings.CacheServiceInput cacheServiceInputInstance = new IntrinsicSettings.CacheServiceInput(); + intrinsicSettingsInstance.CacheServiceInputSection = cacheServiceInputInstance; + + XElement skuTypeElement = cacheServiceInputElement.Element(XName.Get("SkuType", "")); + if (skuTypeElement != null) + { + CacheServiceSkuType skuTypeInstance = ((CacheServiceSkuType)Enum.Parse(typeof(CacheServiceSkuType), skuTypeElement.Value, true)); + cacheServiceInputInstance.SkuType = skuTypeInstance; + } + + XElement locationElement = cacheServiceInputElement.Element(XName.Get("Location", "")); + if (locationElement != null) + { + string locationInstance = locationElement.Value; + cacheServiceInputInstance.Location = locationInstance; + } + + XElement skuCountElement = cacheServiceInputElement.Element(XName.Get("SkuCount", "")); + if (skuCountElement != null) + { + int skuCountInstance = int.Parse(skuCountElement.Value, CultureInfo.InvariantCulture); + cacheServiceInputInstance.SkuCount = skuCountInstance; + } + + XElement serviceVersionElement = cacheServiceInputElement.Element(XName.Get("ServiceVersion", "")); + if (serviceVersionElement != null) + { + string serviceVersionInstance = serviceVersionElement.Value; + cacheServiceInputInstance.ServiceVersion = serviceVersionInstance; + } + + XElement objectSizeInBytesElement = cacheServiceInputElement.Element(XName.Get("ObjectSizeInBytes", "")); + if (objectSizeInBytesElement != null) + { + int objectSizeInBytesInstance = int.Parse(objectSizeInBytesElement.Value, CultureInfo.InvariantCulture); + cacheServiceInputInstance.ObjectSizeInBytes = objectSizeInBytesInstance; + } + + XElement namedCachesSequenceElement = cacheServiceInputElement.Element(XName.Get("NamedCaches", "")); + if (namedCachesSequenceElement != null) + { + foreach (XElement namedCachesElement in namedCachesSequenceElement.Elements(XName.Get("NamedCache", ""))) + { + IntrinsicSettings.CacheServiceInput.NamedCache namedCacheInstance = new IntrinsicSettings.CacheServiceInput.NamedCache(); + cacheServiceInputInstance.NamedCaches.Add(namedCacheInstance); + + XElement cacheNameElement = namedCachesElement.Element(XName.Get("CacheName", "")); + if (cacheNameElement != null) + { + string cacheNameInstance = cacheNameElement.Value; + namedCacheInstance.CacheName = cacheNameInstance; + } + + XElement notificationsEnabledElement = namedCachesElement.Element(XName.Get("NotificationsEnabled", "")); + if (notificationsEnabledElement != null) + { + bool notificationsEnabledInstance = bool.Parse(notificationsEnabledElement.Value); + namedCacheInstance.NotificationsEnabled = notificationsEnabledInstance; + } + + XElement highAvailabilityEnabledElement = namedCachesElement.Element(XName.Get("HighAvailabilityEnabled", "")); + if (highAvailabilityEnabledElement != null) + { + bool highAvailabilityEnabledInstance = bool.Parse(highAvailabilityEnabledElement.Value); + namedCacheInstance.HighAvailabilityEnabled = highAvailabilityEnabledInstance; + } + + XElement evictionPolicyElement = namedCachesElement.Element(XName.Get("EvictionPolicy", "")); + if (evictionPolicyElement != null) + { + string evictionPolicyInstance = evictionPolicyElement.Value; + namedCacheInstance.EvictionPolicy = evictionPolicyInstance; + } + + XElement expirationSettingsElement = namedCachesElement.Element(XName.Get("ExpirationSettings", "")); + if (expirationSettingsElement != null) + { + IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings expirationSettingsInstance = new IntrinsicSettings.CacheServiceInput.NamedCache.ExpirationSettings(); + namedCacheInstance.ExpirationSettingsSection = expirationSettingsInstance; + + XElement timeToLiveInMinutesElement = expirationSettingsElement.Element(XName.Get("TimeToLiveInMinutes", "")); + if (timeToLiveInMinutesElement != null) + { + int timeToLiveInMinutesInstance = int.Parse(timeToLiveInMinutesElement.Value, CultureInfo.InvariantCulture); + expirationSettingsInstance.TimeToLiveInMinutes = timeToLiveInMinutesInstance; + } + + XElement typeElement2 = expirationSettingsElement.Element(XName.Get("Type", "")); + if (typeElement2 != null) + { + string typeInstance2 = typeElement2.Value; + expirationSettingsInstance.Type = typeInstance2; + } + } + } + } + } + } + } + } + } + } + + } + result.StatusCode = statusCode; + if (httpResponse.Headers.Contains("x-ms-request-id")) + { + result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + + if (shouldTrace) + { + TracingAdapter.Exit(invocationId, result); + } + return result; + } + finally + { + if (httpResponse != null) + { + httpResponse.Dispose(); + } + } + } + finally + { + if (httpRequest != null) + { + httpRequest.Dispose(); + } } - , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); - } - - /// - /// The List Cloud Services operation enumerates services that are - /// provisioned for a subscription. - /// - /// - /// Reference to the - /// Microsoft.Azure.Management.ManagedCache.ICloudServiceOperations. - /// - /// - /// The response structure for the Cloud Service List operation. - /// - public static Task ListAsync(this ICloudServiceOperations operations) - { - return operations.ListAsync(CancellationToken.None); } } } diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config index 9ea704f2a146..ec5fcb331cb6 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config @@ -1,15 +1,20 @@  + + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/Network/Commands.Network.Test/Commands.Network.Test.csproj b/src/ServiceManagement/Network/Commands.Network.Test/Commands.Network.Test.csproj index ce47d125cc78..d15343e5befa 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/Commands.Network.Test.csproj +++ b/src/ServiceManagement/Network/Commands.Network.Test/Commands.Network.Test.csproj @@ -38,9 +38,27 @@ 4 - + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -72,22 +90,11 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll False @@ -152,10 +159,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs index bbd2fc043116..e7575498cded 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs @@ -12,20 +12,19 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System.Net; -using Microsoft.WindowsAzure.Management.Network; - namespace Microsoft.Azure.Commands.Network.Test.ScenarioTests { + using System.Net; + using Microsoft.WindowsAzure.Management.Network; using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; - using Microsoft.WindowsAzure.Testing; using Xunit; using Microsoft.WindowsAzure.Management; using Microsoft.Azure.Common.Extensions; + using Microsoft.Azure.Test; public class NSGScenarioTests { diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs index 3c80c9221637..0088e69a4bcc 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs @@ -14,7 +14,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; namespace Microsoft.Azure.Commands.Network.Test.ScenarioTests { diff --git a/src/ServiceManagement/Network/Commands.Network.Test/packages.config b/src/ServiceManagement/Network/Commands.Network.Test/packages.config index 4ab7e3da8b8f..1f76bac24a52 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/packages.config +++ b/src/ServiceManagement/Network/Commands.Network.Test/packages.config @@ -1,7 +1,12 @@  - - + + + + + + + @@ -10,10 +15,8 @@ - - - - + + diff --git a/src/ServiceManagement/Network/Commands.Network/Commands.Network.csproj b/src/ServiceManagement/Network/Commands.Network/Commands.Network.csproj index a06050bc51f5..14dbfcbac985 100644 --- a/src/ServiceManagement/Network/Commands.Network/Commands.Network.csproj +++ b/src/ServiceManagement/Network/Commands.Network/Commands.Network.csproj @@ -49,24 +49,40 @@ ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll True - + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll - + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll False @@ -151,10 +167,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs b/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs index d6b7ae04bf8f..4bcec69567c9 100644 --- a/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs +++ b/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs @@ -26,13 +26,14 @@ namespace Microsoft.Azure.Commands.Network using WindowsAzure.Commands.Common; using WindowsAzure.Commands.Common.Storage; using WindowsAzure.Commands.Utilities.Common; - using WindowsAzure.Common; + using Microsoft.Azure.Common; using WindowsAzure.Management; using WindowsAzure.Management.Network; using WindowsAzure.Management.Network.Models; using WindowsAzure.Storage.Auth; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; public class NetworkClient { @@ -266,7 +267,7 @@ public IEnumerable ListRouteTables() return client.Routes.ListRouteTables().RouteTables; } - public OperationResponse CreateRouteTable(string routeTableName, string label, string location) + public AzureOperationResponse CreateRouteTable(string routeTableName, string label, string location) { CreateRouteTableParameters parameters = new CreateRouteTableParameters() { @@ -278,12 +279,12 @@ public OperationResponse CreateRouteTable(string routeTableName, string label, s return client.Routes.CreateRouteTable(parameters); } - public OperationResponse DeleteRouteTable(string routeTableName) + public AzureOperationResponse DeleteRouteTable(string routeTableName) { return client.Routes.DeleteRouteTable(routeTableName); } - public OperationResponse SetRoute(string routeTableName, string routeName, string addressPrefix, string nextHopType) + public AzureOperationResponse SetRoute(string routeTableName, string routeName, string addressPrefix, string nextHopType) { NextHop nextHop = new NextHop() { @@ -299,7 +300,7 @@ public OperationResponse SetRoute(string routeTableName, string routeName, strin return client.Routes.SetRoute(routeTableName, routeName, parameters); } - public OperationResponse DeleteRoute(string routeTableName, string routeName) + public AzureOperationResponse DeleteRoute(string routeTableName, string routeName) { return client.Routes.DeleteRoute(routeTableName, routeName); } @@ -315,7 +316,7 @@ public SubnetRouteTableContext GetRouteTableForSubnet(string vnetName, string su return context; } - public OperationResponse AddRouteTableToSubnet(string vnetName, string subnetName, string routeTableName) + public AzureOperationResponse AddRouteTableToSubnet(string vnetName, string subnetName, string routeTableName) { AddRouteTableToSubnetParameters parameters = new AddRouteTableToSubnetParameters() { @@ -325,7 +326,7 @@ public OperationResponse AddRouteTableToSubnet(string vnetName, string subnetNam return client.Routes.AddRouteTableToSubnet(vnetName, subnetName, parameters); } - public OperationResponse RemoveRouteTableFromSubnet(string vnetName, string subnetName) + public AzureOperationResponse RemoveRouteTableFromSubnet(string vnetName, string subnetName) { return client.Routes.RemoveRouteTableFromSubnet(vnetName, subnetName); } diff --git a/src/ServiceManagement/Network/Commands.Network/NetworkSecurityGroup/Subnet/SetAzureNetworkSecurityGroupToSubnet.cs b/src/ServiceManagement/Network/Commands.Network/NetworkSecurityGroup/Subnet/SetAzureNetworkSecurityGroupToSubnet.cs index e3a68b3cbe63..8ff549565346 100644 --- a/src/ServiceManagement/Network/Commands.Network/NetworkSecurityGroup/Subnet/SetAzureNetworkSecurityGroupToSubnet.cs +++ b/src/ServiceManagement/Network/Commands.Network/NetworkSecurityGroup/Subnet/SetAzureNetworkSecurityGroupToSubnet.cs @@ -17,6 +17,7 @@ using Microsoft.Azure.Commands.Network.NetworkSecurityGroup.Model; using Microsoft.Azure.Commands.Network.Properties; using Microsoft.WindowsAzure; +using Hyak.Common; namespace Microsoft.Azure.Commands.Network.NetworkSecurityGroup.Subnet { @@ -53,7 +54,7 @@ public override void ExecuteCmdlet() } catch (CloudException ce) { - if (ce.ErrorCode.Equals("BadRequest") && ce.ErrorMessage.Contains("already mapped to network")) + if (ce.Error.Code.Equals("BadRequest") && ce.Error.Message.Contains("already mapped to network")) { // there's already a NSG associated with this subnet, so confirm they want to replace it ConfirmAction( diff --git a/src/ServiceManagement/Network/Commands.Network/packages.config b/src/ServiceManagement/Network/Commands.Network/packages.config index 58914c942665..71d16b28ebd6 100644 --- a/src/ServiceManagement/Network/Commands.Network/packages.config +++ b/src/ServiceManagement/Network/Commands.Network/packages.config @@ -1,18 +1,22 @@  + + + + + + - - - - + + diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj index 9987efb08bd7..5cdf2dbce9cd 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj @@ -36,9 +36,27 @@ false - + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + False - ..\..\..\packages\Hydra.HttpRecorder.1.0.5417.13285-prerelease\lib\net45\Microsoft.Azure.Utilities.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5486.28526-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -57,19 +75,11 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.0.1.1-preview\lib\net40\Microsoft.WindowsAzure.Management.SiteRecovery.dll - - - False - ..\..\..\packages\Hydra.SpecTestSupport.1.0.5417.13285-prerelease\lib\net45\Microsoft.WindowsAzure.Testing.dll + + ..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.0.4.0-preview\lib\net40\Microsoft.WindowsAzure.Management.SiteRecovery.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -123,10 +133,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs index 222d7f6a6c23..bc43a76c1343 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs @@ -18,14 +18,14 @@ using System.Net.Security; using System.Runtime.Serialization; using System.Xml; -using Microsoft.Azure.Utilities.HttpRecorder; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.RecoveryServices; using Microsoft.WindowsAzure.Management.SiteRecovery; -using Microsoft.WindowsAzure.Testing; +using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesEnumerationTests.json b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesEnumerationTests.json index 9d7b73ffad9e..d9be7b4a6e93 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesEnumerationTests.json +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesEnumerationTests.json @@ -16,7 +16,7 @@ "Microsoft.WindowsAzure.Management.RecoveryServices.RecoveryServicesManagementClient/0.9.0.0" ] }, - "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><ErrorCode>0</ErrorCode><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", + "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><Error.Code>0</Error.Code><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", "ResponseHeaders": { "Content-Length": [ "54717" @@ -57,7 +57,7 @@ "Microsoft.WindowsAzure.Management.RecoveryServices.RecoveryServicesManagementClient/0.9.0.0" ] }, - "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><ErrorCode>0</ErrorCode><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", + "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><Error.Code>0</Error.Code><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", "ResponseHeaders": { "Content-Length": [ "54717" @@ -98,7 +98,7 @@ "Microsoft.WindowsAzure.Management.RecoveryServices.RecoveryServicesManagementClient/0.9.0.0" ] }, - "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><ErrorCode>0</ErrorCode><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", + "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><Error.Code>0</Error.Code><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", "ResponseHeaders": { "Content-Length": [ "54717" diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesProtectionTests.json b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesProtectionTests.json index 916f535770b1..02b960f6dbc7 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesProtectionTests.json +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/SessionRecords/Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests.RecoveryServicesTests/RecoveryServicesProtectionTests.json @@ -16,7 +16,7 @@ "Microsoft.WindowsAzure.Management.RecoveryServices.RecoveryServicesManagementClient/0.9.0.0" ] }, - "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><ErrorCode>0</ErrorCode><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", + "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><Error.Code>0</Error.Code><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", "ResponseHeaders": { "Content-Length": [ "54717" @@ -57,7 +57,7 @@ "Microsoft.WindowsAzure.Management.RecoveryServices.RecoveryServicesManagementClient/0.9.0.0" ] }, - "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><ErrorCode>0</ErrorCode><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", + "ResponseBody": "\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US\r\n \r\n cdsBKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-North-Central-US in North Central US\r\n North Central US\r\n \r\n \r\n \r\n RecoveryServices-BKSIPEKSKUOD6BRA3PZOPIOUSEB6PBLUPHIK7Z3U7OVNBDOA257Q-west-us\r\n \r\n a510ea8f-1b1e-465b-927e-2caf10786579\r\n west us\r\n \r\n \r\n WAHyperVRecoveryManager\r\n HyperVRecoveryManagerVault\r\n rijethma-vault\r\n \r\n 1.1\r\n 25e8dd1c-44c6-49f1-aa50-aac068c55b96\r\n Started\r\n Ok\r\n \r\n \r\n StampId\r\n abeb635b-e186-4605-b464-c7c9e55b226a\r\n \r\n \r\n ResourceId\r\n 8856597376086032764\r\n \r\n \r\n BackendStampId\r\n 75d5c811-a801-4332-8f96-43640cad60e9\r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n VS-aaddisable-Group\r\n \r\n VS-aaddisable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ac1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-acc-Group\r\n \r\n VS-acc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-acc1-Group\r\n \r\n VS-acc1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compact-Group\r\n \r\n Resource group based cloud service.\r\n East US\r\n \r\n \r\n visualstudio\r\n account\r\n compact\r\n None\r\n 1.0\r\n 24b0ccad-e127-4389-a56c-a3e5d510ee0c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compact.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compact\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat-Group\r\n \r\n VS-compat-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat\r\n None\r\n 1.0\r\n 5c087e25-f539-43d6-bf9f-768797f6287c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compat.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compat\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat101-Group\r\n \r\n VS-compat101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compat102-Group\r\n \r\n VS-compat102-Group in West US\r\n West US\r\n \r\n \r\n visualstudio\r\n account\r\n compat102\r\n None\r\n 1.0\r\n 4c907789-db73-4d38-8c81-1cdb093da81b\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat201-Group\r\n \r\n VS-compat201-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compat201\r\n None\r\n 1.0\r\n c35a685d-f549-4ca3-acd6-7c758b644e4f\r\n Started\r\n Failed\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n Build\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 5\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-compat301-Group\r\n \r\n VS-compat301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-compt40-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n compt40\r\n None\r\n 1.0\r\n ba986567-5a53-4baf-9e9c-7b7ade784b5c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://compt40.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n compt40\r\n \r\n \r\n IdentityDomain\r\n Windows Live ID\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Failed\r\n \r\n 403\r\n <WrappedException xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" z:Id=\"i1\" xmlns:z=\"http://schemas.microsoft.com/2003/10/Serialization/\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.WebApi\"><Error.Code>0</Error.Code><EventId>3000</EventId><InnerException i:nil=\"true\" /><Message>User \"admin@aad140.ccsctp.net\" is not the account owner of \"\".</Message><TypeKey>UserIsNotAccountOwnerException</TypeKey><TypeName>Microsoft.VisualStudio.Services.Commerce.UserIsNotAccountOwnerException, Microsoft.VisualStudio.Services.Commerce, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</TypeName></WrappedException>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-createacc002-Group\r\n \r\n VS-createacc002-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createTFS1-Group\r\n \r\n VS-createTFS1-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-createtfs2-Group\r\n \r\n VS-createtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dbupgradetfs202-Group\r\n \r\n VS-dbupgradetfs202-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-dtestacc1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-finalenable-Group\r\n \r\n VS-finalenable-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finaltfacc01-Group\r\n \r\n VS-finaltfacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate-Group\r\n \r\n VS-finalupdate-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdate401-Group\r\n \r\n VS-finalupdate401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalUpdate401Changed-Group\r\n \r\n VS-finalUpdate401Changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-finalupdatetfs402-Group\r\n \r\n VS-finalupdatetfs402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-fresh-Group\r\n \r\n VS-fresh-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-freshsoftdelete-Group\r\n \r\n VS-freshsoftdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-gfsfg-Group\r\n \r\n VS-gfsfg-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-ghhd-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n ghhd\r\n None\r\n 1.0\r\n d4a68495-4de3-46ba-9084-a7fa951ac29e\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://ghhd.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n ghhd\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-ghjfdjdf-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-glkdhghjgk-Group\r\n \r\n VS-glkdhghjgk-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-hh-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ia2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa1-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaa2-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizaacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ibizacc01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-ijkljkl-Group\r\n \r\n VS-ijkljkl-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-klgfuiadlfu-Group\r\n \r\n VS-klgfuiadlfu-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-newsignout-Group\r\n \r\n VS-newsignout-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-quickcheck-Group\r\n \r\n VS-quickcheck-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-qwerty-Group\r\n \r\n VS-qwerty-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-r717auxacc2-Group\r\n \r\n VS-r717auxacc2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-rdfrrrrrrrrrrrrr-Group\r\n \r\n VS-rdfrrrrrrrrrrrrr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-RGless-Group\r\n \r\n VS-RGless-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity-Group\r\n \r\n VS-sanity-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity101-Group\r\n \r\n VS-sanity101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity102-Group\r\n \r\n VS-sanity102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103-Group\r\n \r\n VS-sanity103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity103ibiza-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity104-Group\r\n \r\n VS-sanity104-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity201-Group\r\n \r\n VS-sanity201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity202-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity301-Group\r\n \r\n VS-sanity301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity40-Group\r\n \r\n VS-sanity40-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity401-Group\r\n \r\n VS-sanity401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity403-Group\r\n \r\n VS-sanity403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity601-Group\r\n \r\n VS-sanity601-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity603-Group\r\n \r\n VS-sanity603-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity604-Group\r\n \r\n VS-sanity604-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity605-Group\r\n \r\n VS-sanity605-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity701-Group\r\n \r\n VS-sanity701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity702-Group\r\n \r\n VS-sanity702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanity706-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101-Group\r\n \r\n VS-sanityclean101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean101r-Group\r\n \r\n VS-sanityclean101r-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean102-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityclean103-Group\r\n \r\n VS-sanityclean103-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-sanityr-Group\r\n \r\n VS-sanityr-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete-Group\r\n \r\n VS-softdelete-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete401-Group\r\n \r\n VS-softdelete401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete402-Group\r\n \r\n VS-softdelete402-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete403-Group\r\n \r\n VS-softdelete403-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405-Group\r\n \r\n VS-softdelete405-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdelete405changed-Group\r\n \r\n VS-softdelete405changed-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-softdeleteacc01-Group\r\n \r\n VS-softdeleteacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsdbupgrade201-Group\r\n \r\n VS-spsdbupgrade201-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgrade101-Group\r\n \r\n VS-spsupgrade101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradenone-Group\r\n \r\n VS-spsupgradenone-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetesting101-Group\r\n \r\n VS-spsupgradetesting101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-spsupgradetfs102-Group\r\n \r\n VS-spsupgradetfs102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-test123-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testacc6191-Group\r\n \r\n VS-testacc6191-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux01-Group\r\n \r\n VS-testaccaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccaux02-Group\r\n \r\n VS-testaccaux02-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccc-Group\r\n \r\n VS-testaccc-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testaccibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing-Group\r\n \r\n VS-testing-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n testing\r\n None\r\n 1.0\r\n 477546e4-2b3f-4a9e-ba9d-1c818a58fa3c\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://testing.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n testing\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Create\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-testing01-Group\r\n \r\n VS-testing01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing102-Group\r\n \r\n VS-testing102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing3-Group\r\n \r\n VS-testing3-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing401-Group\r\n \r\n VS-testing401-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing402-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing701-Group\r\n \r\n VS-testing701-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing702-Group\r\n \r\n VS-testing702-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing704-Group\r\n \r\n VS-testing704-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing705-Group\r\n \r\n VS-testing705-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing901-Group\r\n \r\n VS-testing901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testing902-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-testing905-Group\r\n \r\n VS-testing905-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaadbacked901-Group\r\n \r\n VS-testingaadbacked901-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux-Group\r\n \r\n VS-testingaux-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux101-Group\r\n \r\n VS-testingaux101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingaux102-Group\r\n \r\n VS-testingaux102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingmbsabacked-Group\r\n \r\n VS-testingmbsabacked-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingss-Group\r\n \r\n VS-testingss-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs101-Group\r\n \r\n VS-testingtfs101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testingtfs2-Group\r\n \r\n VS-testingtfs2-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testting-Group\r\n \r\n VS-testting-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-testtingtfs-Group\r\n \r\n VS-testtingtfs-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918-Group\r\n \r\n VS-TFS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-TFS918WEU-Group\r\n \r\n VS-TFS918WEU-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsacc301-Group\r\n \r\n VS-tfsacc301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount-Group\r\n \r\n VS-tfsaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsaccount01-Group\r\n \r\n VS-tfsaccount01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsconp101-Group\r\n \r\n VS-tfsconp101-Group in North Central US\r\n North Central US\r\n \r\n \r\n visualstudio\r\n account\r\n tfsconp101\r\n None\r\n 1.0\r\n 3bd7ff2f-c8b1-4e7a-b07c-fedf55bd03eb\r\n Started\r\n Succeeded\r\n \r\n \r\n AdvancedLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n ProfessionalLicense\r\n Seats\r\n 0\r\n 0\r\n \r\n \r\n StandardLicense\r\n Seats\r\n 5\r\n 5\r\n \r\n \r\n Build\r\n Seats\r\n 60\r\n 0\r\n \r\n \r\n LoadTest\r\n Seats\r\n 15000\r\n 0\r\n \r\n \r\n \r\n \r\n \r\n \r\n AdditionalMeterData\r\n PEFycmF5T2ZBcnJheU9mS2V5VmFsdWVQYWlyIHhtbG5zOmk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL3NjaGVtYXMuZGF0YWNvbnRyYWN0Lm9yZy8yMDA0LzA3L01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uU2VydmljZXMuQ29tbWVyY2UiPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkFkdmFuY2VkTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDA8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5Jc1BhaWRCaWxsaW5nRW5hYmxlZDwvS2V5PjxWYWx1ZT5UcnVlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PEFycmF5T2ZLZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk5hbWU8L0tleT48VmFsdWU+UHJvZmVzc2lvbmFsTGljZW5zZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPlRydWU8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5TdGFuZGFyZExpY2Vuc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5NYXhpbXVtUXVhbnRpdHk8L0tleT48VmFsdWU+MTA1PC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+VHJ1ZTwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PC9BcnJheU9mS2V5VmFsdWVQYWlyPjxBcnJheU9mS2V5VmFsdWVQYWlyPjxLZXlWYWx1ZVBhaXI+PEtleT5OYW1lPC9LZXk+PFZhbHVlPkJ1aWxkPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TWF4aW11bVF1YW50aXR5PC9LZXk+PFZhbHVlPjUwMDAwPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+SXNQYWlkQmlsbGluZ0VuYWJsZWQ8L0tleT48VmFsdWU+RmFsc2U8L1ZhbHVlPjwvS2V5VmFsdWVQYWlyPjwvQXJyYXlPZktleVZhbHVlUGFpcj48QXJyYXlPZktleVZhbHVlUGFpcj48S2V5VmFsdWVQYWlyPjxLZXk+TmFtZTwvS2V5PjxWYWx1ZT5Mb2FkVGVzdDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5Pk1heGltdW1RdWFudGl0eTwvS2V5PjxWYWx1ZT4xMDAwMDAwMDwvVmFsdWU+PC9LZXlWYWx1ZVBhaXI+PEtleVZhbHVlUGFpcj48S2V5PklzUGFpZEJpbGxpbmdFbmFibGVkPC9LZXk+PFZhbHVlPkZhbHNlPC9WYWx1ZT48L0tleVZhbHVlUGFpcj48L0FycmF5T2ZLZXlWYWx1ZVBhaXI+PC9BcnJheU9mQXJyYXlPZktleVZhbHVlUGFpcj4=\r\n \r\n \r\n AccountURL\r\n https://tfsconp101.billing-current.tfsallin.net/\r\n \r\n \r\n DisplayName\r\n tfsconp101\r\n \r\n \r\n IdentityDomain\r\n de86f3e7-1fe3-414c-812a-817ab249ad9b\r\n \r\n \r\n TfsRegion\r\n North Central US\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update\r\n Succeeded\r\n \r\n \r\n \r\n \r\n \r\n \r\n VS-TFSNCUS918-Group\r\n \r\n VS-TFSNCUS918-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdate301-Group\r\n \r\n VS-tfsupdate301-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tfsupdatetfsacc302-Group\r\n \r\n VS-tfsupdatetfsacc302-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-today-Group\r\n \r\n VS-today-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysaux01-Group\r\n \r\n VS-todaysaux01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysauxtest101-Group\r\n \r\n VS-todaysauxtest101-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-todaysibiza01-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialacc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount-Group\r\n \r\n VS-trialaccount-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trialaccount102-Group\r\n \r\n VS-trialaccount102-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-trrykweoykweoykweo-Group\r\n \r\n VS-trrykweoykweoykweo-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyauxacc01-Group\r\n \r\n VS-tuejulyauxacc01-Group in North Central US\r\n North Central US\r\n \r\n \r\n \r\n VS-tuejulyibiza01acc-Group\r\n \r\n Resource group based cloud service.\r\n North Central US\r\n \r\n \r\n \r\n VS-westeuropeacc-Group\r\n \r\n VS-westeuropeacc-Group in North Central US\r\n North Central US\r\n \r\n \r\n", "ResponseHeaders": { "Content-Length": [ "54717" diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config index 855688631e33..5fadfe479b3c 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config @@ -1,15 +1,19 @@  - - - + + + + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj index ffeeac1d9294..ca94ee3d9d82 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj @@ -43,6 +43,30 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -55,17 +79,13 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.0.1.1-preview\lib\net40\Microsoft.WindowsAzure.Management.SiteRecovery.dll + ..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.0.4.0-preview\lib\net40\Microsoft.WindowsAzure.Management.SiteRecovery.dll False @@ -141,10 +161,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesJobsClient.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesJobsClient.cs index f11c6c679d60..6c531d05d2a5 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesJobsClient.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesJobsClient.cs @@ -12,8 +12,9 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.WindowsAzure; +using Microsoft.Azure; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; +using Microsoft.WindowsAzure.Management.SiteRecovery; namespace Microsoft.Azure.Commands.RecoveryServices { diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/RecoveryServicesCmdletBase.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/RecoveryServicesCmdletBase.cs index a50e303d68f8..9f1707436869 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/RecoveryServicesCmdletBase.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/RecoveryServicesCmdletBase.cs @@ -20,6 +20,7 @@ using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; +using Hyak.Common; namespace Microsoft.Azure.Commands.RecoveryServices { @@ -74,9 +75,9 @@ public void HandleException(Exception ex) { using (Stream stream = new MemoryStream()) { - if (cloudException.ErrorMessage != null) + if (cloudException.Error.Message != null) { - byte[] data = System.Text.Encoding.UTF8.GetBytes(cloudException.ErrorMessage); + byte[] data = System.Text.Encoding.UTF8.GetBytes(cloudException.Error.Message); stream.Write(data, 0, data.Length); stream.Position = 0; @@ -106,7 +107,7 @@ public void HandleException(Exception ex) throw new XmlException( string.Format( Properties.Resources.InvalidCloudExceptionErrorMessage, - cloudException.ErrorMessage), + cloudException.Error.Message), cloudException); } catch (SerializationException) @@ -114,7 +115,7 @@ public void HandleException(Exception ex) throw new SerializationException( string.Format( Properties.Resources.InvalidCloudExceptionErrorMessage, - clientRequestIdMsg + cloudException.ErrorMessage), + clientRequestIdMsg + cloudException.Error.Message), cloudException); } } diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config index 8e133b6c1b4b..ba43e8748074 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config @@ -1,11 +1,16 @@  - + + + + + + + - - + \ No newline at end of file diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj b/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj index 8c6f57f6736a..a309a0d3fc5c 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj @@ -42,6 +42,29 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -55,25 +78,14 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False @@ -129,10 +141,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {e1ca72ba-8374-45f6-904d-fd34ecdf5b6f} Commands.ServiceManagement diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockServicesHost.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockServicesHost.cs index 9325fa70b099..b8cbed15f4d8 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockServicesHost.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockServicesHost.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Compute.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockStorageService.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockStorageService.cs index dee827deb3e7..76600ec78e7f 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockStorageService.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/MockStorageService.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.Storage.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config b/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config index f2868d2a31f9..8a8c7e1996ed 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config @@ -1,14 +1,18 @@  + + + + + + - - - - - + + + \ No newline at end of file diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs index 4ca15015db45..810686336dbe 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs @@ -32,6 +32,7 @@ using MockStorageService = Microsoft.WindowsAzure.Commands.Test.Utilities.Common.MockStorageService; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { @@ -162,7 +163,7 @@ public void TestRemoveCloudService() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.DeleteAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request000", StatusCode = HttpStatusCode.OK @@ -200,7 +201,7 @@ public void TestRemoveCloudServiceWithStaging() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.DeleteAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request000", StatusCode = HttpStatusCode.OK @@ -225,7 +226,7 @@ public void TestRemoveCloudServiceWithoutDeployments() clientMocks.ComputeManagementClientMock.Setup( c => c.Deployments.BeginDeletingBySlotAsync(It.IsAny(), DeploymentSlot.Production, It.IsAny())) - .Returns((string s, DeploymentSlot slot, CancellationToken cancellationToken) => Tasks.FromResult(new OperationResponse + .Returns((string s, DeploymentSlot slot, CancellationToken cancellationToken) => Tasks.FromResult(new AzureOperationResponse { RequestId = "req0", StatusCode = HttpStatusCode.OK @@ -233,7 +234,7 @@ public void TestRemoveCloudServiceWithoutDeployments() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.DeleteAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request000", StatusCode = HttpStatusCode.OK @@ -259,7 +260,7 @@ public void TestPublishNewCloudService() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -288,7 +289,7 @@ public void TestUpgradeCloudService() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -324,7 +325,7 @@ public void TestCreateStorageServiceWithPublish() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -354,7 +355,7 @@ public void TestPublishWithCurrentStorageAccount() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -387,7 +388,7 @@ public void TestPublishWithDefaultLocation() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -424,7 +425,7 @@ public void TestPublishFromPackageUsingDefaultLocation() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK @@ -463,7 +464,7 @@ public void TestUpgradeCloudServiceFromAPackage() clientMocks.ComputeManagementClientMock.Setup( c => c.HostedServices.CreateAsync(It.IsAny(), It.IsAny())) - .Returns(Tasks.FromResult(new OperationResponse + .Returns(Tasks.FromResult(new AzureOperationResponse { RequestId = "request001", StatusCode = HttpStatusCode.OK diff --git a/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj b/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj index 7f8081662820..6c0ceb9f26fe 100644 --- a/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj +++ b/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj @@ -47,6 +47,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -56,6 +72,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + ..\..\..\packages\WindowsAzure.ServiceBus.2.3.2.0\lib\net40-full\Microsoft.ServiceBus.dll @@ -76,48 +99,35 @@ False ..\..\..\lib\Microsoft.Web.Deployment.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.1.2.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.17.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.16.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.0.1-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.4.0-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll ..\..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll @@ -334,10 +344,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {e1ca72ba-8374-45f6-904d-fd34ecdf5b6f} Commands.ServiceManagement diff --git a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureBgpPeeringTests.cs b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureBgpPeeringTests.cs index c393bc5a5e57..131e1baba71a 100644 --- a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureBgpPeeringTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureBgpPeeringTests.cs @@ -24,6 +24,7 @@ using Microsoft.WindowsAzure.Management.ExpressRoute; using Microsoft.WindowsAzure.Management.ExpressRoute.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.ExpressRoute { diff --git a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitLinkTests.cs b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitLinkTests.cs index 9cc0f753104e..2928935b25fd 100644 --- a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitLinkTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitLinkTests.cs @@ -26,6 +26,7 @@ using Microsoft.WindowsAzure.Management.ExpressRoute; using Microsoft.WindowsAzure.Management.ExpressRoute.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.ExpressRoute { diff --git a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitServiceProviderTests.cs b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitServiceProviderTests.cs index 3817d53b166d..477eedf8b1ee 100644 --- a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitServiceProviderTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitServiceProviderTests.cs @@ -26,6 +26,7 @@ using Microsoft.WindowsAzure.Management.ExpressRoute; using Microsoft.WindowsAzure.Management.ExpressRoute.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.ExpressRoute { diff --git a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitTests.cs b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitTests.cs index 5d3a73aba636..9ec4f14d2280 100644 --- a/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitTests.cs @@ -26,6 +26,7 @@ using Microsoft.WindowsAzure.Management.ExpressRoute; using Microsoft.WindowsAzure.Management.ExpressRoute.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.ExpressRoute { diff --git a/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs b/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs index c40cb015bafc..310141cc26b9 100644 --- a/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs @@ -12,6 +12,8 @@ using Microsoft.WindowsAzure.Management.MediaServices.Models; using Microsoft.WindowsAzure.Management.Storage; using Moq; +using Hyak.Common; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.MediaServices { @@ -28,7 +30,7 @@ public void TestDeleteAzureMediaServiceAccountAsync() { Mock clientMock = InitMediaManagementClientMock(); Mock iAccountOperations = new Mock(); - iAccountOperations.Setup(m => m.DeleteAsync(It.IsAny(), It.IsAny())).Returns(() => Task.Factory.StartNew(() => new OperationResponse + iAccountOperations.Setup(m => m.DeleteAsync(It.IsAny(), It.IsAny())).Returns(() => Task.Factory.StartNew(() => new AzureOperationResponse { RequestId = "request", StatusCode = HttpStatusCode.OK @@ -40,7 +42,7 @@ public void TestDeleteAzureMediaServiceAccountAsync() clientMock.Object, storageClient); - OperationResponse result = target.DeleteAzureMediaServiceAccountAsync(AccountName).Result; + AzureOperationResponse result = target.DeleteAzureMediaServiceAccountAsync(AccountName).Result; Assert.Equal(HttpStatusCode.OK, result.StatusCode); } @@ -66,7 +68,7 @@ public void TestDeleteAzureMediaServiceAccountAsync404() try { - OperationResponse result = target.DeleteAzureMediaServiceAccountAsync(AccountName).Result; + AzureOperationResponse result = target.DeleteAzureMediaServiceAccountAsync(AccountName).Result; } catch (AggregateException ax) { @@ -86,7 +88,7 @@ public void TestRegenerateMediaServicesAccountAsync() iAccountOperations .Setup(m => m.RegenerateKeyAsync(It.IsAny(), It.IsAny(), It.IsAny())) .Returns(() => Task.Factory.StartNew( - () => new OperationResponse + () => new AzureOperationResponse { RequestId = "request", StatusCode = HttpStatusCode.OK @@ -98,7 +100,7 @@ public void TestRegenerateMediaServicesAccountAsync() clientMock.Object, StorageClient); - OperationResponse result = target.RegenerateMediaServicesAccountAsync(AccountName, MediaServicesKeyType.Primary).Result; + AzureOperationResponse result = target.RegenerateMediaServicesAccountAsync(AccountName, MediaServicesKeyType.Primary).Result; Assert.Equal(HttpStatusCode.OK, result.StatusCode); } diff --git a/src/ServiceManagement/Services/Commands.Test/MediaServices/NewAzureMediaServicesKeyTest.cs b/src/ServiceManagement/Services/Commands.Test/MediaServices/NewAzureMediaServicesKeyTest.cs index 95280a837820..b597744a313c 100644 --- a/src/ServiceManagement/Services/Commands.Test/MediaServices/NewAzureMediaServicesKeyTest.cs +++ b/src/ServiceManagement/Services/Commands.Test/MediaServices/NewAzureMediaServicesKeyTest.cs @@ -20,6 +20,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.MediaServices; using Microsoft.WindowsAzure.Management.MediaServices.Models; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.MediaServices { @@ -36,7 +37,7 @@ public void RegenerateMediaServicesAccountTest() const string expectedName = "testacc"; clientMock.Setup(f => f.RegenerateMediaServicesAccountAsync(expectedName, MediaServicesKeyType.Primary)).Returns( - Task.Factory.StartNew(() => new OperationResponse { StatusCode = HttpStatusCode.OK })); + Task.Factory.StartNew(() => new AzureOperationResponse { StatusCode = HttpStatusCode.OK })); MediaServicesAccountGetResponse detail = new MediaServicesAccountGetResponse { diff --git a/src/ServiceManagement/Services/Commands.Test/MediaServices/RemoveMediaServicesAccountTests.cs b/src/ServiceManagement/Services/Commands.Test/MediaServices/RemoveMediaServicesAccountTests.cs index 4399e47d46a6..404a6a714567 100644 --- a/src/ServiceManagement/Services/Commands.Test/MediaServices/RemoveMediaServicesAccountTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/MediaServices/RemoveMediaServicesAccountTests.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.MediaServices; using Moq; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.MediaServices { @@ -34,7 +35,7 @@ public void ProcessRemoveMediaServicesAccountTest() const string expectedName = "testacc"; clientMock.Setup(f => f.DeleteAzureMediaServiceAccountAsync(expectedName)).Returns( - Task.Factory.StartNew(() => new OperationResponse { StatusCode = HttpStatusCode.NoContent })); + Task.Factory.StartNew(() => new AzureOperationResponse { StatusCode = HttpStatusCode.NoContent })); // Test RemoveAzureMediaServiceCommand command = new RemoveAzureMediaServiceCommand diff --git a/src/ServiceManagement/Services/Commands.Test/packages.config b/src/ServiceManagement/Services/Commands.Test/packages.config index cb47c9297057..8c7297707af0 100644 --- a/src/ServiceManagement/Services/Commands.Test/packages.config +++ b/src/ServiceManagement/Services/Commands.Test/packages.config @@ -1,24 +1,28 @@  + + + + + + - - - - - - - - - - - + + + + + + + + + diff --git a/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs b/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs index b07ffad44cf0..3e5ceec09f22 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs @@ -43,6 +43,7 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService using ConfigConfigurationSetting = Common.XmlSchema.ServiceConfigurationSchema.ConfigurationSetting; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; public class CloudServiceClient : ICloudServiceClient { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj b/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj index e481763fe692..799e0157b5bb 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj +++ b/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj @@ -56,6 +56,23 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + @@ -67,6 +84,14 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + ..\..\..\packages\WindowsAzure.ServiceBus.2.3.2.0\lib\net40-full\Microsoft.ServiceBus.dll @@ -86,51 +111,44 @@ False ..\..\..\lib\Microsoft.Web.Deployment.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.1.2.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Scheduler.4.1.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Scheduler.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.17.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll False - ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.16.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll False @@ -138,7 +156,7 @@ False - ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.0.1-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.4.0-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll False @@ -718,10 +736,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs index 5febc9e247ab..0f92dff06086 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs @@ -29,6 +29,8 @@ using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Storage; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { @@ -199,12 +201,12 @@ protected OperationStatusResponse GetOperationNewSM(string operationId) } //TODO: Input argument is not used and should probably be removed. - protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action, Func contextFactory) where TResult : OperationResponse + protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action, Func contextFactory) where TResult : AzureOperationResponse { ExecuteClientActionNewSM(input, operationDescription, action, null, contextFactory); } - protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action, Func waitOperation, Func contextFactory) where TResult : OperationResponse + protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action, Func waitOperation, Func contextFactory) where TResult : AzureOperationResponse { TResult result = null; OperationStatusResponse operation = null; @@ -260,9 +262,9 @@ protected void ExecuteClientActionNewSM(object input, string operationD } } - protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action) where TResult : OperationResponse + protected void ExecuteClientActionNewSM(object input, string operationDescription, Func action) where TResult : AzureOperationResponse { - this.ExecuteClientActionNewSM(input, operationDescription, action, (s, response) => this.ContextFactory(response, s)); + this.ExecuteClientActionNewSM(input, operationDescription, action, (s, response) => this.ContextFactory(response, s)); } protected T2 ContextFactory(T1 source, OperationStatusResponse response) where T2 : ManagementOperationContext diff --git a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/IMediaServicesClient.cs b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/IMediaServicesClient.cs index fbb895ab247c..5149a06c90a4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/IMediaServicesClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/IMediaServicesClient.cs @@ -14,6 +14,7 @@ using System.Threading.Tasks; using Microsoft.WindowsAzure.Management.MediaServices.Models; using Microsoft.WindowsAzure.Management.Storage.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Utilities.MediaServices { @@ -47,7 +48,7 @@ public interface IMediaServicesClient /// /// The name. /// - Task DeleteAzureMediaServiceAccountAsync(string name); + Task DeleteAzureMediaServiceAccountAsync(string name); /// /// Regenerates azure media service account key async. @@ -55,7 +56,7 @@ public interface IMediaServicesClient /// The name. /// Key Type /// - Task RegenerateMediaServicesAccountAsync(string name, MediaServicesKeyType keyType); + Task RegenerateMediaServicesAccountAsync(string name, MediaServicesKeyType keyType); /// /// Gets the storage service keys. diff --git a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs index 8115b61589d0..ed35fcf13d2e 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs @@ -31,6 +31,7 @@ using Microsoft.WindowsAzure.Management.Storage.Models; using Newtonsoft.Json; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Utilities.MediaServices { @@ -143,7 +144,7 @@ public Task CreateNewAzureMediaServiceAsync( /// Deletes azure media service account async. /// /// - public Task DeleteAzureMediaServiceAccountAsync(string name) + public Task DeleteAzureMediaServiceAccountAsync(string name) { return _mediaServicesManagementClient.Accounts.DeleteAsync(name); } @@ -151,7 +152,7 @@ public Task DeleteAzureMediaServiceAccountAsync(string name) /// /// Deletes azure media service account async. /// - public Task RegenerateMediaServicesAccountAsync(string name, MediaServicesKeyType keyType) + public Task RegenerateMediaServicesAccountAsync(string name, MediaServicesKeyType keyType) { return _mediaServicesManagementClient.Accounts.RegenerateKeyAsync(name, keyType); } diff --git a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobCollection.cs b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobCollection.cs index 048ca8092e2a..0da7285b44ff 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobCollection.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobCollection.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Scheduler.Common; using Microsoft.WindowsAzure.Commands.Utilities.Scheduler.Model; using Microsoft.WindowsAzure.Management.Scheduler.Models; +using Microsoft.WindowsAzure.Management.Scheduler; namespace Microsoft.WindowsAzure.Commands.Utilities.Scheduler { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs index 0eb9d533ad57..e48cdc6edd3f 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs @@ -25,6 +25,7 @@ using Microsoft.WindowsAzure.Scheduler; using Microsoft.WindowsAzure.Scheduler.Models; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Utilities.Scheduler { @@ -492,7 +493,7 @@ public bool DeleteJob(string jobCollection, string jobName, string region = "") SchedulerClient schedClient = AzureSession.ClientFactory.CreateCustomClient(region.ToCloudServiceName(), jobCollection, csmClient.Credentials, schedulerManagementClient.BaseUri); - OperationResponse response = schedClient.Jobs.Delete(jobName); + AzureOperationResponse response = schedClient.Jobs.Delete(jobName); return response.StatusCode == System.Net.HttpStatusCode.OK ? true : false; } else if (string.IsNullOrEmpty(region)) @@ -513,7 +514,7 @@ public bool DeleteJob(string jobCollection, string jobName, string region = "") { SchedulerClient schedClient = AzureSession.ClientFactory.CreateCustomClient(cs.Name, jobCollection, csmClient.Credentials, schedulerManagementClient.BaseUri); - OperationResponse response = schedClient.Jobs.Delete(jobName); + AzureOperationResponse response = schedClient.Jobs.Delete(jobName); return response.StatusCode == System.Net.HttpStatusCode.OK ? true : false; } } diff --git a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs index 9e8c4ca20910..efe36786dcb8 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs @@ -32,6 +32,7 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.ServiceBus using ServiceBusNamespaceDescription = Management.ServiceBus.Models.NamespaceDescription; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; public class ServiceBusClientExtensions { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs b/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs index 8dc3a6897bc1..6d081e1819c4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs @@ -49,6 +49,7 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.Websites using Utilities = Services.WebEntities; using Microsoft.Azure.Common.Extensions.Models; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; public class WebsitesClient : IWebsitesClient { diff --git a/src/ServiceManagement/Services/Commands.Utilities/packages.config b/src/ServiceManagement/Services/Commands.Utilities/packages.config index e37a49cce74a..9c38940e2220 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/packages.config +++ b/src/ServiceManagement/Services/Commands.Utilities/packages.config @@ -1,27 +1,31 @@  + + + + + + - - - - - - - - - - - + + + + + + + + + - + diff --git a/src/ServiceManagement/Services/Commands/Commands.csproj b/src/ServiceManagement/Services/Commands/Commands.csproj index 207e963871ff..263cf2e345c9 100644 --- a/src/ServiceManagement/Services/Commands/Commands.csproj +++ b/src/ServiceManagement/Services/Commands/Commands.csproj @@ -54,6 +54,23 @@ False ..\..\..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.dll + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + @@ -92,48 +109,44 @@ False ..\..\..\lib\Microsoft.Web.Deployment.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.6.1.2\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.8.0.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.1.2.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.MediaServices.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.4.3.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Network.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.Scheduler.4.1.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.Scheduler.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.ServiceBus.0.17.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ServiceBus.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.3.1.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Store.0.15.0-preview\lib\net40\Microsoft.WindowsAzure.Management.Store.dll False - ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.11.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.16.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll False @@ -141,7 +154,7 @@ False - ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.0.1-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.WebSites.4.4.0-prerelease\lib\net40\Microsoft.WindowsAzure.Management.WebSites.dll False @@ -336,10 +349,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {4900ec4e-8deb-4412-9108-0bc52f81d457} Commands.Utilities diff --git a/src/ServiceManagement/Services/Commands/MediaServices/NewAzureMediaServiceKeyCommand.cs b/src/ServiceManagement/Services/Commands/MediaServices/NewAzureMediaServiceKeyCommand.cs index 8385976bd1bc..dd909b321a2c 100644 --- a/src/ServiceManagement/Services/Commands/MediaServices/NewAzureMediaServiceKeyCommand.cs +++ b/src/ServiceManagement/Services/Commands/MediaServices/NewAzureMediaServiceKeyCommand.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.MediaServices.Services.Entities; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Management.MediaServices.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.MediaServices { @@ -62,7 +63,7 @@ public override void ExecuteCmdlet() MediaServicesClient = MediaServicesClient ?? new MediaServicesClient(CurrentContext.Subscription, WriteDebug); - OperationResponse result =null; + AzureOperationResponse result = null; CatchAggregatedExceptionFlattenAndRethrow(() => { result = MediaServicesClient.RegenerateMediaServicesAccountAsync(Name, KeyType).Result; }); MediaServiceAccountDetails account = null; diff --git a/src/ServiceManagement/Services/Commands/MediaServices/RemoveAzureMediaServiceCommand.cs b/src/ServiceManagement/Services/Commands/MediaServices/RemoveAzureMediaServiceCommand.cs index 46c69bd9d31a..067226918340 100644 --- a/src/ServiceManagement/Services/Commands/MediaServices/RemoveAzureMediaServiceCommand.cs +++ b/src/ServiceManagement/Services/Commands/MediaServices/RemoveAzureMediaServiceCommand.cs @@ -16,6 +16,7 @@ using System.Net; using Microsoft.WindowsAzure.Commands.Utilities.MediaServices; using Microsoft.WindowsAzure.Commands.Utilities.Properties; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.MediaServices { @@ -44,7 +45,7 @@ public override void ExecuteCmdlet() { MediaServicesClient = MediaServicesClient ?? new MediaServicesClient(CurrentContext.Subscription, WriteDebug); - OperationResponse result = null; + AzureOperationResponse result = null; CatchAggregatedExceptionFlattenAndRethrow(() => { result = MediaServicesClient.DeleteAzureMediaServiceAccountAsync(Name).Result; }); diff --git a/src/ServiceManagement/Services/Commands/Websites/GetAzureWebSite.cs b/src/ServiceManagement/Services/Commands/Websites/GetAzureWebSite.cs index 212410c9c50a..d57bf9daf246 100644 --- a/src/ServiceManagement/Services/Commands/Websites/GetAzureWebSite.cs +++ b/src/ServiceManagement/Services/Commands/Websites/GetAzureWebSite.cs @@ -21,6 +21,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.DeploymentEntities; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Websites { diff --git a/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs b/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs index f3a1ad735844..60894f57babe 100644 --- a/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs +++ b/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs @@ -33,6 +33,7 @@ namespace Microsoft.WindowsAzure.Commands.Websites { using GitClass = Utilities.Websites.Services.Git; using Microsoft.Azure.Common.Extensions; + using Hyak.Common; /// /// Creates a new azure website. diff --git a/src/ServiceManagement/Services/Commands/Websites/RemoveAzureWebSite.cs b/src/ServiceManagement/Services/Commands/Websites/RemoveAzureWebSite.cs index 762a9f5be112..626e2cb2dcfe 100644 --- a/src/ServiceManagement/Services/Commands/Websites/RemoveAzureWebSite.cs +++ b/src/ServiceManagement/Services/Commands/Websites/RemoveAzureWebSite.cs @@ -17,6 +17,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Websites { diff --git a/src/ServiceManagement/Services/Commands/Websites/WebHostingPlan/GetAzureWebHostingPlan.cs b/src/ServiceManagement/Services/Commands/Websites/WebHostingPlan/GetAzureWebHostingPlan.cs index 9b69f76e141e..369c1dd866b2 100644 --- a/src/ServiceManagement/Services/Commands/Websites/WebHostingPlan/GetAzureWebHostingPlan.cs +++ b/src/ServiceManagement/Services/Commands/Websites/WebHostingPlan/GetAzureWebHostingPlan.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.Websites.WebHostingPlan { diff --git a/src/ServiceManagement/Services/Commands/packages.config b/src/ServiceManagement/Services/Commands/packages.config index 6e53e1f698dd..1b775e508671 100644 --- a/src/ServiceManagement/Services/Commands/packages.config +++ b/src/ServiceManagement/Services/Commands/packages.config @@ -1,5 +1,10 @@  + + + + + @@ -8,20 +13,18 @@ - - - - - - - - - - - + + + + + + + + + - + diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj index 0480193a3d80..3face97e95be 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj @@ -48,6 +48,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -57,6 +73,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -70,17 +93,11 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Sql.2.0.0\lib\net40\Microsoft.WindowsAzure.Management.Sql.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.Sql.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Sql.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -196,10 +213,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {DDF5D225-C9C5-42B7-BDB5-2C3646E479AA} Commands.SqlDatabase diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/MockSessions.xml b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/MockSessions.xml index d23d367a792b..75467faba0c2 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/MockSessions.xml +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/MockSessions.xml @@ -213,7 +213,7 @@ - <?xml version="1.0" encoding="utf-8"?><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="Microsoft.SqlServer.Management.Server.Domain" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="Server" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="SubscriptionId" Type="Edm.Guid" /><Property Name="Version" Type="Edm.String" /><NavigationProperty Name="Databases" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Database_Server" FromRole="Server_Databases" /><NavigationProperty Name="ServerMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="ServerMetrics_Server" FromRole="Server_ServerMetrics" /><NavigationProperty Name="ServerQuotas" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="ServerQuota_Server" FromRole="Server_ServerQuotas" /><NavigationProperty Name="DatabaseOperations" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="DatabaseOperation_Server" FromRole="Server_DatabaseOperations" /></EntityType><EntityType Name="Database" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServiceObjectiveId" Type="Edm.Guid" /><Property Name="AssignedServiceObjectiveId" Type="Edm.Guid" /><Property Name="ServiceObjectiveAssignmentState" Type="Edm.Byte" /><Property Name="ServiceObjectiveAssignmentStateDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentErrorCode" Type="Edm.Int32" /><Property Name="ServiceObjectiveAssignmentErrorDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentSuccessDate" Type="Edm.DateTime" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="MaxSizeBytes" Type="Edm.Int64" /><Property Name="CollationName" Type="Edm.String" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /><Property Name="IsSystemObject" Type="Edm.Boolean" Nullable="false" /><Property Name="Status" Type="Edm.Int32" Nullable="false" /><Property Name="IsFederationRoot" Type="Edm.Boolean" /><Property Name="SizeMB" Type="Edm.Decimal" Nullable="false" /><Property Name="IsRecursiveTriggersOn" Type="Edm.Boolean" /><Property Name="IsReadOnly" Type="Edm.Boolean" Nullable="false" /><Property Name="IsFederationMember" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreOn" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreReadOnly" Type="Edm.Boolean" /><Property Name="QueryStoreMaxSizeMB" Type="Edm.Int32" /><Property Name="QueryStoreFlushPeriodSeconds" Type="Edm.Int32" /><Property Name="QueryStoreIntervalLengthMinutes" Type="Edm.Int32" /><Property Name="QueryStoreClearAll" Type="Edm.Boolean" /><Property Name="QueryStoreStaleQueryThresholdDays" Type="Edm.Int32" /><Property Name="IsSuspended" Type="Edm.Boolean" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Server_Databases" FromRole="Database_Server" /><NavigationProperty Name="ServiceObjective" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective" ToRole="ServiceObjective" FromRole="Database" /><NavigationProperty Name="DatabaseMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="DatabaseMetrics_Database" FromRole="Database_DatabaseMetrics" /><NavigationProperty Name="DatabaseCopies" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="DatabaseCopy_Database" FromRole="Database_DatabaseCopies" /></EntityType><EntityType Name="RecoverableDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="LastAvailableBackupDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestorableDroppedDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeBytes" Type="Edm.Int64" Nullable="false" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="DeletionDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /></EntityType><EntityType Name="DimensionSetting" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="Ordinal" Type="Edm.Byte" Nullable="false" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ServiceObjective" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /><Property Name="IsSystem" Type="Edm.Boolean" Nullable="false" /><Property Name="Enabled" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="DimensionSettings" Relationship="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings" ToRole="DimensionSettings" FromRole="ServiceObjective" /></EntityType><EntityType Name="Operation" OpenType="true"><Key><PropertyRef Name="ActionId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="CompletedSteps" Type="Edm.Int32" Nullable="false" /><Property Name="TotalSteps" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="OperationDetails" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="OperationDetail_Operation" FromRole="Operation_OperationDetails" /></EntityType><EntityType Name="OperationDetail" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="SequenceId" Type="Edm.Int32" Nullable="false" /><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="Operation" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="Operation_OperationDetails" FromRole="OperationDetail_Operation" /></EntityType><EntityType Name="CreateDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="ExtractDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacTypeName" Type="Edm.String" /><Property Name="Version" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="UpgradeDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /></EntityType><EntityType Name="ViewDatabaseChangesOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="ChangeResult" Type="Edm.String" /><Property Name="IsRegisteredDac" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ViewUpgradePlanOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="UpgradePlan" Type="Edm.String" /><Property Name="UpgradeScript" Type="Edm.String" /></EntityType><EntityType Name="DatabaseRestoreStatus" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /><Property Name="State" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="IsCancelled" Type="Edm.Boolean" Nullable="false" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="CreatedDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestoreDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /></EntityType><EntityType Name="RecoverDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /></EntityType><EntityType Name="DatabaseCopy" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="LocalDatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DestinationServerName" Type="Edm.String" /><Property Name="DestinationDatabaseName" Type="Edm.String" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="IsContinuous" Type="Edm.Boolean" Nullable="false" /><Property Name="TextStartDate" Type="Edm.String" /><Property Name="TextModifyDate" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Single" /><Property Name="IsLocalDatabaseReplicationTarget" Type="Edm.Boolean" Nullable="false" /><Property Name="ReplicationState" Type="Edm.Byte" Nullable="false" /><Property Name="ReplicationStateDescription" Type="Edm.String" /><Property Name="IsInterlinkConnected" Type="Edm.Boolean" Nullable="false" /><Property Name="IsForcedTerminate" Type="Edm.Boolean" /><Property Name="MaximumLag" Type="Edm.Int32" /><Property Name="EntityId" Type="Edm.Guid" Nullable="false" /><Property Name="IsOfflineSecondary" Type="Edm.Boolean" Nullable="false" /><Property Name="IsTerminationAllowed" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="Database_DatabaseCopies" FromRole="DatabaseCopy_Database" /></EntityType><EntityType Name="DatabaseCopyValidationOperation" OpenType="true"><Key><PropertyRef Name="DatabaseName" /></Key><Property Name="DatabaseName" Type="Edm.String" Nullable="false" /><Property Name="Action" Type="Edm.Int32" Nullable="false" /><Property Name="LoginSid" Type="Edm.String" /></EntityType><EntityType Name="FirewallRule" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="StartIPAddress" Type="Edm.String" /><Property Name="EndIPAddress" Type="Edm.String" /><Property Name="CreateDate" Type="Edm.DateTime" Nullable="false" /><Property Name="ModifyDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="DatabaseMetrics" OpenType="true"><Key><PropertyRef Name="DatabaseId" /></Key><Property Name="DatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="Database_DatabaseMetrics" FromRole="DatabaseMetrics_Database" /></EntityType><EntityType Name="ServerMetrics" OpenType="true"><Key><PropertyRef Name="ServerName" /></Key><Property Name="ServerName" Type="Edm.String" Nullable="false" /><Property Name="NumberOfFailedEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfTerminatedConnectionEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfThrottledEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfDeadlockEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfReconfiguredEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="Server_ServerMetrics" FromRole="ServerMetrics_Server" /></EntityType><EntityType Name="EventLog" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="StartTimeUtc" Type="Edm.DateTime" Nullable="false" /><Property Name="IntervalSizeInMinutes" Type="Edm.Int32" Nullable="false" /><Property Name="EventCategory" Type="Edm.String" /><Property Name="EventType" Type="Edm.String" /><Property Name="EventSubtype" Type="Edm.Int32" Nullable="false" /><Property Name="EventSubtypeDescription" Type="Edm.String" /><Property Name="Severity" Type="Edm.Int32" /><Property Name="NumberOfEvents" Type="Edm.Int64" /><Property Name="Description" Type="Edm.String" /><Property Name="AdditionalData" Type="Edm.String" /></EntityType><EntityType Name="ServerQuota" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="Value" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="Server_ServerQuotas" FromRole="ServerQuota_Server" /></EntityType><EntityType Name="DatabaseOperation" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="State" Type="Edm.String" /><Property Name="StateId" Type="Edm.Int32" Nullable="false" /><Property Name="SessionActivityId" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Int32" Nullable="false" /><Property Name="ErrorCode" Type="Edm.Int32" /><Property Name="Error" Type="Edm.String" /><Property Name="ErrorSeverity" Type="Edm.Int32" /><Property Name="ErrorState" Type="Edm.Int32" /><Property Name="StartTime" Type="Edm.DateTime" Nullable="false" /><Property Name="LastModifyTime" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="Server_DatabaseOperations" FromRole="DatabaseOperation_Server" /></EntityType><Association Name="Server_Databases_Database_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_Databases" Multiplicity="0..1" /></Association><Association Name="Server_ServerMetrics_ServerMetrics_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" Role="ServerMetrics_Server" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerMetrics" Multiplicity="0..1" /></Association><Association Name="Server_ServerQuotas_ServerQuota_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" Role="ServerQuota_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerQuotas" Multiplicity="0..1" /></Association><Association Name="Server_DatabaseOperations_DatabaseOperation_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" Role="DatabaseOperation_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_DatabaseOperations" Multiplicity="0..1" /></Association><Association Name="Database_ServiceObjective"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseMetrics_DatabaseMetrics_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" Role="DatabaseMetrics_Database" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseMetrics" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseCopies_DatabaseCopy_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" Role="DatabaseCopy_Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseCopies" Multiplicity="0..1" /></Association><Association Name="ServiceObjective_DimensionSettings"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" Role="DimensionSettings" Multiplicity="*" /></Association><Association Name="Operation_OperationDetails_OperationDetail_Operation"><End Type="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" Role="OperationDetail_Operation" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Operation" Role="Operation_OperationDetails" Multiplicity="0..1" /></Association><EntityContainer Name="ServerContextInternal" m:IsDefaultEntityContainer="true"><EntitySet Name="Servers" EntityType="Microsoft.SqlServer.Management.Server.Domain.Server" /><EntitySet Name="Databases" EntityType="Microsoft.SqlServer.Management.Server.Domain.Database" /><EntitySet Name="RecoverableDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverableDatabase" /><EntitySet Name="RestorableDroppedDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestorableDroppedDatabase" /><EntitySet Name="DimensionSettings" EntityType="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" /><EntitySet Name="ServiceObjectives" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" /><EntitySet Name="Operations" EntityType="Microsoft.SqlServer.Management.Server.Domain.Operation" /><EntitySet Name="OperationDetails" EntityType="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" /><EntitySet Name="CreateDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.CreateDatabaseFromDacPacOperation" /><EntitySet Name="ExtractDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ExtractDacPacOperation" /><EntitySet Name="UpgradeDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.UpgradeDatabaseFromDacPacOperation" /><EntitySet Name="ViewDatabaseChangesOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewDatabaseChangesOperation" /><EntitySet Name="ViewUpgradePlanOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewUpgradePlanOperation" /><EntitySet Name="DatabaseRestoreStatus" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseRestoreStatus" /><EntitySet Name="RestoreDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestoreDatabaseOperation" /><EntitySet Name="RecoverDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverDatabaseOperation" /><EntitySet Name="DatabaseCopies" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" /><EntitySet Name="DatabaseCopyValidationOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopyValidationOperation" /><EntitySet Name="FirewallRules" EntityType="Microsoft.SqlServer.Management.Server.Domain.FirewallRule" /><EntitySet Name="DatabaseMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" /><EntitySet Name="ServerMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" /><EntitySet Name="EventLogs" EntityType="Microsoft.SqlServer.Management.Server.Domain.EventLog" /><EntitySet Name="ServerQuotas" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" /><EntitySet Name="DatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" /><AssociationSet Name="ServerDatabase" Association="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server"><End Role="Server_Databases" EntitySet="Servers" /><End Role="Database_Server" EntitySet="Databases" /></AssociationSet><AssociationSet Name="ServerServerMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server"><End Role="Server_ServerMetrics" EntitySet="Servers" /><End Role="ServerMetrics_Server" EntitySet="ServerMetrics" /></AssociationSet><AssociationSet Name="ServerServerQuota" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server"><End Role="Server_ServerQuotas" EntitySet="Servers" /><End Role="ServerQuota_Server" EntitySet="ServerQuotas" /></AssociationSet><AssociationSet Name="ServerDatabaseOperation" Association="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server"><End Role="Server_DatabaseOperations" EntitySet="Servers" /><End Role="DatabaseOperation_Server" EntitySet="DatabaseOperations" /></AssociationSet><AssociationSet Name="fk_slo_database_objective_selections_objective_id" Association="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective"><End Role="Database" EntitySet="Databases" /><End Role="ServiceObjective" EntitySet="ServiceObjectives" /></AssociationSet><AssociationSet Name="DatabaseDatabaseMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database"><End Role="Database_DatabaseMetrics" EntitySet="Databases" /><End Role="DatabaseMetrics_Database" EntitySet="DatabaseMetrics" /></AssociationSet><AssociationSet Name="DatabaseDatabaseCopy" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database"><End Role="Database_DatabaseCopies" EntitySet="Databases" /><End Role="DatabaseCopy_Database" EntitySet="DatabaseCopies" /></AssociationSet><AssociationSet Name="slo_objective_setting_selections" Association="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings"><End Role="ServiceObjective" EntitySet="ServiceObjectives" /><End Role="DimensionSettings" EntitySet="DimensionSettings" /></AssociationSet><AssociationSet Name="OperationOperationDetail" Association="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation"><End Role="Operation_OperationDetails" EntitySet="Operations" /><End Role="OperationDetail_Operation" EntitySet="OperationDetails" /></AssociationSet></EntityContainer><Annotations Target="Microsoft.SqlServer.Management.Server.Domain.ServerContextInternal"><ValueAnnotation Term="Com.Microsoft.Data.Services.Conventions.V1.UrlConventions" String="KeyAsSegment" /></Annotations></Schema></edmx:DataServices></edmx:Edmx> + <?xml version="1.0" encoding="utf-8"?><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="Microsoft.SqlServer.Management.Server.Domain" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="Server" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="SubscriptionId" Type="Edm.Guid" /><Property Name="Version" Type="Edm.String" /><NavigationProperty Name="Databases" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Database_Server" FromRole="Server_Databases" /><NavigationProperty Name="ServerMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="ServerMetrics_Server" FromRole="Server_ServerMetrics" /><NavigationProperty Name="ServerQuotas" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="ServerQuota_Server" FromRole="Server_ServerQuotas" /><NavigationProperty Name="DatabaseOperations" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="DatabaseOperation_Server" FromRole="Server_DatabaseOperations" /></EntityType><EntityType Name="Database" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServiceObjectiveId" Type="Edm.Guid" /><Property Name="AssignedServiceObjectiveId" Type="Edm.Guid" /><Property Name="ServiceObjectiveAssignmentState" Type="Edm.Byte" /><Property Name="ServiceObjectiveAssignmentStateDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentErrorCode" Type="Edm.Int32" /><Property Name="ServiceObjectiveAssignmentErrorDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentSuccessDate" Type="Edm.DateTime" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="MaxSizeBytes" Type="Edm.Int64" /><Property Name="CollationName" Type="Edm.String" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /><Property Name="IsSystemObject" Type="Edm.Boolean" Nullable="false" /><Property Name="Status" Type="Edm.Int32" Nullable="false" /><Property Name="IsFederationRoot" Type="Edm.Boolean" /><Property Name="SizeMB" Type="Edm.Decimal" Nullable="false" /><Property Name="IsRecursiveTriggersOn" Type="Edm.Boolean" /><Property Name="IsReadOnly" Type="Edm.Boolean" Nullable="false" /><Property Name="IsFederationMember" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreOn" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreReadOnly" Type="Edm.Boolean" /><Property Name="QueryStoreMaxSizeMB" Type="Edm.Int32" /><Property Name="QueryStoreFlushPeriodSeconds" Type="Edm.Int32" /><Property Name="QueryStoreIntervalLengthMinutes" Type="Edm.Int32" /><Property Name="QueryStoreClearAll" Type="Edm.Boolean" /><Property Name="QueryStoreStaleQueryThresholdDays" Type="Edm.Int32" /><Property Name="IsSuspended" Type="Edm.Boolean" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Server_Databases" FromRole="Database_Server" /><NavigationProperty Name="ServiceObjective" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective" ToRole="ServiceObjective" FromRole="Database" /><NavigationProperty Name="DatabaseMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="DatabaseMetrics_Database" FromRole="Database_DatabaseMetrics" /><NavigationProperty Name="DatabaseCopies" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="DatabaseCopy_Database" FromRole="Database_DatabaseCopies" /></EntityType><EntityType Name="RecoverableDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="LastAvailableBackupDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestorableDroppedDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeBytes" Type="Edm.Int64" Nullable="false" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="DeletionDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /></EntityType><EntityType Name="DimensionSetting" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="Ordinal" Type="Edm.Byte" Nullable="false" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ServiceObjective" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /><Property Name="IsSystem" Type="Edm.Boolean" Nullable="false" /><Property Name="Enabled" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="DimensionSettings" Relationship="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings" ToRole="DimensionSettings" FromRole="ServiceObjective" /></EntityType><EntityType Name="Operation" OpenType="true"><Key><PropertyRef Name="ActionId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="CompletedSteps" Type="Edm.Int32" Nullable="false" /><Property Name="TotalSteps" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="OperationDetails" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="OperationDetail_Operation" FromRole="Operation_OperationDetails" /></EntityType><EntityType Name="OperationDetail" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="SequenceId" Type="Edm.Int32" Nullable="false" /><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="Operation" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="Operation_OperationDetails" FromRole="OperationDetail_Operation" /></EntityType><EntityType Name="CreateDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="ExtractDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacTypeName" Type="Edm.String" /><Property Name="Version" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="UpgradeDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /></EntityType><EntityType Name="ViewDatabaseChangesOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="ChangeResult" Type="Edm.String" /><Property Name="IsRegisteredDac" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ViewUpgradePlanOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="UpgradePlan" Type="Edm.String" /><Property Name="UpgradeScript" Type="Edm.String" /></EntityType><EntityType Name="DatabaseRestoreStatus" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /><Property Name="State" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="IsCancelled" Type="Edm.Boolean" Nullable="false" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="CreatedDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestoreDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /></EntityType><EntityType Name="RecoverDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /></EntityType><EntityType Name="DatabaseCopy" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="LocalDatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DestinationServerName" Type="Edm.String" /><Property Name="DestinationDatabaseName" Type="Edm.String" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="IsContinuous" Type="Edm.Boolean" Nullable="false" /><Property Name="TextStartDate" Type="Edm.String" /><Property Name="TextModifyDate" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Single" /><Property Name="IsLocalDatabaseReplicationTarget" Type="Edm.Boolean" Nullable="false" /><Property Name="ReplicationState" Type="Edm.Byte" Nullable="false" /><Property Name="ReplicationStateDescription" Type="Edm.String" /><Property Name="IsInterlinkConnected" Type="Edm.Boolean" Nullable="false" /><Property Name="IsForcedTerminate" Type="Edm.Boolean" /><Property Name="MaximumLag" Type="Edm.Int32" /><Property Name="EntityId" Type="Edm.Guid" Nullable="false" /><Property Name="IsOfflineSecondary" Type="Edm.Boolean" Nullable="false" /><Property Name="IsTerminationAllowed" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="Database_DatabaseCopies" FromRole="DatabaseCopy_Database" /></EntityType><EntityType Name="DatabaseCopyValidationOperation" OpenType="true"><Key><PropertyRef Name="DatabaseName" /></Key><Property Name="DatabaseName" Type="Edm.String" Nullable="false" /><Property Name="Action" Type="Edm.Int32" Nullable="false" /><Property Name="LoginSid" Type="Edm.String" /></EntityType><EntityType Name="FirewallRule" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="StartIPAddress" Type="Edm.String" /><Property Name="EndIPAddress" Type="Edm.String" /><Property Name="CreateDate" Type="Edm.DateTime" Nullable="false" /><Property Name="ModifyDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="DatabaseMetrics" OpenType="true"><Key><PropertyRef Name="DatabaseId" /></Key><Property Name="DatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="Database_DatabaseMetrics" FromRole="DatabaseMetrics_Database" /></EntityType><EntityType Name="ServerMetrics" OpenType="true"><Key><PropertyRef Name="ServerName" /></Key><Property Name="ServerName" Type="Edm.String" Nullable="false" /><Property Name="NumberOfFailedEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfTerminatedConnectionEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfThrottledEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfDeadlockEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfReconfiguredEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="Server_ServerMetrics" FromRole="ServerMetrics_Server" /></EntityType><EntityType Name="EventLog" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="StartTimeUtc" Type="Edm.DateTime" Nullable="false" /><Property Name="IntervalSizeInMinutes" Type="Edm.Int32" Nullable="false" /><Property Name="EventCategory" Type="Edm.String" /><Property Name="EventType" Type="Edm.String" /><Property Name="EventSubtype" Type="Edm.Int32" Nullable="false" /><Property Name="EventSubtypeDescription" Type="Edm.String" /><Property Name="Severity" Type="Edm.Int32" /><Property Name="NumberOfEvents" Type="Edm.Int64" /><Property Name="Description" Type="Edm.String" /><Property Name="AdditionalData" Type="Edm.String" /></EntityType><EntityType Name="ServerQuota" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="Value" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="Server_ServerQuotas" FromRole="ServerQuota_Server" /></EntityType><EntityType Name="DatabaseOperation" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="State" Type="Edm.String" /><Property Name="StateId" Type="Edm.Int32" Nullable="false" /><Property Name="SessionActivityId" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Int32" Nullable="false" /><Property Name="Error.Code" Type="Edm.Int32" /><Property Name="Error" Type="Edm.String" /><Property Name="ErrorSeverity" Type="Edm.Int32" /><Property Name="ErrorState" Type="Edm.Int32" /><Property Name="StartTime" Type="Edm.DateTime" Nullable="false" /><Property Name="LastModifyTime" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="Server_DatabaseOperations" FromRole="DatabaseOperation_Server" /></EntityType><Association Name="Server_Databases_Database_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_Databases" Multiplicity="0..1" /></Association><Association Name="Server_ServerMetrics_ServerMetrics_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" Role="ServerMetrics_Server" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerMetrics" Multiplicity="0..1" /></Association><Association Name="Server_ServerQuotas_ServerQuota_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" Role="ServerQuota_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerQuotas" Multiplicity="0..1" /></Association><Association Name="Server_DatabaseOperations_DatabaseOperation_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" Role="DatabaseOperation_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_DatabaseOperations" Multiplicity="0..1" /></Association><Association Name="Database_ServiceObjective"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseMetrics_DatabaseMetrics_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" Role="DatabaseMetrics_Database" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseMetrics" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseCopies_DatabaseCopy_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" Role="DatabaseCopy_Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseCopies" Multiplicity="0..1" /></Association><Association Name="ServiceObjective_DimensionSettings"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" Role="DimensionSettings" Multiplicity="*" /></Association><Association Name="Operation_OperationDetails_OperationDetail_Operation"><End Type="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" Role="OperationDetail_Operation" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Operation" Role="Operation_OperationDetails" Multiplicity="0..1" /></Association><EntityContainer Name="ServerContextInternal" m:IsDefaultEntityContainer="true"><EntitySet Name="Servers" EntityType="Microsoft.SqlServer.Management.Server.Domain.Server" /><EntitySet Name="Databases" EntityType="Microsoft.SqlServer.Management.Server.Domain.Database" /><EntitySet Name="RecoverableDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverableDatabase" /><EntitySet Name="RestorableDroppedDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestorableDroppedDatabase" /><EntitySet Name="DimensionSettings" EntityType="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" /><EntitySet Name="ServiceObjectives" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" /><EntitySet Name="Operations" EntityType="Microsoft.SqlServer.Management.Server.Domain.Operation" /><EntitySet Name="OperationDetails" EntityType="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" /><EntitySet Name="CreateDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.CreateDatabaseFromDacPacOperation" /><EntitySet Name="ExtractDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ExtractDacPacOperation" /><EntitySet Name="UpgradeDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.UpgradeDatabaseFromDacPacOperation" /><EntitySet Name="ViewDatabaseChangesOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewDatabaseChangesOperation" /><EntitySet Name="ViewUpgradePlanOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewUpgradePlanOperation" /><EntitySet Name="DatabaseRestoreStatus" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseRestoreStatus" /><EntitySet Name="RestoreDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestoreDatabaseOperation" /><EntitySet Name="RecoverDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverDatabaseOperation" /><EntitySet Name="DatabaseCopies" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" /><EntitySet Name="DatabaseCopyValidationOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopyValidationOperation" /><EntitySet Name="FirewallRules" EntityType="Microsoft.SqlServer.Management.Server.Domain.FirewallRule" /><EntitySet Name="DatabaseMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" /><EntitySet Name="ServerMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" /><EntitySet Name="EventLogs" EntityType="Microsoft.SqlServer.Management.Server.Domain.EventLog" /><EntitySet Name="ServerQuotas" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" /><EntitySet Name="DatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" /><AssociationSet Name="ServerDatabase" Association="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server"><End Role="Server_Databases" EntitySet="Servers" /><End Role="Database_Server" EntitySet="Databases" /></AssociationSet><AssociationSet Name="ServerServerMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server"><End Role="Server_ServerMetrics" EntitySet="Servers" /><End Role="ServerMetrics_Server" EntitySet="ServerMetrics" /></AssociationSet><AssociationSet Name="ServerServerQuota" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server"><End Role="Server_ServerQuotas" EntitySet="Servers" /><End Role="ServerQuota_Server" EntitySet="ServerQuotas" /></AssociationSet><AssociationSet Name="ServerDatabaseOperation" Association="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server"><End Role="Server_DatabaseOperations" EntitySet="Servers" /><End Role="DatabaseOperation_Server" EntitySet="DatabaseOperations" /></AssociationSet><AssociationSet Name="fk_slo_database_objective_selections_objective_id" Association="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective"><End Role="Database" EntitySet="Databases" /><End Role="ServiceObjective" EntitySet="ServiceObjectives" /></AssociationSet><AssociationSet Name="DatabaseDatabaseMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database"><End Role="Database_DatabaseMetrics" EntitySet="Databases" /><End Role="DatabaseMetrics_Database" EntitySet="DatabaseMetrics" /></AssociationSet><AssociationSet Name="DatabaseDatabaseCopy" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database"><End Role="Database_DatabaseCopies" EntitySet="Databases" /><End Role="DatabaseCopy_Database" EntitySet="DatabaseCopies" /></AssociationSet><AssociationSet Name="slo_objective_setting_selections" Association="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings"><End Role="ServiceObjective" EntitySet="ServiceObjectives" /><End Role="DimensionSettings" EntitySet="DimensionSettings" /></AssociationSet><AssociationSet Name="OperationOperationDetail" Association="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation"><End Role="Operation_OperationDetails" EntitySet="Operations" /><End Role="OperationDetail_Operation" EntitySet="OperationDetails" /></AssociationSet></EntityContainer><Annotations Target="Microsoft.SqlServer.Management.Server.Domain.ServerContextInternal"><ValueAnnotation Term="Com.Microsoft.Data.Services.Conventions.V1.UrlConventions" String="KeyAsSegment" /></Annotations></Schema></edmx:DataServices></edmx:Edmx> @@ -1547,7 +1547,7 @@ - <?xml version="1.0" encoding="utf-8"?><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="Microsoft.SqlServer.Management.Server.Domain" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="Server" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="SubscriptionId" Type="Edm.Guid" /><Property Name="Version" Type="Edm.String" /><NavigationProperty Name="Databases" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Database_Server" FromRole="Server_Databases" /><NavigationProperty Name="ServerMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="ServerMetrics_Server" FromRole="Server_ServerMetrics" /><NavigationProperty Name="ServerQuotas" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="ServerQuota_Server" FromRole="Server_ServerQuotas" /><NavigationProperty Name="DatabaseOperations" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="DatabaseOperation_Server" FromRole="Server_DatabaseOperations" /></EntityType><EntityType Name="Database" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServiceObjectiveId" Type="Edm.Guid" /><Property Name="AssignedServiceObjectiveId" Type="Edm.Guid" /><Property Name="ServiceObjectiveAssignmentState" Type="Edm.Byte" /><Property Name="ServiceObjectiveAssignmentStateDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentErrorCode" Type="Edm.Int32" /><Property Name="ServiceObjectiveAssignmentErrorDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentSuccessDate" Type="Edm.DateTime" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="MaxSizeBytes" Type="Edm.Int64" /><Property Name="CollationName" Type="Edm.String" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /><Property Name="IsSystemObject" Type="Edm.Boolean" Nullable="false" /><Property Name="Status" Type="Edm.Int32" Nullable="false" /><Property Name="IsFederationRoot" Type="Edm.Boolean" /><Property Name="SizeMB" Type="Edm.Decimal" Nullable="false" /><Property Name="IsRecursiveTriggersOn" Type="Edm.Boolean" /><Property Name="IsReadOnly" Type="Edm.Boolean" Nullable="false" /><Property Name="IsFederationMember" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreOn" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreReadOnly" Type="Edm.Boolean" /><Property Name="QueryStoreMaxSizeMB" Type="Edm.Int32" /><Property Name="QueryStoreFlushPeriodSeconds" Type="Edm.Int32" /><Property Name="QueryStoreIntervalLengthMinutes" Type="Edm.Int32" /><Property Name="QueryStoreClearAll" Type="Edm.Boolean" /><Property Name="QueryStoreStaleQueryThresholdDays" Type="Edm.Int32" /><Property Name="IsSuspended" Type="Edm.Boolean" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Server_Databases" FromRole="Database_Server" /><NavigationProperty Name="ServiceObjective" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective" ToRole="ServiceObjective" FromRole="Database" /><NavigationProperty Name="DatabaseMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="DatabaseMetrics_Database" FromRole="Database_DatabaseMetrics" /><NavigationProperty Name="DatabaseCopies" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="DatabaseCopy_Database" FromRole="Database_DatabaseCopies" /></EntityType><EntityType Name="RecoverableDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="LastAvailableBackupDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestorableDroppedDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeBytes" Type="Edm.Int64" Nullable="false" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="DeletionDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /></EntityType><EntityType Name="DimensionSetting" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="Ordinal" Type="Edm.Byte" Nullable="false" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ServiceObjective" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /><Property Name="IsSystem" Type="Edm.Boolean" Nullable="false" /><Property Name="Enabled" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="DimensionSettings" Relationship="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings" ToRole="DimensionSettings" FromRole="ServiceObjective" /></EntityType><EntityType Name="Operation" OpenType="true"><Key><PropertyRef Name="ActionId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="CompletedSteps" Type="Edm.Int32" Nullable="false" /><Property Name="TotalSteps" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="OperationDetails" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="OperationDetail_Operation" FromRole="Operation_OperationDetails" /></EntityType><EntityType Name="OperationDetail" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="SequenceId" Type="Edm.Int32" Nullable="false" /><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="Operation" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="Operation_OperationDetails" FromRole="OperationDetail_Operation" /></EntityType><EntityType Name="CreateDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="ExtractDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacTypeName" Type="Edm.String" /><Property Name="Version" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="UpgradeDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /></EntityType><EntityType Name="ViewDatabaseChangesOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="ChangeResult" Type="Edm.String" /><Property Name="IsRegisteredDac" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ViewUpgradePlanOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="UpgradePlan" Type="Edm.String" /><Property Name="UpgradeScript" Type="Edm.String" /></EntityType><EntityType Name="DatabaseRestoreStatus" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /><Property Name="State" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="IsCancelled" Type="Edm.Boolean" Nullable="false" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="CreatedDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestoreDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /></EntityType><EntityType Name="RecoverDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /></EntityType><EntityType Name="DatabaseCopy" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="LocalDatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DestinationServerName" Type="Edm.String" /><Property Name="DestinationDatabaseName" Type="Edm.String" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="IsContinuous" Type="Edm.Boolean" Nullable="false" /><Property Name="TextStartDate" Type="Edm.String" /><Property Name="TextModifyDate" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Single" /><Property Name="IsLocalDatabaseReplicationTarget" Type="Edm.Boolean" Nullable="false" /><Property Name="ReplicationState" Type="Edm.Byte" Nullable="false" /><Property Name="ReplicationStateDescription" Type="Edm.String" /><Property Name="IsInterlinkConnected" Type="Edm.Boolean" Nullable="false" /><Property Name="IsForcedTerminate" Type="Edm.Boolean" /><Property Name="MaximumLag" Type="Edm.Int32" /><Property Name="EntityId" Type="Edm.Guid" Nullable="false" /><Property Name="IsOfflineSecondary" Type="Edm.Boolean" Nullable="false" /><Property Name="IsTerminationAllowed" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="Database_DatabaseCopies" FromRole="DatabaseCopy_Database" /></EntityType><EntityType Name="DatabaseCopyValidationOperation" OpenType="true"><Key><PropertyRef Name="DatabaseName" /></Key><Property Name="DatabaseName" Type="Edm.String" Nullable="false" /><Property Name="Action" Type="Edm.Int32" Nullable="false" /><Property Name="LoginSid" Type="Edm.String" /></EntityType><EntityType Name="FirewallRule" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="StartIPAddress" Type="Edm.String" /><Property Name="EndIPAddress" Type="Edm.String" /><Property Name="CreateDate" Type="Edm.DateTime" Nullable="false" /><Property Name="ModifyDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="DatabaseMetrics" OpenType="true"><Key><PropertyRef Name="DatabaseId" /></Key><Property Name="DatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="Database_DatabaseMetrics" FromRole="DatabaseMetrics_Database" /></EntityType><EntityType Name="ServerMetrics" OpenType="true"><Key><PropertyRef Name="ServerName" /></Key><Property Name="ServerName" Type="Edm.String" Nullable="false" /><Property Name="NumberOfFailedEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfTerminatedConnectionEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfThrottledEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfDeadlockEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfReconfiguredEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="Server_ServerMetrics" FromRole="ServerMetrics_Server" /></EntityType><EntityType Name="EventLog" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="StartTimeUtc" Type="Edm.DateTime" Nullable="false" /><Property Name="IntervalSizeInMinutes" Type="Edm.Int32" Nullable="false" /><Property Name="EventCategory" Type="Edm.String" /><Property Name="EventType" Type="Edm.String" /><Property Name="EventSubtype" Type="Edm.Int32" Nullable="false" /><Property Name="EventSubtypeDescription" Type="Edm.String" /><Property Name="Severity" Type="Edm.Int32" /><Property Name="NumberOfEvents" Type="Edm.Int64" /><Property Name="Description" Type="Edm.String" /><Property Name="AdditionalData" Type="Edm.String" /></EntityType><EntityType Name="ServerQuota" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="Value" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="Server_ServerQuotas" FromRole="ServerQuota_Server" /></EntityType><EntityType Name="DatabaseOperation" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="State" Type="Edm.String" /><Property Name="StateId" Type="Edm.Int32" Nullable="false" /><Property Name="SessionActivityId" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Int32" Nullable="false" /><Property Name="ErrorCode" Type="Edm.Int32" /><Property Name="Error" Type="Edm.String" /><Property Name="ErrorSeverity" Type="Edm.Int32" /><Property Name="ErrorState" Type="Edm.Int32" /><Property Name="StartTime" Type="Edm.DateTime" Nullable="false" /><Property Name="LastModifyTime" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="Server_DatabaseOperations" FromRole="DatabaseOperation_Server" /></EntityType><Association Name="Server_Databases_Database_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_Databases" Multiplicity="0..1" /></Association><Association Name="Server_ServerMetrics_ServerMetrics_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" Role="ServerMetrics_Server" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerMetrics" Multiplicity="0..1" /></Association><Association Name="Server_ServerQuotas_ServerQuota_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" Role="ServerQuota_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerQuotas" Multiplicity="0..1" /></Association><Association Name="Server_DatabaseOperations_DatabaseOperation_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" Role="DatabaseOperation_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_DatabaseOperations" Multiplicity="0..1" /></Association><Association Name="Database_ServiceObjective"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseMetrics_DatabaseMetrics_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" Role="DatabaseMetrics_Database" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseMetrics" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseCopies_DatabaseCopy_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" Role="DatabaseCopy_Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseCopies" Multiplicity="0..1" /></Association><Association Name="ServiceObjective_DimensionSettings"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" Role="DimensionSettings" Multiplicity="*" /></Association><Association Name="Operation_OperationDetails_OperationDetail_Operation"><End Type="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" Role="OperationDetail_Operation" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Operation" Role="Operation_OperationDetails" Multiplicity="0..1" /></Association><EntityContainer Name="ServerContextInternal" m:IsDefaultEntityContainer="true"><EntitySet Name="Servers" EntityType="Microsoft.SqlServer.Management.Server.Domain.Server" /><EntitySet Name="Databases" EntityType="Microsoft.SqlServer.Management.Server.Domain.Database" /><EntitySet Name="RecoverableDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverableDatabase" /><EntitySet Name="RestorableDroppedDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestorableDroppedDatabase" /><EntitySet Name="DimensionSettings" EntityType="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" /><EntitySet Name="ServiceObjectives" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" /><EntitySet Name="Operations" EntityType="Microsoft.SqlServer.Management.Server.Domain.Operation" /><EntitySet Name="OperationDetails" EntityType="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" /><EntitySet Name="CreateDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.CreateDatabaseFromDacPacOperation" /><EntitySet Name="ExtractDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ExtractDacPacOperation" /><EntitySet Name="UpgradeDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.UpgradeDatabaseFromDacPacOperation" /><EntitySet Name="ViewDatabaseChangesOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewDatabaseChangesOperation" /><EntitySet Name="ViewUpgradePlanOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewUpgradePlanOperation" /><EntitySet Name="DatabaseRestoreStatus" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseRestoreStatus" /><EntitySet Name="RestoreDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestoreDatabaseOperation" /><EntitySet Name="RecoverDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverDatabaseOperation" /><EntitySet Name="DatabaseCopies" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" /><EntitySet Name="DatabaseCopyValidationOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopyValidationOperation" /><EntitySet Name="FirewallRules" EntityType="Microsoft.SqlServer.Management.Server.Domain.FirewallRule" /><EntitySet Name="DatabaseMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" /><EntitySet Name="ServerMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" /><EntitySet Name="EventLogs" EntityType="Microsoft.SqlServer.Management.Server.Domain.EventLog" /><EntitySet Name="ServerQuotas" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" /><EntitySet Name="DatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" /><AssociationSet Name="ServerDatabase" Association="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server"><End Role="Server_Databases" EntitySet="Servers" /><End Role="Database_Server" EntitySet="Databases" /></AssociationSet><AssociationSet Name="ServerServerMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server"><End Role="Server_ServerMetrics" EntitySet="Servers" /><End Role="ServerMetrics_Server" EntitySet="ServerMetrics" /></AssociationSet><AssociationSet Name="ServerServerQuota" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server"><End Role="Server_ServerQuotas" EntitySet="Servers" /><End Role="ServerQuota_Server" EntitySet="ServerQuotas" /></AssociationSet><AssociationSet Name="ServerDatabaseOperation" Association="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server"><End Role="Server_DatabaseOperations" EntitySet="Servers" /><End Role="DatabaseOperation_Server" EntitySet="DatabaseOperations" /></AssociationSet><AssociationSet Name="fk_slo_database_objective_selections_objective_id" Association="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective"><End Role="Database" EntitySet="Databases" /><End Role="ServiceObjective" EntitySet="ServiceObjectives" /></AssociationSet><AssociationSet Name="DatabaseDatabaseMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database"><End Role="Database_DatabaseMetrics" EntitySet="Databases" /><End Role="DatabaseMetrics_Database" EntitySet="DatabaseMetrics" /></AssociationSet><AssociationSet Name="DatabaseDatabaseCopy" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database"><End Role="Database_DatabaseCopies" EntitySet="Databases" /><End Role="DatabaseCopy_Database" EntitySet="DatabaseCopies" /></AssociationSet><AssociationSet Name="slo_objective_setting_selections" Association="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings"><End Role="ServiceObjective" EntitySet="ServiceObjectives" /><End Role="DimensionSettings" EntitySet="DimensionSettings" /></AssociationSet><AssociationSet Name="OperationOperationDetail" Association="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation"><End Role="Operation_OperationDetails" EntitySet="Operations" /><End Role="OperationDetail_Operation" EntitySet="OperationDetails" /></AssociationSet></EntityContainer><Annotations Target="Microsoft.SqlServer.Management.Server.Domain.ServerContextInternal"><ValueAnnotation Term="Com.Microsoft.Data.Services.Conventions.V1.UrlConventions" String="KeyAsSegment" /></Annotations></Schema></edmx:DataServices></edmx:Edmx> + <?xml version="1.0" encoding="utf-8"?><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="Microsoft.SqlServer.Management.Server.Domain" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="Server" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="SubscriptionId" Type="Edm.Guid" /><Property Name="Version" Type="Edm.String" /><NavigationProperty Name="Databases" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Database_Server" FromRole="Server_Databases" /><NavigationProperty Name="ServerMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="ServerMetrics_Server" FromRole="Server_ServerMetrics" /><NavigationProperty Name="ServerQuotas" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="ServerQuota_Server" FromRole="Server_ServerQuotas" /><NavigationProperty Name="DatabaseOperations" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="DatabaseOperation_Server" FromRole="Server_DatabaseOperations" /></EntityType><EntityType Name="Database" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServiceObjectiveId" Type="Edm.Guid" /><Property Name="AssignedServiceObjectiveId" Type="Edm.Guid" /><Property Name="ServiceObjectiveAssignmentState" Type="Edm.Byte" /><Property Name="ServiceObjectiveAssignmentStateDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentErrorCode" Type="Edm.Int32" /><Property Name="ServiceObjectiveAssignmentErrorDescription" Type="Edm.String" /><Property Name="ServiceObjectiveAssignmentSuccessDate" Type="Edm.DateTime" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="MaxSizeBytes" Type="Edm.Int64" /><Property Name="CollationName" Type="Edm.String" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /><Property Name="IsSystemObject" Type="Edm.Boolean" Nullable="false" /><Property Name="Status" Type="Edm.Int32" Nullable="false" /><Property Name="IsFederationRoot" Type="Edm.Boolean" /><Property Name="SizeMB" Type="Edm.Decimal" Nullable="false" /><Property Name="IsRecursiveTriggersOn" Type="Edm.Boolean" /><Property Name="IsReadOnly" Type="Edm.Boolean" Nullable="false" /><Property Name="IsFederationMember" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreOn" Type="Edm.Boolean" Nullable="false" /><Property Name="IsQueryStoreReadOnly" Type="Edm.Boolean" /><Property Name="QueryStoreMaxSizeMB" Type="Edm.Int32" /><Property Name="QueryStoreFlushPeriodSeconds" Type="Edm.Int32" /><Property Name="QueryStoreIntervalLengthMinutes" Type="Edm.Int32" /><Property Name="QueryStoreClearAll" Type="Edm.Boolean" /><Property Name="QueryStoreStaleQueryThresholdDays" Type="Edm.Int32" /><Property Name="IsSuspended" Type="Edm.Boolean" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server" ToRole="Server_Databases" FromRole="Database_Server" /><NavigationProperty Name="ServiceObjective" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective" ToRole="ServiceObjective" FromRole="Database" /><NavigationProperty Name="DatabaseMetrics" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="DatabaseMetrics_Database" FromRole="Database_DatabaseMetrics" /><NavigationProperty Name="DatabaseCopies" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="DatabaseCopy_Database" FromRole="Database_DatabaseCopies" /></EntityType><EntityType Name="RecoverableDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="LastAvailableBackupDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestorableDroppedDatabase" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="ServerName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeBytes" Type="Edm.Int64" Nullable="false" /><Property Name="CreationDate" Type="Edm.DateTime" Nullable="false" /><Property Name="DeletionDate" Type="Edm.DateTime" Nullable="false" /><Property Name="RecoveryPeriodStartDate" Type="Edm.DateTime" /></EntityType><EntityType Name="DimensionSetting" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="Ordinal" Type="Edm.Byte" Nullable="false" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ServiceObjective" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="IsDefault" Type="Edm.Boolean" Nullable="false" /><Property Name="IsSystem" Type="Edm.Boolean" Nullable="false" /><Property Name="Enabled" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="DimensionSettings" Relationship="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings" ToRole="DimensionSettings" FromRole="ServiceObjective" /></EntityType><EntityType Name="Operation" OpenType="true"><Key><PropertyRef Name="ActionId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="CompletedSteps" Type="Edm.Int32" Nullable="false" /><Property Name="TotalSteps" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="OperationDetails" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="OperationDetail_Operation" FromRole="Operation_OperationDetails" /></EntityType><EntityType Name="OperationDetail" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="ActionTypeName" Type="Edm.String" /><Property Name="ActionStatusName" Type="Edm.String" /><Property Name="DacDatabaseName" Type="Edm.String" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="DateCreated" Type="Edm.DateTime" Nullable="false" /><Property Name="DateModified" Type="Edm.DateTime" Nullable="false" /><Property Name="Comments" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="SequenceId" Type="Edm.Int32" Nullable="false" /><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="ActionId" Type="Edm.Int32" Nullable="false" /><Property Name="DacObjectTypeName" Type="Edm.String" /><NavigationProperty Name="Operation" Relationship="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation" ToRole="Operation_OperationDetails" FromRole="OperationDetail_Operation" /></EntityType><EntityType Name="CreateDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="Edition" Type="Edm.String" /><Property Name="MaxSizeGB" Type="Edm.Int32" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="ExtractDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacTypeName" Type="Edm.String" /><Property Name="Version" Type="Edm.String" /><Property Name="Description" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /></EntityType><EntityType Name="UpgradeDatabaseFromDacPacOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="OperationId" Type="Edm.Int32" Nullable="false" /></EntityType><EntityType Name="ViewDatabaseChangesOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="ChangeResult" Type="Edm.String" /><Property Name="IsRegisteredDac" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="ViewUpgradePlanOperation" OpenType="true"><Key><PropertyRef Name="OperationGuid" /></Key><Property Name="OperationGuid" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="DacPac" Type="Edm.Binary" /><Property Name="RollbackOnFailure" Type="Edm.Boolean" /><Property Name="UpgradePlan" Type="Edm.String" /><Property Name="UpgradeScript" Type="Edm.String" /></EntityType><EntityType Name="DatabaseRestoreStatus" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /><Property Name="State" Type="Edm.String" /><Property Name="Error" Type="Edm.String" /><Property Name="IsCancelled" Type="Edm.Boolean" Nullable="false" /><Property Name="CreatedBy" Type="Edm.String" /><Property Name="CreatedDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="RestoreDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="SourceDatabaseDeletionDate" Type="Edm.DateTime" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /><Property Name="TargetUtcPointInTime" Type="Edm.DateTime" /></EntityType><EntityType Name="RecoverDatabaseOperation" OpenType="true"><Key><PropertyRef Name="RequestID" /></Key><Property Name="RequestID" Type="Edm.Guid" Nullable="false" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="TargetServerName" Type="Edm.String" /><Property Name="TargetDatabaseName" Type="Edm.String" /></EntityType><EntityType Name="DatabaseCopy" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="LocalDatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DestinationServerName" Type="Edm.String" /><Property Name="DestinationDatabaseName" Type="Edm.String" /><Property Name="SourceServerName" Type="Edm.String" /><Property Name="SourceDatabaseName" Type="Edm.String" /><Property Name="IsContinuous" Type="Edm.Boolean" Nullable="false" /><Property Name="TextStartDate" Type="Edm.String" /><Property Name="TextModifyDate" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Single" /><Property Name="IsLocalDatabaseReplicationTarget" Type="Edm.Boolean" Nullable="false" /><Property Name="ReplicationState" Type="Edm.Byte" Nullable="false" /><Property Name="ReplicationStateDescription" Type="Edm.String" /><Property Name="IsInterlinkConnected" Type="Edm.Boolean" Nullable="false" /><Property Name="IsForcedTerminate" Type="Edm.Boolean" /><Property Name="MaximumLag" Type="Edm.Int32" /><Property Name="EntityId" Type="Edm.Guid" Nullable="false" /><Property Name="IsOfflineSecondary" Type="Edm.Boolean" Nullable="false" /><Property Name="IsTerminationAllowed" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database" ToRole="Database_DatabaseCopies" FromRole="DatabaseCopy_Database" /></EntityType><EntityType Name="DatabaseCopyValidationOperation" OpenType="true"><Key><PropertyRef Name="DatabaseName" /></Key><Property Name="DatabaseName" Type="Edm.String" Nullable="false" /><Property Name="Action" Type="Edm.Int32" Nullable="false" /><Property Name="LoginSid" Type="Edm.String" /></EntityType><EntityType Name="FirewallRule" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="StartIPAddress" Type="Edm.String" /><Property Name="EndIPAddress" Type="Edm.String" /><Property Name="CreateDate" Type="Edm.DateTime" Nullable="false" /><Property Name="ModifyDate" Type="Edm.DateTime" Nullable="false" /></EntityType><EntityType Name="DatabaseMetrics" OpenType="true"><Key><PropertyRef Name="DatabaseId" /></Key><Property Name="DatabaseId" Type="Edm.Int32" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Database" Relationship="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database" ToRole="Database_DatabaseMetrics" FromRole="DatabaseMetrics_Database" /></EntityType><EntityType Name="ServerMetrics" OpenType="true"><Key><PropertyRef Name="ServerName" /></Key><Property Name="ServerName" Type="Edm.String" Nullable="false" /><Property Name="NumberOfFailedEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginSuccessEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfLoginFailureEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfTerminatedConnectionEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfThrottledEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfDeadlockEvents" Type="Edm.Int64" Nullable="false" /><Property Name="NumberOfReconfiguredEvents" Type="Edm.Int64" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server" ToRole="Server_ServerMetrics" FromRole="ServerMetrics_Server" /></EntityType><EntityType Name="EventLog" OpenType="true"><Key><PropertyRef Name="EntityId" /></Key><Property Name="EntityId" Type="Edm.String" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="StartTimeUtc" Type="Edm.DateTime" Nullable="false" /><Property Name="IntervalSizeInMinutes" Type="Edm.Int32" Nullable="false" /><Property Name="EventCategory" Type="Edm.String" /><Property Name="EventType" Type="Edm.String" /><Property Name="EventSubtype" Type="Edm.Int32" Nullable="false" /><Property Name="EventSubtypeDescription" Type="Edm.String" /><Property Name="Severity" Type="Edm.Int32" /><Property Name="NumberOfEvents" Type="Edm.Int64" /><Property Name="Description" Type="Edm.String" /><Property Name="AdditionalData" Type="Edm.String" /></EntityType><EntityType Name="ServerQuota" OpenType="true"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="Value" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server" ToRole="Server_ServerQuotas" FromRole="ServerQuota_Server" /></EntityType><EntityType Name="DatabaseOperation" OpenType="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="State" Type="Edm.String" /><Property Name="StateId" Type="Edm.Int32" Nullable="false" /><Property Name="SessionActivityId" Type="Edm.Guid" Nullable="false" /><Property Name="DatabaseName" Type="Edm.String" /><Property Name="PercentComplete" Type="Edm.Int32" Nullable="false" /><Property Name="Error.Code" Type="Edm.Int32" /><Property Name="Error" Type="Edm.String" /><Property Name="ErrorSeverity" Type="Edm.Int32" /><Property Name="ErrorState" Type="Edm.Int32" /><Property Name="StartTime" Type="Edm.DateTime" Nullable="false" /><Property Name="LastModifyTime" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Server" Relationship="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server" ToRole="Server_DatabaseOperations" FromRole="DatabaseOperation_Server" /></EntityType><Association Name="Server_Databases_Database_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_Databases" Multiplicity="0..1" /></Association><Association Name="Server_ServerMetrics_ServerMetrics_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" Role="ServerMetrics_Server" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerMetrics" Multiplicity="0..1" /></Association><Association Name="Server_ServerQuotas_ServerQuota_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" Role="ServerQuota_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_ServerQuotas" Multiplicity="0..1" /></Association><Association Name="Server_DatabaseOperations_DatabaseOperation_Server"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" Role="DatabaseOperation_Server" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Server" Role="Server_DatabaseOperations" Multiplicity="0..1" /></Association><Association Name="Database_ServiceObjective"><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseMetrics_DatabaseMetrics_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" Role="DatabaseMetrics_Database" Multiplicity="0..1" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseMetrics" Multiplicity="0..1" /></Association><Association Name="Database_DatabaseCopies_DatabaseCopy_Database"><End Type="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" Role="DatabaseCopy_Database" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Database" Role="Database_DatabaseCopies" Multiplicity="0..1" /></Association><Association Name="ServiceObjective_DimensionSettings"><End Type="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" Role="ServiceObjective" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" Role="DimensionSettings" Multiplicity="*" /></Association><Association Name="Operation_OperationDetails_OperationDetail_Operation"><End Type="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" Role="OperationDetail_Operation" Multiplicity="*" /><End Type="Microsoft.SqlServer.Management.Server.Domain.Operation" Role="Operation_OperationDetails" Multiplicity="0..1" /></Association><EntityContainer Name="ServerContextInternal" m:IsDefaultEntityContainer="true"><EntitySet Name="Servers" EntityType="Microsoft.SqlServer.Management.Server.Domain.Server" /><EntitySet Name="Databases" EntityType="Microsoft.SqlServer.Management.Server.Domain.Database" /><EntitySet Name="RecoverableDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverableDatabase" /><EntitySet Name="RestorableDroppedDatabases" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestorableDroppedDatabase" /><EntitySet Name="DimensionSettings" EntityType="Microsoft.SqlServer.Management.Server.Domain.DimensionSetting" /><EntitySet Name="ServiceObjectives" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective" /><EntitySet Name="Operations" EntityType="Microsoft.SqlServer.Management.Server.Domain.Operation" /><EntitySet Name="OperationDetails" EntityType="Microsoft.SqlServer.Management.Server.Domain.OperationDetail" /><EntitySet Name="CreateDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.CreateDatabaseFromDacPacOperation" /><EntitySet Name="ExtractDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ExtractDacPacOperation" /><EntitySet Name="UpgradeDatabaseFromDacPacOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.UpgradeDatabaseFromDacPacOperation" /><EntitySet Name="ViewDatabaseChangesOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewDatabaseChangesOperation" /><EntitySet Name="ViewUpgradePlanOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.ViewUpgradePlanOperation" /><EntitySet Name="DatabaseRestoreStatus" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseRestoreStatus" /><EntitySet Name="RestoreDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RestoreDatabaseOperation" /><EntitySet Name="RecoverDatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.RecoverDatabaseOperation" /><EntitySet Name="DatabaseCopies" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopy" /><EntitySet Name="DatabaseCopyValidationOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseCopyValidationOperation" /><EntitySet Name="FirewallRules" EntityType="Microsoft.SqlServer.Management.Server.Domain.FirewallRule" /><EntitySet Name="DatabaseMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseMetrics" /><EntitySet Name="ServerMetrics" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerMetrics" /><EntitySet Name="EventLogs" EntityType="Microsoft.SqlServer.Management.Server.Domain.EventLog" /><EntitySet Name="ServerQuotas" EntityType="Microsoft.SqlServer.Management.Server.Domain.ServerQuota" /><EntitySet Name="DatabaseOperations" EntityType="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" /><AssociationSet Name="ServerDatabase" Association="Microsoft.SqlServer.Management.Server.Domain.Server_Databases_Database_Server"><End Role="Server_Databases" EntitySet="Servers" /><End Role="Database_Server" EntitySet="Databases" /></AssociationSet><AssociationSet Name="ServerServerMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerMetrics_ServerMetrics_Server"><End Role="Server_ServerMetrics" EntitySet="Servers" /><End Role="ServerMetrics_Server" EntitySet="ServerMetrics" /></AssociationSet><AssociationSet Name="ServerServerQuota" Association="Microsoft.SqlServer.Management.Server.Domain.Server_ServerQuotas_ServerQuota_Server"><End Role="Server_ServerQuotas" EntitySet="Servers" /><End Role="ServerQuota_Server" EntitySet="ServerQuotas" /></AssociationSet><AssociationSet Name="ServerDatabaseOperation" Association="Microsoft.SqlServer.Management.Server.Domain.Server_DatabaseOperations_DatabaseOperation_Server"><End Role="Server_DatabaseOperations" EntitySet="Servers" /><End Role="DatabaseOperation_Server" EntitySet="DatabaseOperations" /></AssociationSet><AssociationSet Name="fk_slo_database_objective_selections_objective_id" Association="Microsoft.SqlServer.Management.Server.Domain.Database_ServiceObjective"><End Role="Database" EntitySet="Databases" /><End Role="ServiceObjective" EntitySet="ServiceObjectives" /></AssociationSet><AssociationSet Name="DatabaseDatabaseMetrics" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseMetrics_DatabaseMetrics_Database"><End Role="Database_DatabaseMetrics" EntitySet="Databases" /><End Role="DatabaseMetrics_Database" EntitySet="DatabaseMetrics" /></AssociationSet><AssociationSet Name="DatabaseDatabaseCopy" Association="Microsoft.SqlServer.Management.Server.Domain.Database_DatabaseCopies_DatabaseCopy_Database"><End Role="Database_DatabaseCopies" EntitySet="Databases" /><End Role="DatabaseCopy_Database" EntitySet="DatabaseCopies" /></AssociationSet><AssociationSet Name="slo_objective_setting_selections" Association="Microsoft.SqlServer.Management.Server.Domain.ServiceObjective_DimensionSettings"><End Role="ServiceObjective" EntitySet="ServiceObjectives" /><End Role="DimensionSettings" EntitySet="DimensionSettings" /></AssociationSet><AssociationSet Name="OperationOperationDetail" Association="Microsoft.SqlServer.Management.Server.Domain.Operation_OperationDetails_OperationDetail_Operation"><End Role="Operation_OperationDetails" EntitySet="Operations" /><End Role="OperationDetail_Operation" EntitySet="OperationDetails" /></AssociationSet></EntityContainer><Annotations Target="Microsoft.SqlServer.Management.Server.Domain.ServerContextInternal"><ValueAnnotation Term="Com.Microsoft.Data.Services.Conventions.V1.UrlConventions" String="KeyAsSegment" /></Annotations></Schema></edmx:DataServices></edmx:Edmx> @@ -10988,7 +10988,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource></ServiceResources> @@ -11045,7 +11045,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource></ServiceResources> @@ -11102,7 +11102,7 @@ - <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource> + <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/abd31d7f-19ca-4f29-a89a-7b38910f7ca9</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>abd31d7f-19ca-4f29-a89a-7b38910f7ca9</Id><StateId>2</StateId><SessionActivityId>2124fd28-a431-40a7-b042-c3a712a32062</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-01T18:23:32.5330000</StartTime><LastModifyTime>2014-07-01T18:23:33.5470000</LastModifyTime></ServiceResource> @@ -11557,7 +11557,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource></ServiceResources> @@ -11614,7 +11614,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource></ServiceResources> @@ -11671,7 +11671,7 @@ - <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource> + <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/33623226-1f44-4ea5-a18f-b4460664f9b0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>33623226-1f44-4ea5-a18f-b4460664f9b0</Id><StateId>2</StateId><SessionActivityId>3360f77a-5284-4662-9dfd-0f37b0af1ec7</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_76974d03-d70b-4f9b-88d0-76df0cb68f2c</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-07T19:58:02.0530000</StartTime><LastModifyTime>2014-07-07T19:58:03.7400000</LastModifyTime></ServiceResource> @@ -14826,7 +14826,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource></ServiceResources> @@ -14883,7 +14883,7 @@ - <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource></ServiceResources> + <ServiceResources xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ServiceResource><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource></ServiceResources> @@ -14940,7 +14940,7 @@ - <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><ErrorCode>0</ErrorCode><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource> + <ServiceResource xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Name>CREATE DATABASE</Name><Type>Microsoft.SqlAzure.DatabaseOperation</Type><State>COMPLETED</State><SelfLink>https://localhost/servers/myserver01/databaseoperations/2459d7eb-ffc2-45ee-b421-f645739aa5a0</SelfLink><ParentLink>https://localhost/servers/myserver01</ParentLink><Id>2459d7eb-ffc2-45ee-b421-f645739aa5a0</Id><StateId>2</StateId><SessionActivityId>306236e8-0638-4496-abf3-4095a376c790</SessionActivityId><DatabaseName>testdbcertGetOperationDbName_f1abaa48-a85a-4141-9a40-6acb3ea65771</DatabaseName><PercentComplete>100</PercentComplete><Error.Code>0</Error.Code><Error/><ErrorSeverity>0</ErrorSeverity><ErrorState>0</ErrorState><StartTime>2014-07-24T18:34:14.3700000</StartTime><LastModifyTime>2014-07-24T18:34:17.2270000</LastModifyTime></ServiceResource> @@ -17343,7 +17343,7 @@ - <?xml version="1.0" encoding="utf-8"?><feed xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations</id><title type="text">DatabaseOperations</title><updated>2013-11-12T02:31:13Z</updated><link rel="self" title="DatabaseOperations" href="DatabaseOperations" /><entry><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:ErrorCode m:type="Edm.Int32">0</d:ErrorCode><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry></feed> + <?xml version="1.0" encoding="utf-8"?><feed xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations</id><title type="text">DatabaseOperations</title><updated>2013-11-12T02:31:13Z</updated><link rel="self" title="DatabaseOperations" href="DatabaseOperations" /><entry><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:Error.Code m:type="Edm.Int32">0</d:Error.Code><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry></feed> @@ -17426,7 +17426,7 @@ - <?xml version="1.0" encoding="utf-8"?><feed xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations</id><title type="text">DatabaseOperations</title><updated>2013-11-12T02:31:13Z</updated><link rel="self" title="DatabaseOperations" href="DatabaseOperations" /><entry><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:ErrorCode m:type="Edm.Int32">0</d:ErrorCode><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry></feed> + <?xml version="1.0" encoding="utf-8"?><feed xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations</id><title type="text">DatabaseOperations</title><updated>2013-11-12T02:31:13Z</updated><link rel="self" title="DatabaseOperations" href="DatabaseOperations" /><entry><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:Error.Code m:type="Edm.Int32">0</d:Error.Code><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry></feed> @@ -17509,7 +17509,7 @@ - <?xml version="1.0" encoding="utf-8"?><entry xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:ErrorCode m:type="Edm.Int32">0</d:ErrorCode><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry> + <?xml version="1.0" encoding="utf-8"?><entry xml:base="http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>http://localhost:12345/v1/ManagementService.svc/Server2('myserver01')/DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')</id><category term="Microsoft.SqlServer.Management.Server.Domain.DatabaseOperation" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="DatabaseOperation" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Server" type="application/atom+xml;type=entry" title="Server" href="DatabaseOperations(guid'6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659')/Server" /><title /><updated>2013-11-12T02:31:13Z</updated><author><name /></author><content type="application/xml"><m:properties><d:Id m:type="Edm.Guid">6c3afd55-7ce5-45cd-8e4c-f5ae8f8e1659</d:Id><d:Name>CREATE DATABASE</d:Name><d:State>COMPLETED</d:State><d:StateId m:type="Edm.Int32">2</d:StateId><d:SessionActivityId m:type="Edm.Guid">8844fdbc-1e7e-47a6-b51d-f93b09f78374</d:SessionActivityId><d:DatabaseName>getAzureSqlDatabaseOperationTestsDB_08ebd7c9-bfb7-426a-9e2f-9921999567e1</d:DatabaseName><d:PercentComplete m:type="Edm.Int32">100</d:PercentComplete><d:Error.Code m:type="Edm.Int32">0</d:Error.Code><d:Error></d:Error><d:ErrorSeverity m:type="Edm.Int32">0</d:ErrorSeverity><d:ErrorState m:type="Edm.Int32">0</d:ErrorState><d:StartTime m:type="Edm.DateTime">2013-11-12T02:30:58.157</d:StartTime><d:LastModifyTime m:type="Edm.DateTime">2013-11-12T02:31:04.36</d:LastModifyTime></m:properties></content></entry> diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/TSqlMockSessions/SqlAuthv12MockTests.xml b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/TSqlMockSessions/SqlAuthv12MockTests.xml index 02e4c3036230..860b9c28369d 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/TSqlMockSessions/SqlAuthv12MockTests.xml +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Resources/TSqlMockSessions/SqlAuthv12MockTests.xml @@ -1,7 +1,808 @@ + + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb1 OR testdb1 IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + testdb1 + 5 + 2014-12-22T16:56:09.243-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + testdb1 + SELECT DatabasePropertyEx(testdb1, 'Edition') as edition, DatabasePropertyEx(testdb1, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb1, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Basic + Basic + 1073741824 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb2 OR testdb2 IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + testdb2 + 6 + 2014-12-22T16:57:51.347-08:00 + Japanese_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + testdb2 + SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S0 + 107374182400 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb3alt OR testdb3alt IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + testdb3alt + 7 + 2014-12-22T15:51:45.7-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + testdb3alt + SELECT DatabasePropertyEx(testdb3alt, 'Edition') as edition, DatabasePropertyEx(testdb3alt, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb3alt, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S0 + 107374182400 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb4 OR testdb4 IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + testdb4 + 8 + 2014-12-22T16:56:31.85-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 + testdb4 + SELECT DatabasePropertyEx(testdb4, 'Edition') as edition, DatabasePropertyEx(testdb4, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb4, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S0 + 268435456000 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb1 OR testdb1 IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + testdb1 + 5 + 2014-12-05T15:52:35.953-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + testdb1 + SELECT DatabasePropertyEx(testdb1, 'Edition') as edition, DatabasePropertyEx(testdb1, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb1, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S0 + 268435456000 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = OR IS NULL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + master + 1 + 2014-12-05T12:35:00.73-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + true + 1 +
+ + testdb1 + 5 + 2014-12-05T15:52:35.953-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+ + testdb2 + 6 + 2014-12-05T15:54:56.603-08:00 + Japanese_CI_AS + false + false + false + false + false + 1 +
+ + testdb3 + 7 + 2014-12-05T15:55:29.173-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+ + testdb4 + 8 + 2014-12-05T15:57:43.137-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + master + SELECT DatabasePropertyEx(master, 'Edition') as edition, DatabasePropertyEx(master, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(master, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + System + System2 + 5368709120 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + testdb2 + SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Basic + Basic + 2147483648 +
+
+
+
+ + SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + testdb3 + SELECT DatabasePropertyEx(testdb3, 'Edition') as edition, DatabasePropertyEx(testdb3, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb3, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S0 + 107374182400 +
+
+
+
SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + testdb4 + SELECT DatabasePropertyEx(testdb4, 'Edition') as edition, DatabasePropertyEx(testdb4, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb4, 'MaxSizeInBytes') as maxSizeBytes + + + + + + + + + + + + + + + + + + + + + Standard + S2 + 268435456000 +
+
+
+
+ + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 master SELECT @@ -67,7 +868,7 @@ testdb15 - 2014-12-05T15:52:35.953-08:00 + 2014-12-06T12:25:52.49-08:00SQL_Latin1_General_CP1_CI_ASfalsefalse @@ -80,7 +881,7 @@ - SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb1 SELECT DatabasePropertyEx(testdb1, 'Edition') as edition, DatabasePropertyEx(testdb1, 'MaxSizeInBytes') as maxSizeBytes @@ -109,7 +910,7 @@ - SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 master SELECT @@ -145,7 +946,7 @@ ELSE 0x0010 -- SUSPECT END) AS [status] FROM [sys].[databases] AS [db] - WHERE ([db].[name] = OR IS NULL) + WHERE ([db].[name] = testdb2 OR testdb2 IS NULL) @@ -172,34 +973,10 @@ -
- master - 1 - 2014-12-05T12:35:00.73-08:00 - SQL_Latin1_General_CP1_CI_AS - false - false - false - false - true - 1 -
- - testdb1 - 5 - 2014-12-05T15:52:35.953-08:00 - SQL_Latin1_General_CP1_CI_AS - false - false - false - false - false - 1 -
testdb26 - 2014-12-05T15:54:56.603-08:00 + 2014-12-06T12:27:55.997-08:00Japanese_CI_ASfalsefalse @@ -208,37 +985,13 @@ false1
- - testdb3 - 7 - 2014-12-05T15:55:29.173-08:00 - SQL_Latin1_General_CP1_CI_AS - false - false - false - false - false - 1 -
- - testdb4 - 8 - 2014-12-05T15:57:43.137-08:00 - SQL_Latin1_General_CP1_CI_AS - false - false - false - false - false - 1 -
- SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 - master - SELECT DatabasePropertyEx(master, 'Edition') as edition, DatabasePropertyEx(master, 'MaxSizeInBytes') as maxSizeBytes + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 + testdb2 + SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes @@ -258,16 +1011,50 @@ - System - 5368709120 + Basic + 2147483648
- SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 - testdb2 - SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb3 OR testdb3 IS NULL) @@ -277,8 +1064,16 @@ - - + + + + + + + + + + @@ -287,14 +1082,22 @@ - Basic - 2147483648 + testdb3 + 7 + 2014-12-06T12:28:28.81-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1
- SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb3 SELECT DatabasePropertyEx(testdb3, 'Edition') as edition, DatabasePropertyEx(testdb3, 'MaxSizeInBytes') as maxSizeBytes @@ -306,8 +1109,8 @@ - - + + @@ -323,9 +1126,43 @@ - SqlAuthv12MockTests.GetAzureSqlDatabaseWithSqlAuthv12 - testdb4 - SELECT DatabasePropertyEx(testdb4, 'Edition') as edition, DatabasePropertyEx(testdb4, 'MaxSizeInBytes') as maxSizeBytes + SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 + master + + SELECT + [db].[name], + [db].[database_id], + [db].[create_date], + [db].[collation_name], + [db].[is_read_only], + [db].[is_query_store_on], + [db].[is_recursive_triggers_on], + [db].[is_federation_member], + CONVERT (bit, CASE WHEN [db].[name] in ('master') THEN 1 ELSE [db].[is_distributor] END) AS [is_system_object], + CONVERT (int, + CASE + WHEN [db].[is_in_standby] = 1 THEN 0x0040 + ELSE 0 + END | + CASE + WHEN [db].[is_cleanly_shutdown] = 1 THEN 0x0080 + ELSE 0 + END | + CASE [db].[state] + WHEN 0 THEN 0x0001 -- NORMAL + WHEN 1 THEN 0x0002 -- RESTORING + WHEN 2 THEN 0x0008 -- RECOVERING + WHEN 3 THEN 0x0004 -- RECOVERY_PENDING + WHEN 4 THEN 0x0010 -- SUSPECT + WHEN 5 THEN 0x0100 -- EMERGENCY + WHEN 6 THEN 0x0020 -- OFFLINE + WHEN 7 THEN 0x0400 -- COPYING + WHEN 9 THEN 0x0800 -- CREATING + WHEN 10 THEN 0x1000 -- OFFLINE_SECONDARY + ELSE 0x0010 -- SUSPECT + END) AS [status] + FROM [sys].[databases] AS [db] + WHERE ([db].[name] = testdb4 OR testdb4 IS NULL) @@ -335,8 +1172,16 @@ - - + + + + + + + + + + @@ -345,8 +1190,16 @@ - Standard - 268435456000 + testdb4 + 8 + 2014-12-06T12:31:55.247-08:00 + SQL_Latin1_General_CP1_CI_AS + false + false + false + false + false + 1
@@ -418,7 +1271,7 @@ testdb15 - 2014-12-06T12:25:52.49-08:00 + 2014-12-22T15:49:15.387-08:00SQL_Latin1_General_CP1_CI_ASfalsefalse @@ -433,7 +1286,7 @@ SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb1 - SELECT DatabasePropertyEx(testdb1, 'Edition') as edition, DatabasePropertyEx(testdb1, 'MaxSizeInBytes') as maxSizeBytes + SELECT DatabasePropertyEx(testdb1, 'Edition') as edition, DatabasePropertyEx(testdb1, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb1, 'MaxSizeInBytes') as maxSizeBytes @@ -444,6 +1297,7 @@ + @@ -454,6 +1308,7 @@
Standard + S0268435456000
@@ -526,7 +1381,7 @@ testdb26 - 2014-12-06T12:27:55.997-08:00 + 2014-12-22T15:51:10.693-08:00Japanese_CI_ASfalsefalse @@ -541,7 +1396,7 @@ SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb2 - SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes + SELECT DatabasePropertyEx(testdb2, 'Edition') as edition, DatabasePropertyEx(testdb2, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb2, 'MaxSizeInBytes') as maxSizeBytes @@ -552,6 +1407,7 @@ + @@ -562,6 +1418,7 @@
Basic + Basic2147483648
@@ -634,7 +1491,7 @@ testdb37 - 2014-12-06T12:28:28.81-08:00 + 2014-12-22T15:51:45.7-08:00SQL_Latin1_General_CP1_CI_ASfalsefalse @@ -649,7 +1506,7 @@ SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb3 - SELECT DatabasePropertyEx(testdb3, 'Edition') as edition, DatabasePropertyEx(testdb3, 'MaxSizeInBytes') as maxSizeBytes + SELECT DatabasePropertyEx(testdb3, 'Edition') as edition, DatabasePropertyEx(testdb3, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb3, 'MaxSizeInBytes') as maxSizeBytes @@ -660,6 +1517,7 @@ + @@ -670,6 +1528,7 @@
Standard + S0107374182400
@@ -742,7 +1601,7 @@ testdb48 - 2014-12-06T12:31:55.247-08:00 + 2014-12-22T15:53:51.507-08:00SQL_Latin1_General_CP1_CI_ASfalsefalse @@ -757,7 +1616,7 @@ SqlAuthv12MockTests.NewAzureSqlDatabaseWithSqlAuthv12 testdb4 - SELECT DatabasePropertyEx(testdb4, 'Edition') as edition, DatabasePropertyEx(testdb4, 'MaxSizeInBytes') as maxSizeBytes + SELECT DatabasePropertyEx(testdb4, 'Edition') as edition, DatabasePropertyEx(testdb4, 'ServiceObjective') as serviceObjective, DatabasePropertyEx(testdb4, 'MaxSizeInBytes') as maxSizeBytes @@ -768,6 +1627,7 @@ + @@ -778,12 +1638,13 @@
Standard + S2268435456000
- + SqlAuthv12MockTests.SetAzureSqlDatabaseWithSqlAuthv12 master diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 index 2b0d372c191b..96f4a9a3fe65 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 @@ -89,7 +89,7 @@ function GetOperationStatus Write-Output "Request Status: $($status.Status)" if($status.Status -eq "Failed") { - Write-Output "Error message: $($status.ErrorMessage)" + Write-Output "Error message: $($status.Error.Message)" break } } while($status.Status -ne "Completed") @@ -128,7 +128,7 @@ function GetOperationStatusWithRequestId Write-Output "Request Status: $($status.Status)" if($status.Status -eq "Failed") { - Write-Output "Error message: $($status.ErrorMessage)" + Write-Output "Error message: $($status.Error.Message)" break } } while($status.Status -ne "Completed") diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config index 830b7830cf61..6bead9261a3b 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config @@ -1,15 +1,20 @@  + + + + + + - - - + + \ No newline at end of file diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj b/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj index dc647c7c8b1b..710c6a6502fb 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj @@ -51,6 +51,23 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -60,6 +77,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -72,20 +96,16 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Sql.2.0.0\lib\net40\Microsoft.WindowsAzure.Management.Sql.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Sql.5.0.0\lib\net40\Microsoft.WindowsAzure.Management.Sql.dll False @@ -203,10 +223,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs index 68d9769792f4..2eb455284457 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs @@ -132,6 +132,30 @@ private void ParameterValidation() ErrorCategory.InvalidArgument, null)); } + + // The API doesn't allow supplying a database name and and operation GUID. + if (this.MyInvocation.BoundParameters.ContainsKey("DatabaseName") && + this.MyInvocation.BoundParameters.ContainsKey("OperationGuid")) + { + this.WriteError(new ErrorRecord( + new PSArgumentException( + String.Format(Resources.InvalidParameterCombination, "DatabaseName", "OperationGuid")), + string.Empty, + ErrorCategory.InvalidArgument, + null)); + } + + // The API doesn't allow supplying a database name and and operation GUID. + if (this.MyInvocation.BoundParameters.ContainsKey("Database") && + this.MyInvocation.BoundParameters.ContainsKey("OperationGuid")) + { + this.WriteError(new ErrorRecord( + new PSArgumentException( + String.Format(Resources.InvalidParameterCombination, "Database", "OperationGuid")), + string.Empty, + ErrorCategory.InvalidArgument, + null)); + } } /// diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Firewall/Cmdlet/RemoveAzureSqlDatabaseServerFirewallRule.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Firewall/Cmdlet/RemoveAzureSqlDatabaseServerFirewallRule.cs index fd0a7adf9e4d..e782bd9a6f0a 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Firewall/Cmdlet/RemoveAzureSqlDatabaseServerFirewallRule.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Firewall/Cmdlet/RemoveAzureSqlDatabaseServerFirewallRule.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Management.Sql; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Firewall.Cmdlet { @@ -76,7 +77,7 @@ internal SqlDatabaseServerOperationContext RemoveAzureSqlDatabaseServerFirewallR SqlManagementClient sqlManagementClient = GetCurrentSqlClient(); // Delete the specified firewall rule. - OperationResponse response = sqlManagementClient.FirewallRules.Delete(serverName, ruleName); + AzureOperationResponse response = sqlManagementClient.FirewallRules.Delete(serverName, ruleName); SqlDatabaseServerOperationContext operationContext = new SqlDatabaseServerOperationContext() { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/NewAzureSqlDatabaseServer.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/NewAzureSqlDatabaseServer.cs index 999c010346e6..24ef10dc7b59 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/NewAzureSqlDatabaseServer.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/NewAzureSqlDatabaseServer.cs @@ -14,11 +14,13 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; -using Microsoft.WindowsAzure.Common.Internals; +using Microsoft.Azure.Common.Internals; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; +using Hyak.Common; using System; using System.Management.Automation; +using Hyak.Common.TransientFaultHandling; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Server.Cmdlet { @@ -105,9 +107,7 @@ internal SqlDatabaseServerContext NewAzureSqlDatabaseServerProcess( SqlManagementClient sqlManagementClient = GetCurrentSqlClient(); // Set the retry policty to not retry attempts. - CloudExtensions.SetRetryPolicy( - sqlManagementClient, - new WindowsAzure.Common.TransientFaultHandling.RetryPolicy(new WindowsAzure.Common.TransientFaultHandling.DefaultHttpErrorDetectionStrategy(), 0)); + sqlManagementClient.SetRetryPolicy(new RetryPolicy(new DefaultHttpErrorDetectionStrategy(), 0)); // Issue the create server request ServerCreateResponse response = sqlManagementClient.Servers.Create( diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/RemoveAzureSqlDatabaseServer.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/RemoveAzureSqlDatabaseServer.cs index 5591ed4dad5d..d80703f449d2 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/RemoveAzureSqlDatabaseServer.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/RemoveAzureSqlDatabaseServer.cs @@ -18,6 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Management.Sql; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Server.Cmdlet { @@ -64,7 +65,7 @@ internal SqlDatabaseServerOperationContext RemoveAzureSqlDatabaseServerProcess(s SqlManagementClient sqlManagementClient = GetCurrentSqlClient(); // Issue the delete server request - OperationResponse response = sqlManagementClient.Servers.Delete(serverName); + AzureOperationResponse response = sqlManagementClient.Servers.Delete(serverName); SqlDatabaseServerOperationContext operationContext = new SqlDatabaseServerOperationContext() { OperationStatus = Services.Constants.OperationSuccess, diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/SetAzureSqlDatabaseServer.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/SetAzureSqlDatabaseServer.cs index 6b853630b4fc..24f77c3c627e 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/SetAzureSqlDatabaseServer.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Server/Cmdlet/SetAzureSqlDatabaseServer.cs @@ -19,6 +19,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; +using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Server.Cmdlet { @@ -79,7 +80,7 @@ internal SqlDatabaseServerOperationContext ResetAzureSqlDatabaseServerAdminPassw SqlManagementClient sqlManagementClient = GetCurrentSqlClient(); // Issue the change admin password request - OperationResponse response = sqlManagementClient.Servers.ChangeAdministratorPassword( + AzureOperationResponse response = sqlManagementClient.Servers.ChangeAdministratorPassword( serverName, new ServerChangeAdministratorPasswordParameters() { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/ManagementServiceExceptionInfo.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/ManagementServiceExceptionInfo.cs index 0c79f779a041..86fe38f6368a 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/ManagementServiceExceptionInfo.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/ManagementServiceExceptionInfo.cs @@ -21,6 +21,8 @@ using System.Xml; using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; +using Microsoft.Azure; +using System.Data.Services.Client; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common { @@ -202,7 +204,7 @@ public static ManagementServiceExceptionInfo Parse(string message) /// The response containing the xml serialized error information. /// The converted containing errors from the exception. /// true if parsing succeeded. - public static bool TryParse(System.Data.Services.Client.OperationResponse response, out ManagementServiceExceptionInfo info) + public static bool TryParse(OperationResponse response, out ManagementServiceExceptionInfo info) { if (response != null && response.Error != null) { @@ -218,7 +220,7 @@ public static bool TryParse(System.Data.Services.Client.OperationResponse respon /// /// The response containing the xml serialized error information. /// The converted containing errors from the exception. - public static ManagementServiceExceptionInfo Parse(System.Data.Services.Client.OperationResponse response) + public static ManagementServiceExceptionInfo Parse(OperationResponse response) { if (response == null) { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/SqlDatabaseExceptionHandler.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/SqlDatabaseExceptionHandler.cs index 8da72b859428..3f4d5f56b4ba 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/SqlDatabaseExceptionHandler.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Common/SqlDatabaseExceptionHandler.cs @@ -22,7 +22,8 @@ using System.ServiceModel; using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; -using Microsoft.WindowsAzure.Common; +using Microsoft.Azure.Common; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerContextInternal.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerContextInternal.cs index 625cbb614219..94c345a99679 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerContextInternal.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerContextInternal.cs @@ -5517,7 +5517,7 @@ public int PercentComplete partial void OnPercentCompleteChanging(int value); partial void OnPercentCompleteChanged(); /// - /// There are no comments for Property ErrorCode in the schema. + /// There are no comments for Property Error.Code in the schema. /// [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] public global::System.Nullable ErrorCode diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataService.csdl b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataService.csdl index 8428263265cf..1088e60d4c99 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataService.csdl +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataService.csdl @@ -325,7 +325,7 @@ - + diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs index 54201c04b680..84dee8e196e6 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs @@ -27,6 +27,7 @@ namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server using DatabaseCopyModel = Model.DatabaseCopy; using WamlDatabaseCopy = Management.Sql.Models.DatabaseCopy; using Microsoft.Azure.Common.Extensions; + using Microsoft.Azure; /// /// Implementation of the with Certificate authentication. @@ -319,7 +320,7 @@ public void RemoveDatabase(string databaseName) this.AddTracingHeaders(sqlManagementClient); // Retrieve the list of databases - OperationResponse response = sqlManagementClient.Databases.Delete( + AzureOperationResponse response = sqlManagementClient.Databases.Delete( this.serverName, databaseName); } diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/TSqlConnectionContext.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/TSqlConnectionContext.cs index 73181b8572db..8b99c07f4cc0 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/TSqlConnectionContext.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/TSqlConnectionContext.cs @@ -382,7 +382,7 @@ public Database CreateNewDatabase( } SqlCollationCheck(databaseCollation); - + commandText = string.Format( commandText, SqlEscape(databaseName), @@ -413,21 +413,21 @@ public Database CreateNewDatabase( /// The string to verify private void SqlCollationCheck(string databaseCollation) { - if(string.IsNullOrEmpty (databaseCollation)) + if (string.IsNullOrEmpty(databaseCollation)) { return; } - bool isValid = databaseCollation.All( (c) => + bool isValid = databaseCollation.All((c) => { - if(!char.IsLetterOrDigit(c) && c != '_') + if (!char.IsLetterOrDigit(c) && c != '_') { return false; } return true; }); - if(!isValid) + if (!isValid) { throw new ArgumentException("Invalid Collation", "Collation"); } @@ -555,8 +555,26 @@ public ServiceObjective[] GetServiceObjectives() { Context = this, Enabled = true, - Id = new Guid("dd6d99bb-f193-4ec1-86f2-43d3bccbc49c "), - IsDefault = true, + Id = new Guid("26E021DB-F1F9-4C98-84C6-92AF8EF433D7"), + IsDefault = false, + IsSystem = true, + Name = "System" + }, + new ServiceObjective() + { + Context = this, + Enabled = true, + Id = new Guid("620323BF-2879-4807-B30D-C2E6D7B3B3AA"), + IsDefault = false, + IsSystem = true, + Name = "System2" + }, + new ServiceObjective() + { + Context = this, + Enabled = true, + Id = new Guid("dd6d99bb-f193-4ec1-86f2-43d3bccbc49c"), + IsDefault = false, IsSystem = false, Name = "Basic" }, @@ -564,22 +582,22 @@ public ServiceObjective[] GetServiceObjectives() { Context = this, Enabled = true, - Id = new Guid("f1173c43-91bd-4aaa-973c-54e79e15235b "), - IsDefault = false, + Id = new Guid("f1173c43-91bd-4aaa-973c-54e79e15235b"), + IsDefault = true, IsSystem = false, Name = "S0" }, - new ServiceObjective() - { + new ServiceObjective() + { Context = this, Enabled = true, - Id = new Guid("1b1ebd4d-d903-4baa-97f9-4ea675f5e928 "), + Id = new Guid("1b1ebd4d-d903-4baa-97f9-4ea675f5e928"), IsDefault = false, IsSystem = false, Name = "S1" }, - new ServiceObjective() - { + new ServiceObjective() + { Context = this, Enabled = true, Id = new Guid("455330e1-00cd-488b-b5fa-177c226f28b7"), @@ -587,26 +605,35 @@ public ServiceObjective[] GetServiceObjectives() IsSystem = false, Name = "S2" }, - new ServiceObjective() - { + new ServiceObjective() + { + Context = this, + Enabled = true, + Id = new Guid("789681B8-CA10-4EB0-BDF2-E0B050601B40"), + IsDefault = false, + IsSystem = false, + Name = "S3" + }, + new ServiceObjective() + { Context = this, Enabled = true, - Id = new Guid("7203483a-c4fb-4304-9e9f-17c71c904f5d "), + Id = new Guid("7203483a-c4fb-4304-9e9f-17c71c904f5d"), IsDefault = false, IsSystem = false, Name = "P1" }, - new ServiceObjective() - { + new ServiceObjective() + { Context = this, Enabled = true, - Id = new Guid("a7d1b92d-c987-4375-b54d-2b1d0e0f5bb0 "), + Id = new Guid("a7d1b92d-c987-4375-b54d-2b1d0e0f5bb0"), IsDefault = false, IsSystem = false, Name = "P2" }, - new ServiceObjective() - { + new ServiceObjective() + { Context = this, Enabled = true, Id = new Guid("a7c4c615-cfb1-464b-b252-925be0a19446"), @@ -756,8 +783,8 @@ private void GetDatabaseProperties(Database db) string commandText = "SELECT " + "DatabasePropertyEx(@name, 'Edition') as edition, " + + "DatabasePropertyEx(@name, 'ServiceObjective') as serviceObjective, " + "DatabasePropertyEx(@name, 'MaxSizeInBytes') as maxSizeBytes"; - //TODO: need to get current SLO here. builder["Database"] = db.Name; using (var connection = CreateConnection()) @@ -776,8 +803,9 @@ private void GetDatabaseProperties(Database db) { while (reader.Read()) { - db.MaxSizeBytes = (long)reader["maxSizeBytes"]; - db.Edition = (string)reader["edition"]; + db.MaxSizeBytes = ConvertFromDbValue(reader["maxSizeBytes"]); + db.Edition = ConvertFromDbValue(reader["edition"]); + db.ServiceObjectiveName = ConvertFromDbValue(reader["serviceObjective"]); } } } @@ -787,6 +815,11 @@ private void GetDatabaseProperties(Database db) { db.MaxSizeGB = (int)(db.MaxSizeBytes / (1024 * 1024 * 1024)); } + if (!string.IsNullOrEmpty(db.ServiceObjectiveName)) + { + db.ServiceObjective = GetServiceObjective(db.ServiceObjectiveName); + db.ServiceObjectiveId = db.ServiceObjective.Id; + } builder["Database"] = null; } diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config b/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config index b55429b14cb9..5c82cbc0ff5c 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config @@ -1,16 +1,21 @@  + + + + + + - - - + + diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj b/src/ServiceManagement/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj index d8d4d86fd765..e0d8286547d1 100644 --- a/src/ServiceManagement/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj @@ -48,6 +48,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -57,6 +73,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -72,6 +95,9 @@ ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + False ..\..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll @@ -170,17 +196,17 @@ + + + + - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageQueueManagement.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageQueueManagement.cs index e026f1bad807..fe223836f5f5 100644 --- a/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageQueueManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageQueueManagement.cs @@ -14,6 +14,7 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; using Microsoft.WindowsAzure.Storage; @@ -158,6 +159,16 @@ public QueuePermissions GetPermissions(CloudQueue queue, QueueRequestOptions opt throw new NotImplementedException(); } + public Task GetPermissionsAsync(CloudQueue queue, QueueRequestOptions requestOptions, OperationContext operationContext) + { + throw new NotImplementedException(); + } + + public void SetPermissions(CloudQueue queue, QueuePermissions queuePermissions, QueueRequestOptions requestOptions, OperationContext operationContext) + { + throw new NotImplementedException(); + } + public AzureStorageContext StorageContext { get { throw new NotImplementedException(); } diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageTableManagement.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageTableManagement.cs index 5a990cdcb7aa..a8975d6b3f97 100644 --- a/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageTableManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Service/MockStorageTableManagement.cs @@ -14,6 +14,7 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; using Microsoft.WindowsAzure.Storage; @@ -31,6 +32,11 @@ public class MockStorageTableManagement : IStorageTableManagement /// public List tableList = new List(); + /// + /// Exists permissions + /// + public TablePermissions tablePermissions = new TablePermissions(); + /// /// Table end point /// @@ -166,7 +172,46 @@ public bool DoesTableExist(CloudTable table, TableRequestOptions requestOptions, /// Table permission public TablePermissions GetTablePermissions(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) { - throw new NotImplementedException(); + return this.tablePermissions; + } + + /// + /// Set table permission + /// + /// Cloud table object + /// table permissions + /// Table request options + /// Operation context + /// + public void SetTablePermissions(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions, OperationContext operationContext) + { + this.tablePermissions = tablePermissions; + } + + /// + /// Return a task that asynchronously set table permissions + /// + /// target table + /// permissions to set + /// request options + /// context + /// + public Task SetTablePermissionsAsync(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions, OperationContext operationContext) + { + return Task.Factory.StartNew(() => this.SetTablePermissions(table, tablePermissions, requestOptions, operationContext)); + } + + /// + /// Return a task that asynchronously fetch table permissions + /// + /// target table + /// request options + /// context + /// + public Task GetTablePermissionsAsync(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) + { + return Task.Factory.StartNew(() => this.GetTablePermissions(table, + requestOptions, operationContext)); } public AzureStorageContext StorageContext diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/GetAzureStorageTableStoredAccessPolicyTest.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/GetAzureStorageTableStoredAccessPolicyTest.cs new file mode 100644 index 000000000000..20c0b29a95b0 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/GetAzureStorageTableStoredAccessPolicyTest.cs @@ -0,0 +1,97 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright 2012 Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Test.Table +{ + using Microsoft.VisualStudio.TestTools.UnitTesting; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet; + using Microsoft.WindowsAzure.Storage.Table; + using System; + using System.Collections.Generic; + + [TestClass] + public class GetAzureStorageTableStoredAccessPolicyTest : StorageTableStorageTestBase + { + public GetAzureStorageTableStoredAccessPolicyCommand command = null; + + [TestInitialize] + public void InitCommand() + { + command = new GetAzureStorageTableStoredAccessPolicyCommand(tableMock) + { + CommandRuntime = MockCmdRunTime + }; + CurrentTableCmd = command; + } + + [TestCleanup] + public void CleanCommand() + { + command = null; + } + + [TestMethod] + public void GetStoredAccessPolicyNotExistsTest() + { + AddTestStoredAccessPolicy(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + MockCmdRunTime.ResetPipelines(); + command.Table = tableName; + command.Policy = policyName; + RunAsyncCommand(() => command.ExecuteCmdlet()); + + Assert.AreEqual(0, MockCmdRunTime.OutputPipeline.Count); + + MockCmdRunTime.ResetPipelines(); + clearTest(); + } + + [TestMethod] + public void GetStoredAccessPolicySuccessTest() + { + AddTestStoredAccessPolicy(); + string policyName = TestPolicy1; + string tableName = "sampleTable"; + + MockCmdRunTime.ResetPipelines(); + command.Table = tableName; + command.Policy = policyName; + RunAsyncCommand(() => command.ExecuteCmdlet()); + + Assert.AreEqual(1, MockCmdRunTime.OutputPipeline.Count); + + MockCmdRunTime.ResetPipelines(); + clearTest(); + } + + [TestMethod] + public void GetAllStoredAccessPolicySuccessTest() + { + AddTestStoredAccessPolicy(); + string tableName = "sampleTable"; + + MockCmdRunTime.ResetPipelines(); + command.Table = tableName; + RunAsyncCommand(() => command.ExecuteCmdlet()); + + Assert.AreEqual(2, MockCmdRunTime.OutputPipeline.Count); + + MockCmdRunTime.ResetPipelines(); + clearTest(); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/NewAzureStorageTableStoredAccessPolicyTest.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/NewAzureStorageTableStoredAccessPolicyTest.cs new file mode 100644 index 000000000000..3a696c53db90 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/NewAzureStorageTableStoredAccessPolicyTest.cs @@ -0,0 +1,114 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright 2012 Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Test.Table +{ + using Microsoft.VisualStudio.TestTools.UnitTesting; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet; + using Microsoft.WindowsAzure.Storage.Table; + using System; + using System.Collections.Generic; + using System.Globalization; + + [TestClass] + public class NewAzureStorageTableStoredAccessPolicyTest : StorageTableStorageTestBase + { + public NewAzureStorageTableStoredAccessPolicyCommand command = null; + + [TestInitialize] + public void InitCommand() + { + command = new NewAzureStorageTableStoredAccessPolicyCommand(tableMock) + { + CommandRuntime = MockCmdRunTime + }; + } + + [TestCleanup] + public void CleanCommand() + { + command = null; + } + + [TestMethod] + public void CreateAzureTableStoredAccessPolicyWithInvalidNameTest() + { + clearTest(); + //policy name lenght longer than 64 + string policyName = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + string tableName = "sampleTable"; + AssertThrows(() => command.CreateAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, null, null, null), + String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName)); + clearTest(); + } + + + [TestMethod] + public void CreateAzureTableStoredAccessPolicySuccessTest() + { + clearTest(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + string permission = "rd"; + DateTime startTime = DateTime.Today; + DateTime expiryTime = DateTime.Today.AddDays(1); + command.CreateAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, startTime, expiryTime, permission); + + SharedAccessTablePermissions expectedPermissions = SharedAccessTablePermissions.None; + expectedPermissions |= SharedAccessTablePermissions.Query; + expectedPermissions |= SharedAccessTablePermissions.Delete; + SharedAccessTablePolicy resultPolicy = tableMock.tablePermissions.SharedAccessPolicies[policyName]; + Assert.IsNotNull(resultPolicy); + Assert.AreEqual(expectedPermissions, resultPolicy.Permissions); + Assert.AreEqual(startTime.ToUniversalTime(), resultPolicy.SharedAccessStartTime); + Assert.AreEqual(expiryTime.ToUniversalTime(), resultPolicy.SharedAccessExpiryTime); + clearTest(); + } + + + [TestMethod] + public void CreateStoredAccessPolicyAlreadyExistsTest() + { + clearTest(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + command.Table = tableName; + command.Policy = policyName; + command.CreateAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, null, null, null); + AssertThrows(() => command.CreateAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, null, null, null), + String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName)); + clearTest(); + } + + [TestMethod] + public void CreateStoredAccessPolicyInvalidExpirtTime() + { + clearTest(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + DateTime? startTime = DateTime.Today; + DateTime? expiryTime = DateTime.Today.AddDays(-1); + DateTimeOffset? expectedSharedAccessStartTime = startTime.Value.ToUniversalTime(); + DateTimeOffset? expectedSharedAccessExpiryTime = expiryTime.Value.ToUniversalTime(); + AssertThrows(() => command.CreateAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, startTime, expiryTime, null), + String.Format(CultureInfo.CurrentCulture, Resources.ExpiryTimeGreatThanStartTime, expectedSharedAccessExpiryTime, expectedSharedAccessStartTime)); + clearTest(); + } + + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/RemoveAzureStorageTableStoredAccessPolicyTest.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/RemoveAzureStorageTableStoredAccessPolicyTest.cs new file mode 100644 index 000000000000..b711188b9f6d --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/RemoveAzureStorageTableStoredAccessPolicyTest.cs @@ -0,0 +1,71 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright 2012 Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Test.Table +{ + using Microsoft.VisualStudio.TestTools.UnitTesting; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet; + using Microsoft.WindowsAzure.Storage.Table; + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + + [TestClass] + public class RemoveAzureStorageTableStoredAccessPolicyTest : StorageTableStorageTestBase + { + public RemoveAzureStorageTableStoredAccessPolicyCommand command = null; + + [TestInitialize] + public void InitCommand() + { + command = new RemoveAzureStorageTableStoredAccessPolicyCommand(tableMock) + { + CommandRuntime = MockCmdRunTime + }; + } + + [TestCleanup] + public void CleanCommand() + { + command = null; + } + + [TestMethod] + public void RemoveStoredAccessPolicyNotExistsTest() + { + AddTestStoredAccessPolicy(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + AssertThrows(() => command.RemoveAzureTableStoredAccessPolicy(tableMock, tableName, policyName), + String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + clearTest(); + } + + [TestMethod] + public void RemoveStoredAccessPolicySuccessTest() + { + AddTestStoredAccessPolicy(); + string policyName = TestPolicy1; + string tableName = "sampleTable"; + + command.RemoveAzureTableStoredAccessPolicy(tableMock, tableName, policyName); + Assert.IsTrue(!tableMock.tablePermissions.SharedAccessPolicies.Keys.Contains(policyName)); + + clearTest(); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/SetAzureStorageTableStoredAccessPolicyTest.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/SetAzureStorageTableStoredAccessPolicyTest.cs new file mode 100644 index 000000000000..d6204ff45003 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/SetAzureStorageTableStoredAccessPolicyTest.cs @@ -0,0 +1,82 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright 2012 Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Test.Table +{ + using Microsoft.VisualStudio.TestTools.UnitTesting; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet; + using Microsoft.WindowsAzure.Storage.Table; + using System; + using System.Collections.Generic; + using System.Globalization; + + [TestClass] + public class SetAzureStorageTableStoredAccessPolicyTest : StorageTableStorageTestBase + { + public SetAzureStorageTableStoredAccessPolicyCommand command = null; + + [TestInitialize] + public void InitCommand() + { + command = new SetAzureStorageTableStoredAccessPolicyCommand(tableMock) + { + CommandRuntime = MockCmdRunTime + }; + } + + [TestCleanup] + public void CleanCommand() + { + command = null; + } + + [TestMethod] + public void SetStoredAccessPolicyNotExistsTest() + { + clearTest(); + string policyName = "Policy" + Guid.NewGuid(); + string tableName = "sampleTable"; + + command.Table = tableName; + command.Policy = policyName; + AssertThrows(() => command.SetAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, null, null, null, false, false), + string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + + clearTest(); + } + + + [TestMethod] + public void SetStoredAccessPolicySuccessTest() + { + AddTestStoredAccessPolicy(); + string policyName = TestPolicy1; + string tableName = "sampleTable"; + + string permission = "u"; + DateTime startTime = DateTime.Today; + DateTime expiryTime = DateTime.Today.AddDays(2); + command.SetAzureTableStoredAccessPolicy(command.Channel, tableName, policyName, startTime, expiryTime, permission, false, false); + + SharedAccessTablePermissions expectedPermissions = SharedAccessTablePermissions.None; + expectedPermissions |= SharedAccessTablePermissions.Update; + SharedAccessTablePolicy resultPolicy = tableMock.tablePermissions.SharedAccessPolicies[policyName]; + Assert.IsNotNull(resultPolicy); + Assert.AreEqual(expectedPermissions, resultPolicy.Permissions); + Assert.AreEqual(startTime.ToUniversalTime(), resultPolicy.SharedAccessStartTime); + Assert.AreEqual(expiryTime.ToUniversalTime(), resultPolicy.SharedAccessExpiryTime); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/StorageTableStorageTestBase.cs b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/StorageTableStorageTestBase.cs index beafc5780db9..0503079cf7a8 100644 --- a/src/ServiceManagement/Storage/Commands.Storage.Test/Table/StorageTableStorageTestBase.cs +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/Table/StorageTableStorageTestBase.cs @@ -11,17 +11,23 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; +using Microsoft.WindowsAzure.Commands.Storage.Table; using Microsoft.WindowsAzure.Commands.Storage.Test.Service; +using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Storage.Table; +using System; namespace Microsoft.WindowsAzure.Commands.Storage.Test.Table { public class StorageTableStorageTestBase : StorageTestBase { public MockStorageTableManagement tableMock = null; + public const string TestPolicy1 = "TestPolicy1"; + public const string TestPolicy2 = "TestPolicy2"; + + protected StorageCloudTableCmdletBase CurrentTableCmd { get; set; } [TestInitialize] public void InitMock() @@ -45,5 +51,43 @@ public void AddTestTables() tableMock.tableList.Add(new CloudTable(new Uri(testUri))); tableMock.tableList.Add(new CloudTable(new Uri(textUri))); } + + public void AddTestStoredAccessPolicy() + { + tableMock.tablePermissions.SharedAccessPolicies.Clear(); + + SharedAccessTablePolicy testPolicy1 = new SharedAccessTablePolicy(); + testPolicy1.Permissions = SharedAccessTablePermissions.None; + testPolicy1.Permissions |= SharedAccessTablePermissions.Query; + testPolicy1.SharedAccessStartTime = DateTime.Today.ToUniversalTime(); + testPolicy1.SharedAccessExpiryTime = DateTime.Today.AddDays(1).ToUniversalTime(); + tableMock.tablePermissions.SharedAccessPolicies.Add(TestPolicy1, testPolicy1); + + SharedAccessTablePolicy testPolicy2 = new SharedAccessTablePolicy(); + testPolicy1.Permissions = SharedAccessTablePermissions.None; + testPolicy1.Permissions |= SharedAccessTablePermissions.Query; + testPolicy1.SharedAccessStartTime = DateTime.Today.ToUniversalTime(); + testPolicy1.SharedAccessExpiryTime = DateTime.Today.AddDays(1).ToUniversalTime(); + tableMock.tablePermissions.SharedAccessPolicies.Add(TestPolicy2, testPolicy2); + } + + public void clearTest() + { + tableMock.tableList.Clear(); + tableMock.tablePermissions.SharedAccessPolicies.Clear(); + } + + /// + /// Run async command + /// + /// Storage command + /// Async action + protected void RunAsyncCommand(Action asyncAction) + { + MockCmdRunTime.ResetPipelines(); + CurrentTableCmd.SetUpMultiThreadEnvironment(); + asyncAction(); + CurrentTableCmd.MultiThreadEndProcessing(); + } } } \ No newline at end of file diff --git a/src/ServiceManagement/Storage/Commands.Storage.Test/packages.config b/src/ServiceManagement/Storage/Commands.Storage.Test/packages.config index 9909d4d14279..bdea9420592b 100644 --- a/src/ServiceManagement/Storage/Commands.Storage.Test/packages.config +++ b/src/ServiceManagement/Storage/Commands.Storage.Test/packages.config @@ -1,13 +1,20 @@  + + + + + + + diff --git a/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs new file mode 100644 index 000000000000..2e2f223ab9d2 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/GetAzureStorageContainerStoredAccessPolicy.cs @@ -0,0 +1,107 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using Common; + using Microsoft.WindowsAzure.Storage.Blob; + using Model.Contract; + using Model.ResourceModel; + + /// + /// create a new azure container + /// + [Cmdlet(VerbsCommon.Get, StorageNouns.ContainerStoredAccessPolicy), OutputType(typeof(SharedAccessBlobPolicy))] + public class GetAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlobCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Container name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Container { get; set; } + + [Parameter(Position = 1, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + public string Policy {get; set; } + + /// + /// Initializes a new instance of the GetAzureStorageContainerStoredAccessPolicyCommand class. + /// + public GetAzureStorageContainerStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzureStorageContainerStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public GetAzureStorageContainerStoredAccessPolicyCommand(IStorageBlobManagement channel) + : base(channel) + { + } + + internal async Task GetAzureContainerStoredAccessPolicyAsync(long taskId, IStorageBlobManagement localChannel, string containerName, string policyName) + { + SharedAccessBlobPolicies shareAccessPolicies = await GetPoliciesAsync(localChannel, containerName, policyName); + + if (!String.IsNullOrEmpty(policyName)) + { + if (shareAccessPolicies.Keys.Contains(policyName)) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, policyName)); + } + else + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + } + else + { + foreach (string key in shareAccessPolicies.Keys) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, key)); + } + } + } + + internal async Task GetPoliciesAsync(IStorageBlobManagement localChannel, string containerName, string policyName) + { + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + BlobContainerPermissions blobContainerPermissions = await localChannel.GetContainerPermissionsAsync(container, null, null, null, CmdletCancellationToken); + return blobContainerPermissions.SharedAccessPolicies; + } + + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Container)) return; + Func taskGenerator = (taskId) => GetAzureContainerStoredAccessPolicyAsync(taskId, Channel, Container, Policy); + RunTask(taskGenerator); + } + } +} + diff --git a/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs new file mode 100644 index 000000000000..2766e505fa0f --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/NewAzureStorageContainerStoredAccessPolicy.cs @@ -0,0 +1,112 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using Common; + using Microsoft.WindowsAzure.Storage.Blob; + using Model.Contract; + using Model.ResourceModel; + + /// + /// create a new azure container + /// + [Cmdlet(VerbsCommon.New, StorageNouns.ContainerStoredAccessPolicy), OutputType(typeof(String))] + public class NewAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlobCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Container name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Container { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier. Need to be unique in the Container")] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Permissions for a container. Permissions can be any not-empty subset of \"audq\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expiry Time")] + public DateTime? ExpiryTime { get; set; } + + /// + /// Initializes a new instance of the NewAzureStorageContainerStoredAccessPolicyCommand class. + /// + public NewAzureStorageContainerStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the NewAzureStorageContainerStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public NewAzureStorageContainerStoredAccessPolicyCommand(IStorageBlobManagement channel): + base(channel) + { + EnableMultiThread = false; + } + + internal string CreateAzureContainerStoredAccessPolicy(IStorageBlobManagement localChannel, string containerName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission) + { + if (!NameUtil.IsValidStoredAccessPolicyName(policyName)) + { + throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName)); + } + + //Get existing permissions + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + BlobContainerPermissions blobContainerPermissions = localChannel.GetContainerPermissions(container); + + //Add new policy + if (blobContainerPermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceAlreadyExistException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName)); + } + + SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission); + blobContainerPermissions.SharedAccessPolicies.Add(policyName, policy); + + //Set permissions back to container + localChannel.SetContainerPermissions(container, blobContainerPermissions); + return policyName; + } + + + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Container) || String.IsNullOrEmpty(Policy)) return; + string resultPolicy = CreateAzureContainerStoredAccessPolicy(Channel, Container, Policy, StartTime, ExpiryTime, Permission); + WriteObject(resultPolicy); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs new file mode 100644 index 000000000000..99c4d0338499 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/RemoveAzureStorageContainerStoredAccessPolicy.cs @@ -0,0 +1,128 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using Common; + using Microsoft.WindowsAzure.Storage.Blob; + using Model.Contract; + using Model.ResourceModel; + + /// + /// create a new azure container + /// + [Cmdlet(VerbsCommon.Remove, StorageNouns.ContainerStoredAccessPolicy, SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High), OutputType(typeof(Boolean))] + public class RemoveAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlobCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Container name", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Container { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Force to remove the policy without confirm")] + public SwitchParameter Force { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Return whether the specified policy is successfully removed")] + public SwitchParameter PassThru { get; set; } + + /// + /// Initializes a new instance of the RemoveAzureStorageContainerStoredAccessPolicyCommand class. + /// + public RemoveAzureStorageContainerStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the RemoveAzureStorageContainerStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public RemoveAzureStorageContainerStoredAccessPolicyCommand(IStorageBlobManagement channel) + :base(channel) + { + EnableMultiThread = false; + } + + internal virtual bool ConfirmRemove(string message) + { + return ShouldProcess(message); + } + + internal bool RemoveAzureContainerStoredAccessPolicy(IStorageBlobManagement localChannel, string containerName, string policyName) + { + bool success = false; + string result = string.Empty; + + //Get existing permissions + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + BlobContainerPermissions blobContainerPermissions = localChannel.GetContainerPermissions(container); + + //remove the specified policy + if (!blobContainerPermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + if (this.Force || ConfirmRemove(policyName)) + { + blobContainerPermissions.SharedAccessPolicies.Remove(policyName); + localChannel.SetContainerPermissions(container, blobContainerPermissions); + success = true; + } + + return success; + } + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Container) || String.IsNullOrEmpty(Policy)) return; + bool success = RemoveAzureContainerStoredAccessPolicy(Channel, Container, Policy); + string result = string.Empty; + + if (success) + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicySuccessfully, Policy); + } + else + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicyCancelled, Policy); + } + + WriteVerbose(result); + + if (PassThru) + { + WriteObject(success); + } + } + } +} + diff --git a/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs new file mode 100644 index 000000000000..fea286e4ca52 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Blob/Cmdlet/SetAzureStorageContainerStoredAccessPolicy.cs @@ -0,0 +1,122 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using Common; + using Microsoft.WindowsAzure.Storage.Blob; + using Model.Contract; + using Model.ResourceModel; + + /// + /// create a new azure container + /// + [Cmdlet(VerbsCommon.Set, StorageNouns.ContainerStoredAccessPolicy), OutputType(typeof(String))] + public class SetAzureStorageContainerStoredAccessPolicyCommand : StorageCloudBlobCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Container name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Container { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier")] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Permissions for a container. Permissions can be any not-empty subset of \"audq\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expiry Time")] + public DateTime? ExpiryTime { get; set; } + + [Parameter(HelpMessage = "Set StartTime as null for the policy")] + public SwitchParameter NoStartTime { get; set; } + + [Parameter(HelpMessage = "Set ExpiryTime as null for the policy")] + public SwitchParameter NoExpiryTime { get; set; } + + /// + /// Initializes a new instance of the SetAzureStorageContainerStoredAccessPolicyCommand class. + /// + public SetAzureStorageContainerStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the SetAzureStorageContainerStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public SetAzureStorageContainerStoredAccessPolicyCommand(IStorageBlobManagement channel) + :base(channel) + { + EnableMultiThread = false; + } + + internal string SetAzureContainerStoredAccessPolicy(IStorageBlobManagement localChannel, string containerName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission, bool noStartTime, bool noExpiryTime) + { + //Get existing permissions + CloudBlobContainer container = localChannel.GetContainerReference(containerName); + BlobContainerPermissions blobContainerPermissions = localChannel.GetContainerPermissions(container); + + //Set the policy with new value + if (!blobContainerPermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + SharedAccessBlobPolicy policy = blobContainerPermissions.SharedAccessPolicies[policyName]; + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission, noStartTime, noExpiryTime); + blobContainerPermissions.SharedAccessPolicies[policyName] = policy; + + //Set permission back to container + localChannel.SetContainerPermissions(container, blobContainerPermissions); + WriteObject(AccessPolicyHelper.ConstructPolicyOutputPSObject(blobContainerPermissions.SharedAccessPolicies, policyName)); + return policyName; + } + + + /// + /// execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Container) || String.IsNullOrEmpty(Policy)) return; + if (NoStartTime && StartTime != null) + { + throw new ArgumentException(Resources.StartTimeParameterConflict); + } + + if (NoExpiryTime && ExpiryTime != null) + { + throw new ArgumentException(Resources.ExpiryTimeParameterConflict); + } + + SetAzureContainerStoredAccessPolicy(Channel, Container, Policy, StartTime, ExpiryTime, Permission, NoStartTime, NoExpiryTime); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Commands.Storage.csproj b/src/ServiceManagement/Storage/Commands.Storage/Commands.Storage.csproj index c756c2077035..ea8af24d5ceb 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Commands.Storage.csproj +++ b/src/ServiceManagement/Storage/Commands.Storage/Commands.Storage.csproj @@ -41,6 +41,26 @@ false + + False + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -50,6 +70,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -62,17 +89,13 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll + False ..\..\..\packages\WindowsAzure.Storage.4.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll @@ -117,14 +140,19 @@ + + + + + @@ -187,9 +215,13 @@ + + + + True @@ -198,15 +230,15 @@ + + + + - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Storage/Commands.Storage/Common/AccessPolicyHelper.cs b/src/ServiceManagement/Storage/Commands.Storage/Common/AccessPolicyHelper.cs new file mode 100644 index 000000000000..d115657d405f --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Common/AccessPolicyHelper.cs @@ -0,0 +1,267 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Common +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Globalization; + using System.Management.Automation; + using System.Reflection; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.WindowsAzure.Commands.Utilities.Common; + using Microsoft.WindowsAzure.Storage; + using Microsoft.WindowsAzure.Storage.Blob; + using Microsoft.WindowsAzure.Storage.Queue; + using Microsoft.WindowsAzure.Storage.Queue.Protocol; + using Microsoft.WindowsAzure.Storage.Table; + + internal class AccessPolicyHelper + { + /// + /// Set the shared access policy + /// + /// SharedAccessTablePolicy, SharedAccessBlobPolicy or SharedAccessQueuePolicy + /// the policy object + /// start time of the policy + /// end time of the policy + /// the permission of the policy + internal static void SetupAccessPolicy(T policy, DateTime? startTime, DateTime? expiryTime, string permission, bool noStartTime = false, bool noExpiryTime = false) + { + if (!(typeof(T) == typeof(SharedAccessTablePolicy) || + typeof(T) == typeof(SharedAccessBlobPolicy) || + (typeof(T) == typeof(SharedAccessQueuePolicy)))) + { + throw new ArgumentException(Resources.InvalidAccessPolicyType); + } + + if (noStartTime && startTime != null) + { + throw new ArgumentException(Resources.StartTimeParameterConflict); + } + + if (noExpiryTime && expiryTime != null) + { + throw new ArgumentException(Resources.ExpiryTimeParameterConflict); + } + + DateTimeOffset? accessStartTime; + DateTimeOffset? accessExpiryTime; + SetupAccessPolicyLifeTime(startTime, expiryTime, + out accessStartTime, out accessExpiryTime); + + if (startTime != null || noStartTime) + { + policy.GetType().GetProperty("SharedAccessStartTime").SetValue(policy, accessStartTime); + } + + if (expiryTime != null || noExpiryTime) + { + policy.GetType().GetProperty("SharedAccessExpiryTime").SetValue(policy, accessExpiryTime); + } + + SetupAccessPolicyPermission(policy, permission); + } + + /// + /// Set up the shared access policy lift time + /// + /// start time of the shared access policy + /// end time of the shared access policy + /// the converted value of start time + /// the converted value of end time + internal static void SetupAccessPolicyLifeTime(DateTime? startTime, DateTime? expiryTime, + out DateTimeOffset? SharedAccessStartTime, out DateTimeOffset? SharedAccessExpiryTime) + { + SharedAccessStartTime = null; + SharedAccessExpiryTime = null; + + if (startTime != null) + { + SharedAccessStartTime = startTime.Value.ToUniversalTime(); + } + + if (expiryTime != null) + { + SharedAccessExpiryTime = expiryTime.Value.ToUniversalTime(); + } + + if (SharedAccessStartTime != null && SharedAccessExpiryTime.HasValue + && SharedAccessExpiryTime <= SharedAccessStartTime) + { + throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.ExpiryTimeGreatThanStartTime, + SharedAccessExpiryTime.ToString(), SharedAccessStartTime.ToString())); + } + } + + internal static void SetupAccessPolicyPermission(T policy, string permission) + { + if (typeof(T) == typeof(SharedAccessTablePolicy)) + { + SetupAccessPolicyPermission((SharedAccessTablePolicy)(Object)policy, permission); + } + else if (typeof(T) == typeof(SharedAccessBlobPolicy)) + { + SetupAccessPolicyPermission((SharedAccessBlobPolicy)(Object)policy, permission); + } + else if ((typeof(T) == typeof(SharedAccessQueuePolicy))) + { + SetupAccessPolicyPermission((SharedAccessQueuePolicy)(Object)policy, permission); + } + else + { + throw new ArgumentException(Resources.InvalidAccessPolicyType); + } + } + + /// + /// Set up shared access policy permission for SharedAccessTablePolicy + /// + /// SharedAccessTablePolicy object + /// Permission + internal static void SetupAccessPolicyPermission(SharedAccessTablePolicy policy, string permission) + { + //skip set the permission if passed-in value is null + if (permission == null) return; + + policy.Permissions = SharedAccessTablePermissions.None; + + //set permission as none if passed-in value is empty + if (string.IsNullOrEmpty(permission)) return; + + permission = permission.ToLower(); + foreach (char op in permission) + { + switch (op) + { + case StorageNouns.Permission.Add: + policy.Permissions |= SharedAccessTablePermissions.Add; + break; + case StorageNouns.Permission.Update: + policy.Permissions |= SharedAccessTablePermissions.Update; + break; + case StorageNouns.Permission.Delete: + policy.Permissions |= SharedAccessTablePermissions.Delete; + break; + case StorageNouns.Permission.Read: + case StorageNouns.Permission.Query: + policy.Permissions |= SharedAccessTablePermissions.Query; + break; + default: + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPermission, op)); + } + } + } + + + /// + /// Set up shared access policy permission for SharedAccessBlobPolicy + /// + /// SharedAccessBlobPolicy object + /// Permission + internal static void SetupAccessPolicyPermission(SharedAccessBlobPolicy policy, string permission) + { + //skip set the permission if passed-in value is null + if (permission == null) return; + + policy.Permissions = SharedAccessBlobPermissions.None; + + //set permission as none if passed-in value is empty + if (string.IsNullOrEmpty(permission)) return; + + permission = permission.ToLower(); + foreach (char op in permission) + { + switch (op) + { + case StorageNouns.Permission.Read: + policy.Permissions |= SharedAccessBlobPermissions.Read; + break; + case StorageNouns.Permission.Write: + policy.Permissions |= SharedAccessBlobPermissions.Write; + break; + case StorageNouns.Permission.Delete: + policy.Permissions |= SharedAccessBlobPermissions.Delete; + break; + case StorageNouns.Permission.List: + policy.Permissions |= SharedAccessBlobPermissions.List; + break; + default: + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPermission, op)); + } + } + } + + /// + /// Set up shared access policy permission for SharedAccessQueuePolicy + /// + /// SharedAccessQueuePolicy object + /// Permisson + internal static void SetupAccessPolicyPermission(SharedAccessQueuePolicy policy, string permission) + { + //skip set the permission if passed-in value is null + if (permission == null) return; + + policy.Permissions = SharedAccessQueuePermissions.None; + + //set permission as none if passed-in value is empty + if (string.IsNullOrEmpty(permission)) return; + + permission = permission.ToLower(); + foreach (char op in permission) + { + switch (op) + { + case StorageNouns.Permission.Read: + policy.Permissions |= SharedAccessQueuePermissions.Read; + break; + case StorageNouns.Permission.Add: + policy.Permissions |= SharedAccessQueuePermissions.Add; + break; + case StorageNouns.Permission.Update: + policy.Permissions |= SharedAccessQueuePermissions.Update; + break; + case StorageNouns.Permission.Process: + policy.Permissions |= SharedAccessQueuePermissions.ProcessMessages; + break; + default: + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPermission, op)); + } + } + } + + internal static PSObject ConstructPolicyOutputPSObject(IDictionary sharedAccessPolicies, string policyName) + { + if (!(typeof(T) == typeof(SharedAccessTablePolicy) || + typeof(T) == typeof(SharedAccessBlobPolicy) || + (typeof(T) == typeof(SharedAccessQueuePolicy)))) + { + throw new ArgumentException(Resources.InvalidAccessPolicyType); + } + + return PowerShellUtilities.ConstructPSObject( + typeof(PSObject).FullName, + "Policy", + policyName, + "Permissions", + (sharedAccessPolicies[policyName]).GetType().GetProperty("Permissions").GetValue(sharedAccessPolicies[policyName]), + "StartTime", + (sharedAccessPolicies[policyName]).GetType().GetProperty("SharedAccessStartTime").GetValue(sharedAccessPolicies[policyName]), + "ExpiryTime", + (sharedAccessPolicies[policyName]).GetType().GetProperty("SharedAccessExpiryTime").GetValue(sharedAccessPolicies[policyName])); + } + + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Common/NameUtil.cs b/src/ServiceManagement/Storage/Commands.Storage/Common/NameUtil.cs index c962a8010a72..1c0840c5a664 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Common/NameUtil.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Common/NameUtil.cs @@ -31,6 +31,11 @@ internal class NameUtil ///
public const int WindowsMaxFileNameLength = 256; + /// + /// Max length for Stored Access Policy name + /// + public const int MaxStoredAccessPolicyNameLength = 64; + /// /// Is valid container name /// @@ -208,6 +213,16 @@ public static bool IsValidFileName(string fileName) } } + public static bool IsValidStoredAccessPolicyName(string policyName) + { + if (string.IsNullOrEmpty(policyName) || policyName.Length > MaxStoredAccessPolicyNameLength) + { + return false; + } + + return true; + } + public static string ResolveBlobName(string blobName) { return blobName.Replace('\\', '/'); diff --git a/src/ServiceManagement/Storage/Commands.Storage/Common/StorageNouns.cs b/src/ServiceManagement/Storage/Commands.Storage/Common/StorageNouns.cs index aa4d98c33182..0d145ddd4552 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Common/StorageNouns.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Common/StorageNouns.cs @@ -119,6 +119,22 @@ public static class StorageNouns ///
public const string QueueSas = "AzureStorageQueueSASToken"; + /// + /// Azure storage table stored access policy + /// + public const string TableStoredAccessPolicy = "AzureStorageTableStoredAccessPolicy"; + + /// + /// Azure storage container stored access policy + /// + public const string ContainerStoredAccessPolicy = "AzureStorageContainerStoredAccessPolicy"; + + + /// + /// Azure storage container stored access policy + /// + public const string QueueStoredAccessPolicy = "AzureStorageQueueStoredAccessPolicy"; + /// /// Default service metrics version /// diff --git a/src/ServiceManagement/Storage/Commands.Storage/Microsoft.WindowsAzure.Commands.Storage.dll-Help.xml b/src/ServiceManagement/Storage/Commands.Storage/Microsoft.WindowsAzure.Commands.Storage.dll-Help.xml index c57a26264ae2..b7611ccd82ec 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Microsoft.WindowsAzure.Commands.Storage.dll-Help.xml +++ b/src/ServiceManagement/Storage/Commands.Storage/Microsoft.WindowsAzure.Commands.Storage.dll-Help.xml @@ -1556,6 +1556,171 @@ echo "Total $total containers" + + + Get-AzureStorageContainerStoredAccessPolicy + + List the specified Stored Access Policy for an azure storage container, or list all the Stored Access Policies for an azure storage container. + + + + + Get + AzureStorageContainerStoredAccessPolicy + + + + + List the specified Stored Access Policy for an azure storage container, or list all the Stored Access Policies for an azure storage container. + + + + Get-AzureStorageContainerStoredAccessPolicy + + Container + + Azure storage container name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Context + + Azure storage context + + AzureStorageContext + + + + + + Container + + Azure storage container name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- List a stored access policy in container -------------------------- + + + + PS C:\> Get-AzureStorageContainerStoredAccessPolicy -Container test -Policy testPolicy + + + + + + + + + + + -------------------------- List all the stored access policies in container -------------------------- + + + + PS C:\> Get-AzureStorageContainerStoredAccessPolicy -Container test + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + Get-AzureStorageFile @@ -2893,85 +3058,80 @@ echo "Total $total containers" - Get-AzureStorageServiceLoggingProperty + Get-AzureStorageQueueStoredAccessPolicy - Get azure storage service logging properties. + List the specified Stored Access Policy for an azure storage queue, or list all the Stored Access Policies for an azure storage queue. Get - AzureStorageServiceLoggingProperty + AzureStorageQueueStoredAccessPolicy - Get azure storage service logging properties. + List the specified Stored Access Policy for an azure storage queue, or list all the Stored Access Policies for an azure storage queue. - Get-AzureStorageServiceLoggingProperty - - ServiceType + Get-AzureStorageQueueStoredAccessPolicy + + Queue - Azure storage service type. + Azure storage queue name. - StorageServiceType + String + + + Policy + + Azure Stored Access Policy. + + String Context - Azure storage context. + Azure storage context AzureStorageContext - - ServiceType - - Azure storage service type. - - StorageServiceType - - StorageServiceType - - - - - - Context + + Queue - Azure storage context. + Azure storage queue name. - AzureStorageContext + String - AzureStorageContext + String - - ServerTimeoutPerRequest + + Policy - Server side time out for each request. + Azure Stored Access Policy. - int32 + String - int32 + String - - ClientTimeoutPerRequest + + Context - Client side time out for each request. + Azure storage context - int32 + AzureStorageContext - int32 + AzureStorageContext @@ -3023,11 +3183,26 @@ echo "Total $total containers" - -------------------------- Get azure storage blob service logging properties. -------------------------- + -------------------------- List a stored access policy in queue -------------------------- - PS C:\> Get-AzureStorageServiceLoggingProperty -ServiceType Blob + PS C:\> Get-AzureStorageQueueStoredAccessPolicy -Queue test -Policy testPolicy + + + + + + + + + + + -------------------------- List all the stored access policies in queue -------------------------- + + + + PS C:\> Get-AzureStorageQueueStoredAccessPolicy -Queue test @@ -3041,30 +3216,30 @@ echo "Total $total containers" http://msdn.microsoft.com/en-us/library/dn806375.aspx - + - Get-AzureStorageServiceMetricsProperty + Get-AzureStorageServiceLoggingProperty - Get azure storage service metrics properties. + Get azure storage service logging properties. Get - AzureStorageServiceMetricsProperty + AzureStorageServiceLoggingProperty - Get azure storage service metrics properties. + Get azure storage service logging properties. - Get-AzureStorageServiceMetricsProperty + Get-AzureStorageServiceLoggingProperty ServiceType @@ -3072,13 +3247,6 @@ echo "Total $total containers" StorageServiceType - - MetricsType - - Metrics type. - - ServiceMetricsType - Context @@ -3101,18 +3269,176 @@ echo "Total $total containers" - - MetricsType - - Metrics type. - - ServiceMetricsType - - ServiceMetricsType - - - - + + Context + + Azure storage context. + + AzureStorageContext + + AzureStorageContext + + + + + + ServerTimeoutPerRequest + + Server side time out for each request. + + int32 + + int32 + + + + + + ClientTimeoutPerRequest + + Client side time out for each request. + + int32 + + int32 + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Get azure storage blob service logging properties. -------------------------- + + + + PS C:\> Get-AzureStorageServiceLoggingProperty -ServiceType Blob + + + + + + + + + + + + + + + + + Get-AzureStorageServiceMetricsProperty + + Get azure storage service metrics properties. + + + + + Get + AzureStorageServiceMetricsProperty + + + + + Get azure storage service metrics properties. + + + + Get-AzureStorageServiceMetricsProperty + + ServiceType + + Azure storage service type. + + StorageServiceType + + + MetricsType + + Metrics type. + + ServiceMetricsType + + + Context + + Azure storage context. + + AzureStorageContext + + + + + + ServiceType + + Azure storage service type. + + StorageServiceType + + StorageServiceType + + + + + + MetricsType + + Metrics type. + + ServiceMetricsType + + ServiceMetricsType + + + + Context @@ -3730,113 +4056,278 @@ echo "Total $total containers" - New-AzureStorageBlobSASToken + Get-AzureStorageTableStoredAccessPolicy - Generate Shared Access Signature token for azure storage blob. + List the specified Stored Access Policy for an azure storage table, or list all the Stored Access Policies for an azure storage tabel. - New - AzureStorageBlobSASToken + Get + AzureStorageTableStoredAccessPolicy - Generate Shared Access Signature token for azure storage blob. + List the specified Stored Access Policy for an azure storage table, or list all the Stored Access Policies for an azure storage tabel. - New-AzureStorageBlobSASToken - - Container - - Azure storage container name. - - String - - - Blob + Get-AzureStorageTableStoredAccessPolicy + + Table - Azure storage blob name. + Azure storage table name. String - - Permission + + Policy - Permissions for a storage blob. + Azure Stored Access Policy. String - - StartTime - - The time at which the shared access signature becomes valid. - - Nullable`1[DateTime] - - - ExpiryTime - - The time at which the shared access signature becomes invalid. - - Nullable`1[DateTime] - - - FullUri - - Return the full blob uri with sas token. - - SwitchParameter - Context - Azure storage context. + Azure storage context AzureStorageContext - - New-AzureStorageBlobSASToken - - ICloudBlob - - ICloudBlob object - - ICloudBlob - - - Permission - - Permissions for a storage blob. - - String - - - StartTime - - The time at which the shared access signature becomes valid. - - Nullable`1[DateTime] - - - ExpiryTime - - The time at which the shared access signature becomes invalid. - - Nullable`1[DateTime] - - - FullUri - - Return the full blob uri with sas token. - - SwitchParameter - - - Context + + + + Table + + Azure storage table name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- List a stored access policy in table -------------------------- + + + + PS C:\> Get-AzureStorageTableStoredAccessPolicy -Table test -Policy testPolicy + + + + + + + + + + + -------------------------- List all the stored access policies in table -------------------------- + + + + PS C:\> Get-AzureStorageTableStoredAccessPolicy -Table test + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + New-AzureStorageBlobSASToken + + Generate Shared Access Signature token for azure storage blob. + + + + + New + AzureStorageBlobSASToken + + + + + Generate Shared Access Signature token for azure storage blob. + + + + New-AzureStorageBlobSASToken + + Container + + Azure storage container name. + + String + + + Blob + + Azure storage blob name. + + String + + + Permission + + Permissions for a storage blob. + + String + + + StartTime + + The time at which the shared access signature becomes valid. + + Nullable`1[DateTime] + + + ExpiryTime + + The time at which the shared access signature becomes invalid. + + Nullable`1[DateTime] + + + FullUri + + Return the full blob uri with sas token. + + SwitchParameter + + + Context + + Azure storage context. + + AzureStorageContext + + + + New-AzureStorageBlobSASToken + + ICloudBlob + + ICloudBlob object + + ICloudBlob + + + Permission + + Permissions for a storage blob. + + String + + + StartTime + + The time at which the shared access signature becomes valid. + + Nullable`1[DateTime] + + + ExpiryTime + + The time at which the shared access signature becomes invalid. + + Nullable`1[DateTime] + + + FullUri + + Return the full blob uri with sas token. + + SwitchParameter + + + Context Azure storage context. @@ -4661,57 +5152,264 @@ New-AzureStorageBlobSASToken -Container cname -Blob bname -Permission rwd -Start - New-AzureStorageContext + New-AzureStorageContainerStoredAccessPolicy - Create an azure storage context using azure storage credentials. + Create Stored Access Policy for azure storage container. New - AzureStorageContext + AzureStorageContainerStoredAccessPolicy - Create an azure storage context using azure storage credentials. + Create Stored Access Policy for azure storage container. - New-AzureStorageContext - - StorageAccountName + New-AzureStorageContainerStoredAccessPolicy + + Container - Azure storage account name + Azure storage container name. String - StorageAccountKey + Policy - Azure storage account key. + Azure Stored Access Policy. String - - Protocol + + Permission - Transfer Protocol (https/http). + Permissions for a storage container. String - - Endpoint + + StartTime - Azure Storage Endpoint. + The time at which the stored access policy becomes valid. - String + Nullable`1[DateTime] - - - New-AzureStorageContext - - StorageAccountName + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + + Context + + Azure storage context + + AzureStorageContext + + + + + + Container + + Azure storage container name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Permission + + Permissions for a storage container. + + String + + String + + + + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Create a stored access policy in container with full permission -------------------------- + + + + PS C:\> New-AzureStorageContainerStoredAccessPolicy -Container test -Policy testPolicy -Permission audq + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + New-AzureStorageContext + + Create an azure storage context using azure storage credentials. + + + + + New + AzureStorageContext + + + + + Create an azure storage context using azure storage credentials. + + + + New-AzureStorageContext + + StorageAccountName + + Azure storage account name + + String + + + StorageAccountKey + + Azure storage account key. + + String + + + Protocol + + Transfer Protocol (https/http). + + String + + + Endpoint + + Azure Storage Endpoint. + + String + + + + New-AzureStorageContext + + StorageAccountName Azure storage account name @@ -6052,78 +6750,285 @@ $context | Get-AzureStorageBlob -Container abc - New-AzureStorageShare + New-AzureStorageQueueStoredAccessPolicy - Create a new Azure storage file share. + Create Stored Access Policy for azure storage queue. New - AzureStorageShare + AzureStorageQueueStoredAccessPolicy - Create a new Azure storage file share. + Create Stored Access Policy for azure storage queue. - New-AzureStorageShare - - Name + New-AzureStorageQueueStoredAccessPolicy + + Queue - The file share name + Azure storage queue name. String - - Context + + Policy - Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + Azure Stored Access Policy. - AzureStorageContext + String - - ServerTimeoutPerRequest + + Permission - Server side timeout value for the request. + Permissions for a storage queue. - Nullable`1[Int32] + String - ClientTimeoutPerRequest + StartTime - Client side timeout value for the request. + The time at which the stored access policy becomes valid. - Nullable`1[Int32] + Nullable`1[DateTime] - ConcurrentTaskCount - - - - Nullable`1[Int32] - - - - New-AzureStorageShare - - Name + ExpiryTime - The file share name + The time at which the stored access policy becomes invalid. - String + Nullable`1[DateTime] - + Context - Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + Azure storage context AzureStorageContext - - ServerTimeoutPerRequest + + + + + Queue + + Azure storage queue name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Permission + + Permissions for a storage queue. + + String + + String + + + + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Create a stored access policy in queue with full permission -------------------------- + + + + PS C:\> New-AzureStorageQueueStoredAccessPolicy -Queue test -Policy testPolicy -Permission arup + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + New-AzureStorageShare + + Create a new Azure storage file share. + + + + + New + AzureStorageShare + + + + + Create a new Azure storage file share. + + + + New-AzureStorageShare + + Name + + The file share name + + String + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + ServerTimeoutPerRequest + + Server side timeout value for the request. + + Nullable`1[Int32] + + + ClientTimeoutPerRequest + + Client side timeout value for the request. + + Nullable`1[Int32] + + + ConcurrentTaskCount + + + + Nullable`1[Int32] + + + + New-AzureStorageShare + + Name + + The file share name + + String + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + ServerTimeoutPerRequest Server side timeout value for the request. @@ -6903,71 +7808,278 @@ $context | Get-AzureStorageBlob -Container abc - Remove-AzureStorageBlob + New-AzureStorageTableStoredAccessPolicy - Remove the specified azure storage blob. + Create Stored Access Policy for azure storage table. - Remove - AzureStorageBlob + New + AzureStorageTableStoredAccessPolicy - Remove the specified azure storage blob. + Create Stored Access Policy for azure storage table. - Remove-AzureStorageBlob - - Blob + New-AzureStorageTableStoredAccessPolicy + + Table - Blob name. + Azure storage table name. String - Container + Policy - Container name. + Azure Stored Access Policy. String - - DeleteSnapshot + + Permission - Only delete blob snapshots. + Permissions for a storage table. - SwitchParameter + String - - Force + + StartTime - Force to remove the blob and its snapshot without confirmation. + The time at which the stored access policy becomes valid. - SwitchParameter + Nullable`1[DateTime] - - PassThru + + ExpiryTime - + The time at which the stored access policy becomes invalid. - SwitchParameter + Nullable`1[DateTime] Context - Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + Azure storage context AzureStorageContext - - ServerTimeoutPerRequest - - Server side time out for each request. - + + + + + Table + + Azure storage table name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Permission + + Permissions for a storage table. + + String + + String + + + + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Create a stored access policy in table with full permission -------------------------- + + + + PS C:\> New-AzureStorageTableStoredAccessPolicy -Table test -Policy testPolicy -Permission raud + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + Remove-AzureStorageBlob + + Remove the specified azure storage blob. + + + + + Remove + AzureStorageBlob + + + + + Remove the specified azure storage blob. + + + + Remove-AzureStorageBlob + + Blob + + Blob name. + + String + + + Container + + Container name. + + String + + + DeleteSnapshot + + Only delete blob snapshots. + + SwitchParameter + + + Force + + Force to remove the blob and its snapshot without confirmation. + + SwitchParameter + + + PassThru + + + + SwitchParameter + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + ServerTimeoutPerRequest + + Server side time out for each request. + Nullable`1[Int32] @@ -7665,89 +8777,315 @@ $context | Get-AzureStorageBlob -Container abc - Remove-AzureStorageDirectory + Remove-AzureStorageContainerStoredAccessPolicy - Remove an azure storage file directory. + Remove Stored Access Policy from azure storage container. Remove - AzureStorageDirectory + AzureStorageContainerStoredAccessPolicy - Remove an azure storage file directory. + Remove Stored Access Policy from azure storage container. - Remove-AzureStorageDirectory - - ShareName + Remove-AzureStorageContainerStoredAccessPolicy + + Container - The file share name + Azure storage container name. String - - Path + + Policy - The path of the file directory to be removed + Azure Stored Access Policy. String + + Force + + Force to remove the policy without confirmation + + SwitchParameter + PassThru - + Output a bool value in order to indicate whether the specified policy is remove successfully. SwitchParameter - + Context Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. AzureStorageContext - - ServerTimeoutPerRequest - - Server side timeout value for the request - - Nullable`1[Int32] - - - ClientTimeoutPerRequest - - Client side timeout value for the request - - Nullable`1[Int32] - - - ConcurrentTaskCount - - - - Nullable`1[Int32] - WhatIf - Shows what would happen if the cmdlet runs. The cmdlet is not run. + SwitchParameter Confirm - Prompts you for confirmation before running the cmdlet. + SwitchParameter - + + + + Container + + Azure storage container name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Force + + Force to remove the policy without confirmation + + SwitchParameter + + SwitchParameter + + + + + + PassThru + + Output a bool value in order to indicate whether the specified policy is remove successfully. + + SwitchParameter + + SwitchParameter + + + + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + AzureStorageContext + + + + + + WhatIf + + + + SwitchParameter + + SwitchParameter + + + + + + Confirm + + + + SwitchParameter + + SwitchParameter + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Remove a stored access policy from container -------------------------- + + + + PS C:\> Remove-AzureStorageContainerStoredAccessPolicy -Container test -Policy testPolicy + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + Remove-AzureStorageDirectory + + Remove an azure storage file directory. + + + + + Remove + AzureStorageDirectory + + + + + Remove an azure storage file directory. + + + + Remove-AzureStorageDirectory + + ShareName + + The file share name + + String + + + Path + + The path of the file directory to be removed + + String + + + PassThru + + + + SwitchParameter + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + ServerTimeoutPerRequest + + Server side timeout value for the request + + Nullable`1[Int32] + + + ClientTimeoutPerRequest + + Client side timeout value for the request + + Nullable`1[Int32] + + + ConcurrentTaskCount + + + + Nullable`1[Int32] + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + + Remove-AzureStorageDirectory Share @@ -8939,14 +10277,496 @@ $context | Get-AzureStorageBlob -Container abc - - ClientTimeoutPerRequest + + ClientTimeoutPerRequest + + Client side time out for each request. + + int32 + + int32 + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Remove azure storage queue by queue name -------------------------- + + + + PS C:\> Remove-AzureStorageQueue queueabc + + + + + + + + + + + -------------------------- Remove azure storage queue using GetAzureStorageQueue -------------------------- + + + + PS C:\> Get-AzureStorageQueue queue* | Remove-AzureStorageQueue + + + + + + + + + + + + + + + + + Remove-AzureStorageQueueStoredAccessPolicy + + Remove Stored Access Policy from azure storage queue. + + + + + Remove + AzureStorageQueueStoredAccessPolicy + + + + + Remove Stored Access Policy from azure storage queue. + + + + Remove-AzureStorageQueueStoredAccessPolicy + + Queue + + Azure storage queue name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Force + + Force to remove the policy without confirmation + + SwitchParameter + + + PassThru + + Output a bool value in order to indicate whether the specified policy is remove successfully. + + SwitchParameter + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + WhatIf + + + + SwitchParameter + + + Confirm + + + + SwitchParameter + + + + + + Queue + + Azure storage queue name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Force + + Force to remove the policy without confirmation + + SwitchParameter + + SwitchParameter + + + + + + PassThru + + Output a bool value in order to indicate whether the specified policy is remove successfully. + + SwitchParameter + + SwitchParameter + + + + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + AzureStorageContext + + + + + + WhatIf + + + + SwitchParameter + + SwitchParameter + + + + + + Confirm + + + + SwitchParameter + + SwitchParameter + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Remove a stored access policy from queue -------------------------- + + + + PS C:\> Remove-AzureStorageQueueStoredAccessPolicy -Queue test -Policy testPolicy + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + + + + Set-AzureStorageQueueStoredAccessPolicy + + Set Stored Access Policy for azure storage queue. + + + + + Set + AzureStorageQueueStoredAccessPolicy + + + + + Set Stored Access Policy for azure storage queue. + + + + Set-AzureStorageQueueStoredAccessPolicy + + Queue + + Azure storage queue name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Permission + + Permissions for a storage queue. + + String + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + + Context + + Azure storage context + + AzureStorageContext + + + + + + Queue + + Azure storage queue name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Permission + + Permissions for a storage queue. + + String + + String + + + + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + Context - Client side time out for each request. + Azure storage context - int32 + AzureStorageContext - int32 + AzureStorageContext @@ -8998,26 +10818,11 @@ $context | Get-AzureStorageBlob -Container abc - -------------------------- Remove azure storage queue by queue name -------------------------- - - - - PS C:\> Remove-AzureStorageQueue queueabc - - - - - - - - - - - -------------------------- Remove azure storage queue using GetAzureStorageQueue -------------------------- + -------------------------- Set a stored access policy in queue with full permission -------------------------- - PS C:\> Get-AzureStorageQueue queue* | Remove-AzureStorageQueue + PS C:\> Set-AzureStorageQueueStoredAccessPolicy -Queue test -Policy testPolicy -Permission arup @@ -9029,6 +10834,10 @@ $context | Get-AzureStorageBlob -Container abc + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + @@ -9605,19 +11414,256 @@ $context | Get-AzureStorageBlob -Container abc int32 - int32 + int32 + + + + + + ClientTimeoutPerRequest + + Client side time out for each request. + + int32 + + int32 + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Remove azure storage table by table name -------------------------- + + + + PS C:\> Remove-AzureStorageTable tableabc + + + + + + + + + + + -------------------------- Remove azure storage tables using GetAzureStorageTable -------------------------- + + + + PS C:\> Get-AzureStorageTable table* | Remove-AzureStorageTable + + + + + + + + + + + + + + + + + Remove-AzureStorageTableStoredAccessPolicy + + Remove Stored Access Policy from azure storage table. + + + + + Remove + AzureStorageTableStoredAccessPolicy + + + + + Remove Stored Access Policy from azure storage table. + + + + Remove-AzureStorageTableStoredAccessPolicy + + Table + + Azure storage table name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Force + + Force to remove the policy without confirmation + + SwitchParameter + + + PassThru + + Output a bool value in order to indicate whether the specified policy is remove successfully. + + SwitchParameter + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + + WhatIf + + + + SwitchParameter + + + Confirm + + + + SwitchParameter + + + + + + Table + + Azure storage table name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Force + + Force to remove the policy without confirmation + + SwitchParameter + + SwitchParameter + + + + + + PassThru + + Output a bool value in order to indicate whether the specified policy is remove successfully. + + SwitchParameter + + SwitchParameter + + + + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + AzureStorageContext + + + + + + WhatIf + + + + SwitchParameter + + SwitchParameter - ClientTimeoutPerRequest + Confirm - Client side time out for each request. + - int32 + SwitchParameter - int32 + SwitchParameter @@ -9669,26 +11715,11 @@ $context | Get-AzureStorageBlob -Container abc - -------------------------- Remove azure storage table by table name -------------------------- - - - - PS C:\> Remove-AzureStorageTable tableabc - - - - - - - - - - - -------------------------- Remove azure storage tables using GetAzureStorageTable -------------------------- + -------------------------- Remove a stored access policy from table -------------------------- - PS C:\> Get-AzureStorageTable table* | Remove-AzureStorageTable + PS C:\> Remove-AzureStorageTableStoredAccessPolicy -Table test -Policy testPolicy @@ -9700,6 +11731,10 @@ $context | Get-AzureStorageBlob -Container abc + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + @@ -10354,55 +12389,327 @@ Set-AzureStorageBlobContent -File filename -Container containername -Metadata $m SwitchParameter - SwitchParameter + SwitchParameter + + + + + + Context + + Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + + AzureStorageContext + + AzureStorageContext + + + + + + ServerTimeoutPerRequest + + Server side time out for each request. + + Nullable`1[Int32] + + Nullable`1[Int32] + + + + + + ClientTimeoutPerRequest + + Client side time out for each request. + + Nullable`1[Int32] + + Nullable`1[Int32] + + + + + + ConcurrentTaskCount + + + + Nullable`1[Int32] + + Nullable`1[Int32] + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Set azure storage container acl by name. -------------------------- + + + + PS C:\> Set-AzureStorageContainerAcl -Container container1 -Permission off -PassThru + + + + + + + + + + + -------------------------- Set azure storage container acl using pipeline by GetAzureStorageContainer -------------------------- + + + + PS C:\> Get-AzureStorageContainer container* | Set-AzureStorageContainerAcl -Permission blob -PassThru + + + + + + + + + + + + + Get-AzureStorageContainerAcl + + + + Get-AzureStorageContainer + + + + New-AzureStorageContainer + + + + Remove-AzureStorageContainer + + + + + + + + Set-AzureStorageContainerStoredAccessPolicy + + Set Stored Access Policy for azure storage container. + + + + + Set + AzureStorageContainerStoredAccessPolicy + + + + + Set Stored Access Policy for azure storage container. + + + + Set-AzureStorageContainerStoredAccessPolicy + + Container + + Azure storage container name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Permission + + Permissions for a storage container. + + String + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + + Context + + Azure storage context + + AzureStorageContext + + + + + + Container + + Azure storage container name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String - - Context + + Permission - Azure Storage Context. You can create it by New-AzureStorageContext cmdlet. + Permissions for a storage container. - AzureStorageContext + String - AzureStorageContext + String - ServerTimeoutPerRequest + StartTime - Server side time out for each request. + The time at which the stored access policy becomes valid. - Nullable`1[Int32] + Nullable`1[DateTime] - Nullable`1[Int32] + Nullable`1[DateTime] - ClientTimeoutPerRequest + ExpiryTime - Client side time out for each request. + The time at which the stored access policy becomes invalid. - Nullable`1[Int32] + Nullable`1[DateTime] - Nullable`1[Int32] + Nullable`1[DateTime] - - ConcurrentTaskCount + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + Context - + Azure storage context - Nullable`1[Int32] + AzureStorageContext - Nullable`1[Int32] + AzureStorageContext @@ -10454,26 +12761,11 @@ Set-AzureStorageBlobContent -File filename -Container containername -Metadata $m - -------------------------- Set azure storage container acl by name. -------------------------- - - - - PS C:\> Set-AzureStorageContainerAcl -Container container1 -Permission off -PassThru - - - - - - - - - - - -------------------------- Set azure storage container acl using pipeline by GetAzureStorageContainer -------------------------- + -------------------------- Set a stored access policy in container with full permission -------------------------- - PS C:\> Get-AzureStorageContainer container* | Set-AzureStorageContainerAcl -Permission blob -PassThru + PS C:\> Set-AzureStorageContainerStoredAccessPolicy -Container test -Policy testPolicy -Permission audq @@ -10486,19 +12778,7 @@ Set-AzureStorageBlobContent -File filename -Container containername -Metadata $m - Get-AzureStorageContainerAcl - - - - Get-AzureStorageContainer - - - - New-AzureStorageContainer - - - - Remove-AzureStorageContainer + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx @@ -11625,6 +13905,251 @@ Set-AzureStorageBlobContent -File filename -Container containername -Metadata $m + + + Set-AzureStorageTableStoredAccessPolicy + + Set Stored Access Policy for azure storage table. + + + + + Set + AzureStorageTableStoredAccessPolicy + + + + + Set Stored Access Policy for azure storage table. + + + + Set-AzureStorageTableStoredAccessPolicy + + Table + + Azure storage table name. + + String + + + Policy + + Azure Stored Access Policy. + + String + + + Permission + + Permissions for a storage table. + + String + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + + Context + + Azure storage context + + AzureStorageContext + + + + + + Table + + Azure storage table name. + + String + + String + + + + + + Policy + + Azure Stored Access Policy. + + String + + String + + + + + + Permission + + Permissions for a storage table. + + String + + String + + + + + + StartTime + + The time at which the stored access policy becomes valid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + ExpiryTime + + The time at which the stored access policy becomes invalid. + + Nullable`1[DateTime] + + Nullable`1[DateTime] + + + + + + NoStartTime + + Set the StartTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + NoExpiryTime + + Set the ExpiryTime to be Null. + + SwitchParameter + + SwitchParameter + + + + + + Context + + Azure storage context + + AzureStorageContext + + AzureStorageContext + + + + + + PipelineVariable + + + + string + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -------------------------- Set a stored access policy in table with full permission -------------------------- + + + + PS C:\> Set-AzureStorageTableStoredAccessPolicy -Table test -Policy testPolicy -Permission raud + + + + + + + + + + + + + http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx + + + + + Start-AzureStorageBlobCopy diff --git a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageBlobManagement.cs b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageBlobManagement.cs index 8ff148bd51e9..fc6faea183a9 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageBlobManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageBlobManagement.cs @@ -56,7 +56,7 @@ public interface IStorageBlobManagement : IStorageManagement /// Blob request option /// Operation context /// The container's permission - BlobContainerPermissions GetContainerPermissions(CloudBlobContainer container, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext); + BlobContainerPermissions GetContainerPermissions(CloudBlobContainer container, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null); /// /// Set container permissions @@ -66,7 +66,7 @@ public interface IStorageBlobManagement : IStorageManagement /// Access condition /// Blob request option /// Operation context - void SetContainerPermissions(CloudBlobContainer container, BlobContainerPermissions permissions, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext); + void SetContainerPermissions(CloudBlobContainer container, BlobContainerPermissions permissions, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null); /// /// Get an CloudBlobContainer instance in local diff --git a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageQueueManagement.cs b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageQueueManagement.cs index 09360d382725..230edc52520b 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageQueueManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageQueueManagement.cs @@ -14,6 +14,7 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Queue; using Microsoft.WindowsAzure.Storage.Queue.Protocol; @@ -83,6 +84,25 @@ IEnumerable ListQueues(string prefix, QueueListingDetails queueList /// Queue request options /// Operation context /// QueuePermissions object - QueuePermissions GetPermissions(CloudQueue queue, QueueRequestOptions options, OperationContext operationContext); + QueuePermissions GetPermissions(CloudQueue queue, QueueRequestOptions options = null, OperationContext operationContext = null); + + + /// + /// Get queue permission async + /// + /// + /// + /// + /// + Task GetPermissionsAsync(CloudQueue queue, QueueRequestOptions requestOptions = null, OperationContext operationContext = null); + + /// + /// set queue permission + /// + /// + /// + /// + /// + void SetPermissions(CloudQueue queue, QueuePermissions queuePermissions, QueueRequestOptions requestOptions = null, OperationContext operationContext = null); } } diff --git a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageTableManagement.cs b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageTableManagement.cs index d440c53efe7e..03b1a2592fe7 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageTableManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/IStorageTableManagement.cs @@ -13,6 +13,7 @@ // --------------------------------------------------------------------------------- using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Table; @@ -30,7 +31,7 @@ public interface IStorageTableManagement : IStorageManagement /// Table request options /// Operation context /// An enumerable collection of tables that begin with the specified prefix - IEnumerable ListTables(string prefix, TableRequestOptions requestOptions, OperationContext operationContext); + IEnumerable ListTables(string prefix, TableRequestOptions requestOptions = null, OperationContext operationContext = null); /// /// Get a table reference @@ -46,7 +47,7 @@ public interface IStorageTableManagement : IStorageManagement /// Table request options /// Operation context /// True if table exists; otherwise, false. - bool DoesTableExist(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext); + bool DoesTableExist(CloudTable table, TableRequestOptions requestOptions = null, OperationContext operationContext = null); /// /// Cloud a azure storage table if not exists. @@ -55,7 +56,7 @@ public interface IStorageTableManagement : IStorageManagement /// Table request options /// Operation context /// True if table was created; otherwise, false. - bool CreateTableIfNotExists(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext); + bool CreateTableIfNotExists(CloudTable table, TableRequestOptions requestOptions = null, OperationContext operationContext = null); /// /// Delete the specified azure storage table @@ -63,7 +64,7 @@ public interface IStorageTableManagement : IStorageManagement /// Cloud table object /// Table request options /// Operation context - void Delete(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext); + void Delete(CloudTable table, TableRequestOptions requestOptions = null, OperationContext operationContext = null); /// /// Get table permission @@ -71,6 +72,35 @@ public interface IStorageTableManagement : IStorageManagement /// Cloud table object /// Table request options /// Operation context - TablePermissions GetTablePermissions(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext); + TablePermissions GetTablePermissions(CloudTable table, TableRequestOptions requestOptions = null, OperationContext operationContext = null); + + /// + /// Return a task that asynchronously fetch table permissions + /// + /// target table + /// request options + /// context + /// + Task GetTablePermissionsAsync(CloudTable table, TableRequestOptions requestOptions = null, OperationContext operationContext = null); + + /// + /// Set table permission + /// + /// Cloud table object + /// table permissions + /// Table request options + /// Operation context + /// + void SetTablePermissions(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions = null, OperationContext operationContext = null); + + /// + /// Return a task that asynchronously set table permissions + /// + /// target table + /// permissions to set + /// request options + /// context + /// + Task SetTablePermissionsAsync(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions = null, OperationContext operationContext = null); } } \ No newline at end of file diff --git a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageQueueManagement.cs b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageQueueManagement.cs index 4aa018ac5c5c..9b5e0e1a03f0 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageQueueManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageQueueManagement.cs @@ -13,6 +13,7 @@ // --------------------------------------------------------------------------------- using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Queue; @@ -156,5 +157,29 @@ public QueuePermissions GetPermissions(CloudQueue queue, QueueRequestOptions opt { return queue.GetPermissions(options, operationContext); } + + /// + /// Get queue permission async + /// + /// + /// + /// + /// + public Task GetPermissionsAsync(CloudQueue queue, QueueRequestOptions requestOptions, OperationContext operationContext) + { + return queue.GetPermissionsAsync(requestOptions, operationContext); + } + + /// + /// set queue permission + /// + /// + /// + /// + /// + public void SetPermissions(CloudQueue queue, QueuePermissions queuePermissions, QueueRequestOptions requestOptions, OperationContext operationContext) + { + queue.SetPermissions(queuePermissions, requestOptions, operationContext); + } } } diff --git a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageTableManagement.cs b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageTableManagement.cs index 3098e7ff1dac..c9acc63662fc 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageTableManagement.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Model/Contract/StorageTableManagement.cs @@ -13,6 +13,7 @@ // --------------------------------------------------------------------------------- using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Table; @@ -122,5 +123,44 @@ public TablePermissions GetTablePermissions(CloudTable table, TableRequestOption { return table.GetPermissions(requestOptions, operationContext); } + + /// + /// Return a task that asynchronously fetch table permissions + /// + /// target table + /// request options + /// context + /// + public Task GetTablePermissionsAsync(CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) + { + return table.GetPermissionsAsync(requestOptions, operationContext); + } + + /// + /// Set table permission + /// + /// Cloud table object + /// table permissions + /// Table request options + /// Operation context + /// + public void SetTablePermissions(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions, OperationContext operationContext) + { + table.SetPermissions(tablePermissions, requestOptions, operationContext); + } + + + /// + /// Return a task that asynchronously set table permissions + /// + /// target table + /// permissions to set + /// request options + /// context + /// + public Task SetTablePermissionsAsync(CloudTable table, TablePermissions tablePermissions, TableRequestOptions requestOptions, OperationContext operationContext) + { + return table.SetPermissionsAsync(tablePermissions, requestOptions, operationContext); + } } } \ No newline at end of file diff --git a/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/GetAzureStorageQueueStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/GetAzureStorageQueueStoredAccessPolicy.cs new file mode 100644 index 000000000000..0b0fa07defc1 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/GetAzureStorageQueueStoredAccessPolicy.cs @@ -0,0 +1,104 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Queue.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using System.Threading.Tasks; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.WindowsAzure.Storage.Queue; + using Microsoft.WindowsAzure.Storage.Queue.Protocol; + + [Cmdlet(VerbsCommon.Get, StorageNouns.QueueStoredAccessPolicy), OutputType(typeof(SharedAccessQueuePolicy))] + public class GetAzureStorageQueueStoredAccessPolicyCommand : StorageQueueBaseCmdlet + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Queue Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Queue { get; set; } + + [Parameter(Position = 1, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + public string Policy { get; set; } + + /// + /// Initializes a new instance of the GetAzureStorageQueueStoredAccessPolicyCommand class. + /// + public GetAzureStorageQueueStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzureStorageQueueStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public GetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel) + { + Channel = channel; + } + + internal async Task GetAzureQueueStoredAccessPolicyAsync(long taskId, IStorageQueueManagement localChannel, string queueName, string policyName) + { + SharedAccessQueuePolicies shareAccessPolicies = await GetPoliciesAsync(localChannel, queueName, policyName); + + if (!String.IsNullOrEmpty(policyName)) + { + if (shareAccessPolicies.Keys.Contains(policyName)) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, policyName)); + } + else + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + } + else + { + foreach (string key in shareAccessPolicies.Keys) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, key)); + } + } + } + + internal async Task GetPoliciesAsync(IStorageQueueManagement localChannel, string queueName, string policyName) + { + CloudQueue queue = localChannel.GetQueueReference(queueName); + QueuePermissions queuePermissions = await localChannel.GetPermissionsAsync(queue); + return queuePermissions.SharedAccessPolicies; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Queue)) return; + Func taskGenerator = (taskId) => GetAzureQueueStoredAccessPolicyAsync(taskId, Channel, Queue, Policy); + RunTask(taskGenerator); + } + + + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/NewAzureStorageQueueStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/NewAzureStorageQueueStoredAccessPolicy.cs new file mode 100644 index 000000000000..6a22dd1fb16e --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/NewAzureStorageQueueStoredAccessPolicy.cs @@ -0,0 +1,109 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Queue.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.WindowsAzure.Storage.Queue; + using Microsoft.WindowsAzure.Storage.Queue.Protocol; + + [Cmdlet(VerbsCommon.New, StorageNouns.QueueStoredAccessPolicy), OutputType(typeof(String))] + public class NewAzureStorageQueueStoredAccessPolicyCommand : StorageQueueBaseCmdlet + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Queue Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Queue { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier. Need to be unique in the Queue")] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Permissions for a queue. Permissions can be any not-empty subset of \"arup\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expiry Time")] + public DateTime? ExpiryTime { get; set; } + + /// + /// Initializes a new instance of the NewAzureStorageQueueStoredAccessPolicyCommand class. + /// + public NewAzureStorageQueueStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the NewAzureStorageQueueStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public NewAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal string CreateAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission) + { + + if (!NameUtil.IsValidStoredAccessPolicyName(policyName)) + { + throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName)); + } + + //Get existing permissions + CloudQueue queue = Channel.GetQueueReference(queueName); + QueuePermissions queuePermissions = localChannel.GetPermissions(queue); + + //Add new policy + if (queuePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceAlreadyExistException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName)); + } + + SharedAccessQueuePolicy policy = new SharedAccessQueuePolicy(); + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission); + queuePermissions.SharedAccessPolicies.Add(policyName, policy); + + //Set permissions back to queue + localChannel.SetPermissions(queue, queuePermissions); + return policyName; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Queue) || String.IsNullOrEmpty(Policy)) return; + string resultPolicy = CreateAzureQueueStoredAccessPolicy(Channel, Queue, Policy, StartTime, ExpiryTime, Permission); + WriteObject(resultPolicy); + } + + + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/RemoveAzureStorageQueueStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/RemoveAzureStorageQueueStoredAccessPolicy.cs new file mode 100644 index 000000000000..03d4d5a8f317 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/RemoveAzureStorageQueueStoredAccessPolicy.cs @@ -0,0 +1,125 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Queue.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.WindowsAzure.Storage.Queue; + using Microsoft.WindowsAzure.Storage.Queue.Protocol; + + [Cmdlet(VerbsCommon.Remove, StorageNouns.QueueStoredAccessPolicy, SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High), OutputType(typeof(Boolean))] + public class RemoveAzureStorageQueueStoredAccessPolicyCommand : StorageQueueBaseCmdlet + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Queue Name", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Queue { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Policy { get; set; } + + [Parameter(HelpMessage = "Force to remove the policy without confirm")] + public SwitchParameter Force { get; set;} + + [Parameter(Mandatory = false, HelpMessage = "Return whether the specified policy is successfully removed")] + public SwitchParameter PassThru { get; set; } + + /// + /// Initializes a new instance of the RemoveAzureStorageQueueStoredAccessPolicyCommand class. + /// + public RemoveAzureStorageQueueStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the RemoveAzureStorageQueueStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public RemoveAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal bool RemoveAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName) + { + bool success = false; + string result = string.Empty; + + //Get existing permissions + CloudQueue queue = Channel.GetQueueReference(queueName); + QueuePermissions queuePermissions = localChannel.GetPermissions(queue); + + //remove the specified policy + if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + if (this.Force || ConfirmRemove(policyName)) + { + queuePermissions.SharedAccessPolicies.Remove(policyName); + localChannel.SetPermissions(queue, queuePermissions); + success = true; + } + + return success; + } + internal virtual bool ConfirmRemove(string message) + { + return ShouldProcess(message); + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Queue) || String.IsNullOrEmpty(Policy)) return; + bool success = RemoveAzureQueueStoredAccessPolicy(Channel, Queue, Policy); + string result = string.Empty; + + if (success) + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicySuccessfully, Policy); + } + else + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicyCancelled, Policy); + } + + WriteVerbose(result); + + if (PassThru) + { + WriteObject(success); + } + } + + + } +} + diff --git a/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/SetAzureStorageQueueStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/SetAzureStorageQueueStoredAccessPolicy.cs new file mode 100644 index 000000000000..f58af93f227f --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Queue/Cmdlet/SetAzureStorageQueueStoredAccessPolicy.cs @@ -0,0 +1,117 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Storage.Queue.Cmdlet +{ + using System; + using System.Globalization; + using System.Management.Automation; + using System.Security.Permissions; + using Microsoft.WindowsAzure.Commands.Storage.Common; + using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; + using Microsoft.WindowsAzure.Storage.Queue; + using Microsoft.WindowsAzure.Storage.Queue.Protocol; + + [Cmdlet(VerbsCommon.Set, StorageNouns.QueueStoredAccessPolicy), OutputType(typeof(String))] + public class SetAzureStorageQueueStoredAccessPolicyCommand : StorageQueueBaseCmdlet + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Queue Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Queue { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier")] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Permissions for a queue. Permissions can be any not-empty subset of \"arup\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expiry Time")] + public DateTime? ExpiryTime { get; set; } + + [Parameter(HelpMessage = "Set StartTime as null for the policy")] + public SwitchParameter NoStartTime { get; set; } + + [Parameter(HelpMessage = "Set ExpiryTime as null for the policy")] + public SwitchParameter NoExpiryTime { get; set; } + + /// + /// Initializes a new instance of the SetAzureStorageQueueStoredAccessPolicyCommand class. + /// + public SetAzureStorageQueueStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the SetAzureStorageQueueStoredAccessPolicyCommand class. + /// + /// IStorageBlobManagement channel + public SetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal string SetAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission, bool noStartTime, bool noExpiryTime) + { + //Get existing permissions + CloudQueue queue = Channel.GetQueueReference(queueName); + QueuePermissions queuePermissions = localChannel.GetPermissions(queue); + + //Set the policy with new value + if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + SharedAccessQueuePolicy policy = queuePermissions.SharedAccessPolicies[policyName]; + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission, noStartTime, noExpiryTime); + queuePermissions.SharedAccessPolicies[policyName] = policy; + + //Set permission back to queue + WriteObject(AccessPolicyHelper.ConstructPolicyOutputPSObject(queuePermissions.SharedAccessPolicies, policyName)); + localChannel.SetPermissions(queue, queuePermissions); + return policyName; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Queue) || String.IsNullOrEmpty(Policy)) return; + if (NoStartTime && StartTime != null) + { + throw new ArgumentException(Resources.StartTimeParameterConflict); + } + + if (NoExpiryTime && ExpiryTime != null) + { + throw new ArgumentException(Resources.ExpiryTimeParameterConflict); + } + + SetAzureQueueStoredAccessPolicy(Channel, Queue, Policy, StartTime, ExpiryTime, Permission, NoStartTime, NoExpiryTime); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Resources.Designer.cs b/src/ServiceManagement/Storage/Commands.Storage/Resources.Designer.cs index 54664d9182dc..a25b40dc3033 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Resources.Designer.cs +++ b/src/ServiceManagement/Storage/Commands.Storage/Resources.Designer.cs @@ -492,6 +492,15 @@ internal static string ExpiryTimeGreatThanStartTime { } } + /// + /// Looks up a localized string similar to Parameter -ExpiryTime and -NoExpiryTime are mutually exclusive. + /// + internal static string ExpiryTimeParameterConflict { + get { + return ResourceManager.GetString("ExpiryTimeParameterConflict", resourceCulture); + } + } + /// /// Looks up a localized string similar to File '{0}' already exists.. /// @@ -780,6 +789,24 @@ internal static string InvalidAccessPolicy { } } + /// + /// Looks up a localized string similar to Access policy name '{0}' is invalid. Valid names should be 1 through 64 characters long.. + /// + internal static string InvalidAccessPolicyName { + get { + return ResourceManager.GetString("InvalidAccessPolicyName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Access policy type is invalid, only SharedAccessBlobPolicy, SharedAccessQueuePolicy, and SharedAccessTablePolicy are supported. + /// + internal static string InvalidAccessPolicyType { + get { + return ResourceManager.GetString("InvalidAccessPolicyType", resourceCulture); + } + } + /// /// Looks up a localized string similar to invalid parameter combination, please see the command help.. /// @@ -1023,6 +1050,24 @@ internal static string PathTooLong { } } + /// + /// Looks up a localized string similar to Policy '{0}' already exists.. + /// + internal static string PolicyAlreadyExists { + get { + return ResourceManager.GetString("PolicyAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can not find policy '{0}'.. + /// + internal static string PolicyNotFound { + get { + return ResourceManager.GetString("PolicyNotFound", resourceCulture); + } + } + /// /// Looks up a localized string similar to Prepare to download blob.. /// @@ -1131,6 +1176,24 @@ internal static string RemoveContainerSuccessfully { } } + /// + /// Looks up a localized string similar to The remove operation of policy '{0}' has been cancelled.. + /// + internal static string RemovePolicyCancelled { + get { + return ResourceManager.GetString("RemovePolicyCancelled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removed policy '{0}' successfully.. + /// + internal static string RemovePolicySuccessfully { + get { + return ResourceManager.GetString("RemovePolicySuccessfully", resourceCulture); + } + } + /// /// Looks up a localized string similar to The remove operation of queue '{0}' has been cancelled.. /// @@ -1284,6 +1347,15 @@ internal static string StartRemoteCall { } } + /// + /// Looks up a localized string similar to Parameter -StartTime and -NoStartTime are mutually exclusive. + /// + internal static string StartTimeParameterConflict { + get { + return ResourceManager.GetString("StartTimeParameterConflict", resourceCulture); + } + } + /// /// Looks up a localized string similar to Start to upload '{0}' to blob '{1}'.. /// diff --git a/src/ServiceManagement/Storage/Commands.Storage/Resources.resx b/src/ServiceManagement/Storage/Commands.Storage/Resources.resx index d7e24e14b87b..7ad2600af092 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/Resources.resx +++ b/src/ServiceManagement/Storage/Commands.Storage/Resources.resx @@ -665,4 +665,28 @@ Failed: {2}. Valid environment names are: '{0}' and '{1}' 0 and 1 are for the correct Environment names + + Policy '{0}' already exists. + + + Can not find policy '{0}'. + + + The remove operation of policy '{0}' has been cancelled. + + + Removed policy '{0}' successfully. + + + Access policy type is invalid, only SharedAccessBlobPolicy, SharedAccessQueuePolicy, and SharedAccessTablePolicy are supported + + + Access policy name '{0}' is invalid. Valid names should be 1 through 64 characters long. + + + Parameter -ExpiryTime and -NoExpiryTime are mutually exclusive + + + Parameter -StartTime and -NoStartTime are mutually exclusive + \ No newline at end of file diff --git a/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/GetAzureStorageTableStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/GetAzureStorageTableStoredAccessPolicy.cs new file mode 100644 index 000000000000..52daf2df4c6a --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/GetAzureStorageTableStoredAccessPolicy.cs @@ -0,0 +1,104 @@ +// ---------------------------------------------------------------------------------- +// +// 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; +using System.Collections.Generic; +using System.Globalization; +using System.Management.Automation; +using System.Security.Permissions; +using System.Threading.Tasks; +using Microsoft.WindowsAzure.Commands.Storage.Common; +using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; +using Microsoft.WindowsAzure.Commands.Storage.Table; +using Microsoft.WindowsAzure.Storage.Table; + +namespace Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet +{ + [Cmdlet(VerbsCommon.Get, StorageNouns.TableStoredAccessPolicy), OutputType(typeof(SharedAccessTablePolicy))] + public class GetAzureStorageTableStoredAccessPolicyCommand : StorageCloudTableCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Table Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Table { get; set; } + + [Parameter(Position = 1, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + public string Policy {get; set; } + + /// + /// Initializes a new instance of the GetAzureStorageTableStoredAccessPolicyCommand class. + /// + public GetAzureStorageTableStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the GetAzureStorageTableStoredAccessPolicyCommand class. + /// + /// IStorageTableManagement channel + public GetAzureStorageTableStoredAccessPolicyCommand(IStorageTableManagement channel) + { + Channel = channel; + } + + internal async Task GetAzureTableStoredAccessPolicyAsync(long taskId, IStorageTableManagement localChannel, string tableName, string policyName) + { + SharedAccessTablePolicies shareAccessPolicies = await GetPoliciesAsync(localChannel, tableName, policyName); + + if (!String.IsNullOrEmpty(policyName)) + { + if (shareAccessPolicies.Keys.Contains(policyName)) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, policyName)); + } + else + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + } + else + { + foreach (string key in shareAccessPolicies.Keys) + { + OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject(shareAccessPolicies, key)); + } + } + } + + internal async Task GetPoliciesAsync(IStorageTableManagement localChannel, string tableName, string policyName) + { + CloudTable table = localChannel.GetTableReference(tableName); + TablePermissions tablePermissions = await localChannel.GetTablePermissionsAsync(table); + return tablePermissions.SharedAccessPolicies; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Table)) return; + Func taskGenerator = (taskId) => GetAzureTableStoredAccessPolicyAsync(taskId, Channel, Table, Policy); + RunTask(taskGenerator); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/NewAzureStorageTableStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/NewAzureStorageTableStoredAccessPolicy.cs new file mode 100644 index 000000000000..aebd700fde01 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/NewAzureStorageTableStoredAccessPolicy.cs @@ -0,0 +1,109 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Globalization; +using System.Management.Automation; +using System.Security.Permissions; +using System.Threading.Tasks; +using Microsoft.WindowsAzure.Commands.Storage.Common; +using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; +using Microsoft.WindowsAzure.Commands.Storage.Table; +using Microsoft.WindowsAzure.Storage.Table; + +namespace Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet +{ + [Cmdlet(VerbsCommon.New, StorageNouns.TableStoredAccessPolicy), OutputType(typeof(String))] + public class NewAzureStorageTableStoredAccessPolicyCommand : StorageCloudTableCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Table Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Table { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier. Need to be unique in the Table")] + [ValidateNotNullOrEmpty] + public string Policy {get; set;} + + [Parameter(HelpMessage = "Permissions for a table. Permissions can be any not-empty subset of \"audqr\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expiry Time")] + public DateTime? ExpiryTime { get; set; } + + + /// + /// Initializes a new instance of the NewAzureStorageTableStoredAccessPolicyCommand class. + /// + public NewAzureStorageTableStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the NewAzureStorageTableStoredAccessPolicyCommand class. + /// + /// IStorageTableManagement channel + public NewAzureStorageTableStoredAccessPolicyCommand(IStorageTableManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal string CreateAzureTableStoredAccessPolicy(IStorageTableManagement localChannel, string tableName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission) + { + + if (!NameUtil.IsValidStoredAccessPolicyName(policyName)) + { + throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName)); + } + + //Get existing permissions + CloudTable table = localChannel.GetTableReference(tableName); + TablePermissions tablePermissions = localChannel.GetTablePermissions(table); + + //Add new policy + if (tablePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceAlreadyExistException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName)); + } + + SharedAccessTablePolicy policy = new SharedAccessTablePolicy(); + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission); + tablePermissions.SharedAccessPolicies.Add(policyName, policy); + + //Set permissions back to table + localChannel.SetTablePermissions(table, tablePermissions); + return policyName; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Table) || String.IsNullOrEmpty(Policy)) return; + string resultPolicy = CreateAzureTableStoredAccessPolicy(Channel, Table, Policy, StartTime, ExpiryTime, Permission); + WriteObject(resultPolicy); + } + } +} diff --git a/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/RemoveAzureStorageTableStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/RemoveAzureStorageTableStoredAccessPolicy.cs new file mode 100644 index 000000000000..28015a704842 --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/RemoveAzureStorageTableStoredAccessPolicy.cs @@ -0,0 +1,125 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Globalization; +using System.Management.Automation; +using System.Security.Permissions; +using System.Threading.Tasks; +using Microsoft.WindowsAzure.Commands.Storage.Common; +using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; +using Microsoft.WindowsAzure.Commands.Storage.Table; +using Microsoft.WindowsAzure.Storage.Table; + +namespace Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet +{ + [Cmdlet(VerbsCommon.Remove, StorageNouns.TableStoredAccessPolicy, SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High), OutputType(typeof(Boolean))] + public class RemoveAzureStorageTableStoredAccessPolicyCommand : StorageCloudTableCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Table Name", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Table { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier", + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Policy {get; set; } + + [Parameter(HelpMessage = "Force to remove the policy without confirm")] + public SwitchParameter Force { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Return whether the specified policy is successfully removed")] + public SwitchParameter PassThru { get; set; } + + /// + /// Initializes a new instance of the RemoveAzureStorageTableStoredAccessPolicyCommand class. + /// + public RemoveAzureStorageTableStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the RemoveAzureStorageTableStoredAccessPolicyCommand class. + /// + /// IStorageTableManagement channel + public RemoveAzureStorageTableStoredAccessPolicyCommand(IStorageTableManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal virtual bool ConfirmRemove(string message) + { + return ShouldProcess(message); + } + + internal bool RemoveAzureTableStoredAccessPolicy(IStorageTableManagement localChannel, string tableName, string policyName) + { + bool success = false; + string result = string.Empty; + + //Get existing permissions + CloudTable table = localChannel.GetTableReference(tableName); + TablePermissions tablePermissions = localChannel.GetTablePermissions(table); + + //remove the specified policy + if (!tablePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + if (this.Force || ConfirmRemove(policyName)) + { + tablePermissions.SharedAccessPolicies.Remove(policyName); + localChannel.SetTablePermissions(table, tablePermissions); + success = true; + } + + return success; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Table) || String.IsNullOrEmpty(Policy)) return; + bool success = RemoveAzureTableStoredAccessPolicy(Channel, Table, Policy); + string result = string.Empty; + + if (success) + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicySuccessfully, Policy); + } + else + { + result = String.Format(CultureInfo.CurrentCulture, Resources.RemovePolicyCancelled, Policy); + } + + WriteVerbose(result); + + if (PassThru) + { + WriteObject(success); + } + } + } +} + diff --git a/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/SetAzureStorageTableStoredAccessPolicy.cs b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/SetAzureStorageTableStoredAccessPolicy.cs new file mode 100644 index 000000000000..20b27db7efdd --- /dev/null +++ b/src/ServiceManagement/Storage/Commands.Storage/Table/Cmdlet/SetAzureStorageTableStoredAccessPolicy.cs @@ -0,0 +1,123 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Globalization; +using System.Management.Automation; +using System.Security.Permissions; +using System.Threading.Tasks; +using Microsoft.WindowsAzure.Commands.Storage.Common; +using Microsoft.WindowsAzure.Commands.Storage.Model.Contract; +using Microsoft.WindowsAzure.Commands.Storage.Table; +using Microsoft.WindowsAzure.Storage.Table; + +namespace Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet +{ + [Cmdlet(VerbsCommon.Set, StorageNouns.TableStoredAccessPolicy), OutputType(typeof(String))] + public class SetAzureStorageTableStoredAccessPolicyCommand : StorageCloudTableCmdletBase + { + [Alias("N", "Name")] + [Parameter(Position = 0, Mandatory = true, + HelpMessage = "Table Name", + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true)] + [ValidateNotNullOrEmpty] + public string Table { get; set; } + + [Parameter(Position = 1, Mandatory = true, + HelpMessage = "Policy Identifier")] + [ValidateNotNullOrEmpty] + public string Policy { get; set; } + + [Parameter(HelpMessage = "Permissions for a table. Permissions can be any not-empty subset of \"audqr\".")] + public string Permission { get; set; } + + [Parameter(HelpMessage = "Start Time")] + public DateTime? StartTime { get; set; } + + [Parameter(HelpMessage = "Expirty Time")] + public DateTime? ExpiryTime { get; set; } + + [Parameter(HelpMessage = "Set StartTime as null for the policy")] + public SwitchParameter NoStartTime { get; set; } + + [Parameter(HelpMessage = "Set ExpiryTime as null for the policy")] + public SwitchParameter NoExpiryTime { get; set; } + + /// + /// Initializes a new instance of the SetAzureStorageTableStoredAccessPolicyCommand class. + /// + public SetAzureStorageTableStoredAccessPolicyCommand() + : this(null) + { + } + + /// + /// Initializes a new instance of the SetAzureStorageTableStoredAccessPolicyCommand class. + /// + /// IStorageTableManagement channel + public SetAzureStorageTableStoredAccessPolicyCommand(IStorageTableManagement channel) + { + Channel = channel; + EnableMultiThread = false; + } + + internal string SetAzureTableStoredAccessPolicy(IStorageTableManagement localChannel, string tableName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission, bool noStartTime, bool noExpiryTime) + { + DateTime? startTimeToSet = startTime; + DateTime? expiryTimetoSet = expiryTime; + + //Get existing permissions + CloudTable table = localChannel.GetTableReference(Table); + TablePermissions tablePermissions = localChannel.GetTablePermissions(table); + + //Set the policy with new value + if (!tablePermissions.SharedAccessPolicies.Keys.Contains(policyName)) + { + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName)); + } + + SharedAccessTablePolicy policy = tablePermissions.SharedAccessPolicies[policyName]; + AccessPolicyHelper.SetupAccessPolicy(policy, startTime, expiryTime, permission, noStartTime, noExpiryTime); + tablePermissions.SharedAccessPolicies[policyName] = policy; + + //Set permission back to table + localChannel.SetTablePermissions(table, tablePermissions); + WriteObject(AccessPolicyHelper.ConstructPolicyOutputPSObject(tablePermissions.SharedAccessPolicies, policyName)); + return policyName; + } + + /// + /// Execute command + /// + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + public override void ExecuteCmdlet() + { + if (String.IsNullOrEmpty(Table) || String.IsNullOrEmpty(Policy)) return; + if (NoStartTime && StartTime != null) + { + throw new ArgumentException(Resources.StartTimeParameterConflict); + } + + if (NoExpiryTime && ExpiryTime != null) + { + throw new ArgumentException(Resources.ExpiryTimeParameterConflict); + } + + SetAzureTableStoredAccessPolicy(Channel, Table, Policy, StartTime, ExpiryTime, Permission, NoStartTime, NoExpiryTime); + } + } +} + + diff --git a/src/ServiceManagement/Storage/Commands.Storage/packages.config b/src/ServiceManagement/Storage/Commands.Storage/packages.config index abc5215e8944..bdea9420592b 100644 --- a/src/ServiceManagement/Storage/Commands.Storage/packages.config +++ b/src/ServiceManagement/Storage/Commands.Storage/packages.config @@ -1,15 +1,20 @@  + + + + + + - - + diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj index fc40b9b1787d..e8ab5c18c638 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj @@ -35,6 +35,22 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -44,6 +60,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -57,18 +80,11 @@ ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.14.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll - True + + ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.16.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll False diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config index 5e8c017f9629..6a1d321c8bcf 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config @@ -1,15 +1,20 @@  + + + + + + - - - + + diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj index 6eae3bc8d116..f084b7c8e9e5 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj @@ -45,6 +45,23 @@ false + + ..\..\..\packages\Hyak.Common.1.0.1\lib\portable-net403+win+wpa81\Hyak.Common.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\..\packages\Microsoft.Azure.Common.Extensions.0.13.0-preview\lib\net45\Microsoft.Azure.Common.Extensions.dll + + + ..\..\..\packages\Microsoft.Azure.Common.2.0.1\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + False + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.12.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll @@ -54,6 +71,13 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + False + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.11.10918.1222\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -66,23 +90,16 @@ False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.dll - - - False - ..\..\..\packages\Microsoft.WindowsAzure.Common.1.4.1\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.3\lib\net40\Microsoft.WindowsAzure.Configuration.dll - + False - ..\..\..\packages\Microsoft.WindowsAzure.Management.2.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.0.0\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.14.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll + + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.TrafficManager.0.16.0-preview\lib\net40\Microsoft.WindowsAzure.Management.TrafficManager.dll ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll @@ -143,10 +160,6 @@ - - {b95c489c-8cb7-4dcf-8d5f-b9aebdbbaf89} - Common.Extensions - {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs index 5c25d4a1eefd..50a60c5de37b 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs @@ -21,6 +21,8 @@ using Microsoft.WindowsAzure.Management.TrafficManager; using Microsoft.WindowsAzure.Management.TrafficManager.Models; using Microsoft.Azure.Common.Extensions; +using Microsoft.Azure; +using Hyak.Common; namespace Microsoft.WindowsAzure.Commands.TrafficManager.Utilities { @@ -73,7 +75,7 @@ public ProfileWithDefinition AssignDefinitionToProfile(string profileName, Defin public void RemoveTrafficManagerProfile(string profileName) { - OperationResponse resp = this.Client.Profiles.Delete(profileName); + AzureOperationResponse resp = this.Client.Profiles.Delete(profileName); } public ProfileWithDefinition GetTrafficManagerProfileWithDefinition(string profileName) diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config index 11f921bdd596..79ad7aea5fe6 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config @@ -1,17 +1,21 @@  + + + + + + - - - - + + \ No newline at end of file