From 331ec2cb7870d59b378b9bd187ea30fc080949e7 Mon Sep 17 00:00:00 2001 From: Heath Stewart Date: Mon, 17 Jul 2023 15:09:52 -0700 Subject: [PATCH] Remove deprecated Attestation SDK Relates to #37660 --- .../Microsoft.Azure.Attestation/CHANGELOG.md | 5 - .../Microsoft.Azure.Attestation.sln | 79 -- .../src/Customized/AttestationClient.cs | 41 - .../src/Customized/AttestationCredentials.cs | 52 - .../src/Customized/AttestationPolicy.cs | 13 - .../src/Customized/CustomDelegatingHandler.cs | 30 - .../src/Generated/AttestationClient.cs | 257 ----- .../src/Generated/IAttestationClient.cs | 87 -- .../IMetadataConfigurationOperations.cs | 54 - .../IPolicyCertificatesOperations.cs | 108 -- .../src/Generated/IPolicyOperations.cs | 146 --- .../ISigningCertificatesOperations.cs | 54 - .../MetadataConfigurationOperations.cs | 250 ----- ...tadataConfigurationOperationsExtensions.cs | 67 -- .../src/Generated/Models/AttestationPolicy.cs | 49 - .../src/Generated/Models/TeeKind.cs | 36 - .../Generated/PolicyCertificatesOperations.cs | 733 ------------- .../PolicyCertificatesOperationsExtensions.cs | 157 --- .../src/Generated/PolicyOperations.cs | 992 ------------------ .../Generated/PolicyOperationsExtensions.cs | 223 ---- .../Generated/SdkInfo_AttestationClient.cs | 41 - .../SigningCertificatesOperations.cs | 249 ----- ...SigningCertificatesOperationsExtensions.cs | 65 -- .../src/Microsoft.Azure.Attestation.csproj | 14 - .../src/generate.ps1 | 1 - .../BasicTests/AttestationOperationsTests.cs | 261 ----- .../BasicTests/AttestationTestFixture.cs | 67 -- .../tests/DataFiles/cert1.pem | 3 - .../tests/DataFiles/cert2.signed.add.txt | 1 - .../Microsoft.Azure.Attestation.Tests.csproj | 40 - .../RetrieveMetadataConfiguration.json | 42 - .../RetrieveMetadataSigningKeys.json | 42 - .../UpdatePolicy.json | 168 --- .../UpdatePolicyCertificates.json | 162 --- sdk/attestation/ci.yml | 2 - sdk/attestation/service.projects | 6 - 36 files changed, 4597 deletions(-) delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/CHANGELOG.md delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/Microsoft.Azure.Attestation.sln delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationClient.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationCredentials.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationPolicy.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Customized/CustomDelegatingHandler.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/AttestationClient.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IAttestationClient.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IMetadataConfigurationOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyCertificatesOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/ISigningCertificatesOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperationsExtensions.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/AttestationPolicy.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/TeeKind.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperationsExtensions.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperationsExtensions.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SdkInfo_AttestationClient.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperations.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperationsExtensions.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/Microsoft.Azure.Attestation.csproj delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/src/generate.ps1 delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationOperationsTests.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationTestFixture.cs delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert1.pem delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert2.signed.add.txt delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/Microsoft.Azure.Attestation.Tests.csproj delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataConfiguration.json delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataSigningKeys.json delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicy.json delete mode 100644 sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicyCertificates.json delete mode 100644 sdk/attestation/service.projects diff --git a/sdk/attestation/Microsoft.Azure.Attestation/CHANGELOG.md b/sdk/attestation/Microsoft.Azure.Attestation/CHANGELOG.md deleted file mode 100644 index 0cce9ab6cda5a..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -# Release History - -## 0.10.0-preview.1 (Unreleased) - - diff --git a/sdk/attestation/Microsoft.Azure.Attestation/Microsoft.Azure.Attestation.sln b/sdk/attestation/Microsoft.Azure.Attestation/Microsoft.Azure.Attestation.sln deleted file mode 100644 index 8bedfd93407a8..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/Microsoft.Azure.Attestation.sln +++ /dev/null @@ -1,79 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.Attestation.Tests", "tests\Microsoft.Azure.Attestation.Tests.csproj", "{000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.Attestation", "src\Microsoft.Azure.Attestation.csproj", "{7CF438B8-83D1-4E00-B272-0EF405DD311A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Rest.ClientRuntime.Azure.TestFramework", "..\..\mgmtcommon\TestFramework\ClientRuntime.Azure.TestFramework\Microsoft.Rest.ClientRuntime.Azure.TestFramework.csproj", "{977EF2B2-66B7-4D6D-89D5-3C254663A009}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Azure.Test.HttpRecorder", "..\..\mgmtcommon\TestFramework\Microsoft.Azure.Test.HttpRecorder\Microsoft.Azure.Test.HttpRecorder.csproj", "{AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Net45-Debug|Any CPU = Net45-Debug|Any CPU - Net45-Release|Any CPU = Net45-Release|Any CPU - Portable-Debug|Any CPU = Portable-Debug|Any CPU - Portable-Release|Any CPU = Portable-Release|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Net45-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Net45-Debug|Any CPU.Build.0 = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Net45-Release|Any CPU.ActiveCfg = Release|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Net45-Release|Any CPU.Build.0 = Release|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Portable-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Portable-Debug|Any CPU.Build.0 = Debug|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Portable-Release|Any CPU.ActiveCfg = Release|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Portable-Release|Any CPU.Build.0 = Release|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {000C5AD2-6CC2-4D33-8BB6-6B79D89C5BD0}.Release|Any CPU.Build.0 = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Net45-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Net45-Debug|Any CPU.Build.0 = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Net45-Release|Any CPU.ActiveCfg = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Net45-Release|Any CPU.Build.0 = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Portable-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Portable-Debug|Any CPU.Build.0 = Debug|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Portable-Release|Any CPU.ActiveCfg = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Portable-Release|Any CPU.Build.0 = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7CF438B8-83D1-4E00-B272-0EF405DD311A}.Release|Any CPU.Build.0 = Release|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Debug|Any CPU.Build.0 = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Net45-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Net45-Debug|Any CPU.Build.0 = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Net45-Release|Any CPU.ActiveCfg = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Net45-Release|Any CPU.Build.0 = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Portable-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Portable-Debug|Any CPU.Build.0 = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Portable-Release|Any CPU.ActiveCfg = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Portable-Release|Any CPU.Build.0 = Debug|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Release|Any CPU.ActiveCfg = Release|Any CPU - {977EF2B2-66B7-4D6D-89D5-3C254663A009}.Release|Any CPU.Build.0 = Release|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Net45-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Net45-Debug|Any CPU.Build.0 = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Net45-Release|Any CPU.ActiveCfg = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Net45-Release|Any CPU.Build.0 = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Portable-Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Portable-Debug|Any CPU.Build.0 = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Portable-Release|Any CPU.ActiveCfg = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Portable-Release|Any CPU.Build.0 = Debug|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AE61C687-81AE-4BA4-BBBA-8CEE2015A3B7}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {26BF4D94-68E2-4AA1-AD0F-A7026CBB2013} - EndGlobalSection -EndGlobal diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationClient.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationClient.cs deleted file mode 100644 index cb18aab48ac42..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationClient.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - - -using Microsoft.Rest; -using Microsoft.Rest.Azure; -using System.Net.Http; - -namespace Microsoft.Azure.Attestation -{ - public partial class AttestationClient : ServiceClient, IAttestationClient, IAzureClient - { - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Required. Subscription credentials which uniquely identify client subscription. - /// - /// - /// Thrown when a required parameter is null - /// - public AttestationClient(ServiceClientCredentials credentials) - : this(credentials, (DelegatingHandler[])null) - { - } - - partial void CustomInitialize() - { - var firstHandler = this.FirstMessageHandler as DelegatingHandler; - if (firstHandler == null) return; - - var customHandler = new CustomDelegatingHandler - { - InnerHandler = firstHandler.InnerHandler, - Client = this, - }; - - firstHandler.InnerHandler = customHandler; - } - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationCredentials.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationCredentials.cs deleted file mode 100644 index 0921084ebd57e..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationCredentials.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -using Microsoft.Rest; -using System; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; - -namespace Microsoft.Azure.Attestation -{ - /// - /// The Attestation credential class that implements - /// - public class AttestationCredentials : ServiceClientCredentials - { - /// - /// Bearer token - /// - public string Token { get; set; } - - /// - /// Constructor. - /// - /// token. - public AttestationCredentials(string token) - { - if (string.IsNullOrEmpty(token)) - { - throw new ArgumentException($"{nameof(token)} must not be null or empty"); - } - - this.Token = token; - } - - /// - /// ProcessHttpRequestAsync. - /// - /// request. - /// cancellationToken. - public override Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - if (request == null) - { - throw new ArgumentNullException(nameof(request)); - } - - request.Headers.Add("Authorization", $"Bearer {Token}"); - return Task.FromResult(true); - } - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationPolicy.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationPolicy.cs deleted file mode 100644 index 47dff9f2a88ac..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/AttestationPolicy.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -using System.Diagnostics.CodeAnalysis; - -namespace Microsoft.Azure.Attestation.Models -{ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - public partial class AttestationPolicy -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member - { - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/CustomDelegatingHandler.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/CustomDelegatingHandler.cs deleted file mode 100644 index 52b59dad2cdcd..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Customized/CustomDelegatingHandler.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -using System.Threading; -using System.Threading.Tasks; -using System.Net.Http; - -namespace Microsoft.Azure.Attestation -{ - /// - /// The Attestation credential class that implements - /// - public class CustomDelegatingHandler : DelegatingHandler - { - internal AttestationClient Client { get; set; } - - /// - /// SendAsync. - /// - /// request. - /// cancellationToken. - protected async override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - // Call the inner handler. - var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); - - return response; - } - } -} \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/AttestationClient.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/AttestationClient.cs deleted file mode 100644 index 301447ef4ed53..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/AttestationClient.cs +++ /dev/null @@ -1,257 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Microsoft.Rest.Serialization; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Net.Http; - - /// - /// Describes the interface for the per-tenant enclave service. - /// - public partial class AttestationClient : ServiceClient, IAttestationClient, IAzureClient - { - /// - /// The base URI of the service. - /// - internal string BaseUri {get; set;} - - /// - /// Gets or sets json serialization settings. - /// - public JsonSerializerSettings SerializationSettings { get; private set; } - - /// - /// Gets or sets json deserialization settings. - /// - public JsonSerializerSettings DeserializationSettings { get; private set; } - - /// - /// Credentials needed for the client to connect to Azure. - /// - public ServiceClientCredentials Credentials { get; private set; } - - /// - /// Client API version. - /// - public string ApiVersion { get; private set; } - - /// - /// The preferred language for the response. - /// - public string AcceptLanguage { get; set; } - - /// - /// The retry timeout in seconds for Long Running Operations. Default value is - /// 30. - /// - public int? LongRunningOperationRetryTimeout { get; set; } - - /// - /// Whether a unique x-ms-client-request-id should be generated. When set to - /// true a unique x-ms-client-request-id value is generated and included in - /// each request. Default is true. - /// - public bool? GenerateClientRequestId { get; set; } - - /// - /// Gets the IPolicyOperations. - /// - public virtual IPolicyOperations Policy { get; private set; } - - /// - /// Gets the IPolicyCertificatesOperations. - /// - public virtual IPolicyCertificatesOperations PolicyCertificates { get; private set; } - - /// - /// Gets the ISigningCertificatesOperations. - /// - public virtual ISigningCertificatesOperations SigningCertificates { get; private set; } - - /// - /// Gets the IMetadataConfigurationOperations. - /// - public virtual IMetadataConfigurationOperations MetadataConfiguration { get; private set; } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// HttpClient to be used - /// - /// - /// True: will dispose the provided httpClient on calling AttestationClient.Dispose(). False: will not dispose provided httpClient - protected AttestationClient(HttpClient httpClient, bool disposeHttpClient) : base(httpClient, disposeHttpClient) - { - Initialize(); - } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - protected AttestationClient(params DelegatingHandler[] handlers) : base(handlers) - { - Initialize(); - } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Optional. The http client handler used to handle http transport. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - protected AttestationClient(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) - { - Initialize(); - } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Required. Credentials needed for the client to connect to Azure. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - /// - /// Thrown when a required parameter is null - /// - public AttestationClient(ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers) - { - if (credentials == null) - { - throw new System.ArgumentNullException("credentials"); - } - Credentials = credentials; - if (Credentials != null) - { - Credentials.InitializeServiceClient(this); - } - } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Required. Credentials needed for the client to connect to Azure. - /// - /// - /// HttpClient to be used - /// - /// - /// True: will dispose the provided httpClient on calling AttestationClient.Dispose(). False: will not dispose provided httpClient - /// - /// Thrown when a required parameter is null - /// - public AttestationClient(ServiceClientCredentials credentials, HttpClient httpClient, bool disposeHttpClient) : this(httpClient, disposeHttpClient) - { - if (credentials == null) - { - throw new System.ArgumentNullException("credentials"); - } - Credentials = credentials; - if (Credentials != null) - { - Credentials.InitializeServiceClient(this); - } - } - - /// - /// Initializes a new instance of the AttestationClient class. - /// - /// - /// Required. Credentials needed for the client to connect to Azure. - /// - /// - /// Optional. The http client handler used to handle http transport. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - /// - /// Thrown when a required parameter is null - /// - public AttestationClient(ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers) - { - if (credentials == null) - { - throw new System.ArgumentNullException("credentials"); - } - Credentials = credentials; - if (Credentials != null) - { - Credentials.InitializeServiceClient(this); - } - } - - /// - /// An optional partial-method to perform custom initialization. - /// - partial void CustomInitialize(); - /// - /// Initializes client properties. - /// - private void Initialize() - { - Policy = new PolicyOperations(this); - PolicyCertificates = new PolicyCertificatesOperations(this); - SigningCertificates = new SigningCertificatesOperations(this); - MetadataConfiguration = new MetadataConfigurationOperations(this); - BaseUri = "{tenantBaseUrl}"; - ApiVersion = "2018-09-01-preview"; - AcceptLanguage = "en-US"; - LongRunningOperationRetryTimeout = 30; - GenerateClientRequestId = true; - SerializationSettings = new JsonSerializerSettings - { - Formatting = Newtonsoft.Json.Formatting.Indented, - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - DeserializationSettings = new JsonSerializerSettings - { - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - CustomInitialize(); - DeserializationSettings.Converters.Add(new CloudErrorJsonConverter()); - } - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IAttestationClient.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IAttestationClient.cs deleted file mode 100644 index a51b90d6877de..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IAttestationClient.cs +++ /dev/null @@ -1,87 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using Newtonsoft.Json; - - /// - /// Describes the interface for the per-tenant enclave service. - /// - public partial interface IAttestationClient : System.IDisposable - { - /// - /// The base URI of the service. - /// - - /// - /// Gets or sets json serialization settings. - /// - JsonSerializerSettings SerializationSettings { get; } - - /// - /// Gets or sets json deserialization settings. - /// - JsonSerializerSettings DeserializationSettings { get; } - - /// - /// Credentials needed for the client to connect to Azure. - /// - ServiceClientCredentials Credentials { get; } - - /// - /// Client API version. - /// - string ApiVersion { get; } - - /// - /// The preferred language for the response. - /// - string AcceptLanguage { get; set; } - - /// - /// The retry timeout in seconds for Long Running Operations. Default - /// value is 30. - /// - int? LongRunningOperationRetryTimeout { get; set; } - - /// - /// Whether a unique x-ms-client-request-id should be generated. When - /// set to true a unique x-ms-client-request-id value is generated and - /// included in each request. Default is true. - /// - bool? GenerateClientRequestId { get; set; } - - - /// - /// Gets the IPolicyOperations. - /// - IPolicyOperations Policy { get; } - - /// - /// Gets the IPolicyCertificatesOperations. - /// - IPolicyCertificatesOperations PolicyCertificates { get; } - - /// - /// Gets the ISigningCertificatesOperations. - /// - ISigningCertificatesOperations SigningCertificates { get; } - - /// - /// Gets the IMetadataConfigurationOperations. - /// - IMetadataConfigurationOperations MetadataConfiguration { get; } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IMetadataConfigurationOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IMetadataConfigurationOperations.cs deleted file mode 100644 index 76672f3421ad5..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IMetadataConfigurationOperations.cs +++ /dev/null @@ -1,54 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// MetadataConfigurationOperations operations. - /// - public partial interface IMetadataConfigurationOperations - { - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation - /// Service - /// - /// - /// Retrieves metadata about the attestation signing keys in use by the - /// attestation service - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyCertificatesOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyCertificatesOperations.cs deleted file mode 100644 index 9ef216e1b229d..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyCertificatesOperations.cs +++ /dev/null @@ -1,108 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PolicyCertificatesOperations operations. - /// - public partial interface IPolicyCertificatesOperations - { - /// - /// Retrieves the set of certificates used to express policy for the - /// current tenant. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Adds a new attestation policy certificate to the set of policy - /// management certificates. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named - /// "aas-policyCertificate" whose value is an RFC7517 JSON Web Key - /// which specifies a new key to add. The RFC7519 JWT must be signed - /// with one of the existing signing certificates - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> AddWithHttpMessagesAsync(string tenantBaseUrl, string policyCertificateToAdd, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Removes the specified policy management certificate. Note that the - /// final policy management certificate cannot be removed. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named - /// "aas-policyCertificate" whose value is an RFC7517 JSON Web Key - /// which specifies a new key to update. The RFC7519 JWT must be signed - /// with one of the existing signing certificates - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> RemoveWithHttpMessagesAsync(string tenantBaseUrl, string policyCertificateToRemove, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyOperations.cs deleted file mode 100644 index 6d7936ceb5f5d..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/IPolicyOperations.cs +++ /dev/null @@ -1,146 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PolicyOperations operations. - /// - public partial interface IPolicyOperations - { - /// - /// Accepts a new policy document and returns a JWT which expresses - /// used in preparation to set attestation policy. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate - /// the evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature (See RFC7515) expressing the new policy - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> PrepareToSetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string policyJws, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieves the current policy for a given kind of TEE. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate - /// the evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string tenantBaseUrl, string tee, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Sets the policy for a given kind of TEE. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate - /// the evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JWT Expressing the new policy - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> SetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string newAttestationPolicy, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Resets the attestation policy for the specified tenant and reverts - /// to the default policy. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate - /// the evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature with an empty policy document - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> ResetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string policyJws, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/ISigningCertificatesOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/ISigningCertificatesOperations.cs deleted file mode 100644 index 055aa18571861..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/ISigningCertificatesOperations.cs +++ /dev/null @@ -1,54 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// SigningCertificatesOperations operations. - /// - public partial interface ISigningCertificatesOperations - { - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation - /// Service - /// - /// - /// Retrieves attestation signing keys in use by the attestation - /// service - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperations.cs deleted file mode 100644 index 3dfa06664d3b0..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperations.cs +++ /dev/null @@ -1,250 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// MetadataConfigurationOperations operations. - /// - internal partial class MetadataConfigurationOperations : IServiceOperations, IMetadataConfigurationOperations - { - /// - /// Initializes a new instance of the MetadataConfigurationOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal MetadataConfigurationOperations(AttestationClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the AttestationClient - /// - public AttestationClient Client { get; private set; } - - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves metadata about the attestation signing keys in use by the - /// attestation service - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + ".well-known/openid-configuration"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperationsExtensions.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperationsExtensions.cs deleted file mode 100644 index 3d0c27993d7a4..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/MetadataConfigurationOperationsExtensions.cs +++ /dev/null @@ -1,67 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for MetadataConfigurationOperations. - /// - public static partial class MetadataConfigurationOperationsExtensions - { - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves metadata about the attestation signing keys in use by the - /// attestation service - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - public static object Get(this IMetadataConfigurationOperations operations, string tenantBaseUrl) - { - return operations.GetAsync(tenantBaseUrl).GetAwaiter().GetResult(); - } - - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves metadata about the attestation signing keys in use by the - /// attestation service - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IMetadataConfigurationOperations operations, string tenantBaseUrl, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(tenantBaseUrl, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/AttestationPolicy.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/AttestationPolicy.cs deleted file mode 100644 index 07c3ff18252f7..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/AttestationPolicy.cs +++ /dev/null @@ -1,49 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation.Models -{ - using Newtonsoft.Json; - using System.Linq; - - public partial class AttestationPolicy - { - /// - /// Initializes a new instance of the AttestationPolicy class. - /// - public AttestationPolicy() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AttestationPolicy class. - /// - /// String-encoded attestation policy - /// document. - public AttestationPolicy(string policy = default(string)) - { - Policy = policy; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets string-encoded attestation policy document. - /// - [JsonProperty(PropertyName = "policy")] - public string Policy { get; set; } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/TeeKind.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/TeeKind.cs deleted file mode 100644 index 91883aba213f4..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/Models/TeeKind.cs +++ /dev/null @@ -1,36 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation.Models -{ - - /// - /// Defines values for TeeKind. - /// - public static class TeeKind - { - /// - /// Intel Software Guard eXtensions - /// - public const string SgxEnclave = "SgxEnclave"; - /// - /// OpenEnclave extensions to SGX - /// - public const string OpenEnclave = "OpenEnclave"; - /// - /// IoT Edge validation - /// - public const string CyResComponent = "CyResComponent"; - /// - /// VSM Enclave Attestation - /// - public const string VSMEnclave = "VSMEnclave"; - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperations.cs deleted file mode 100644 index daafe62e8d424..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperations.cs +++ /dev/null @@ -1,733 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PolicyCertificatesOperations operations. - /// - internal partial class PolicyCertificatesOperations : IServiceOperations, IPolicyCertificatesOperations - { - /// - /// Initializes a new instance of the PolicyCertificatesOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal PolicyCertificatesOperations(AttestationClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the AttestationClient - /// - public AttestationClient Client { get; private set; } - - /// - /// Retrieves the set of certificates used to express policy for the current - /// tenant. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/certificates"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Adds a new attestation policy certificate to the set of policy management - /// certificates. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to add. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> AddWithHttpMessagesAsync(string tenantBaseUrl, string policyCertificateToAdd, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (policyCertificateToAdd == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "policyCertificateToAdd"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("policyCertificateToAdd", policyCertificateToAdd); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Add", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/certificates"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(policyCertificateToAdd != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(policyCertificateToAdd, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Removes the specified policy management certificate. Note that the final - /// policy management certificate cannot be removed. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to update. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> RemoveWithHttpMessagesAsync(string tenantBaseUrl, string policyCertificateToRemove, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (policyCertificateToRemove == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "policyCertificateToRemove"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("policyCertificateToRemove", policyCertificateToRemove); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Remove", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/certificates"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(policyCertificateToRemove != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(policyCertificateToRemove, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperationsExtensions.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperationsExtensions.cs deleted file mode 100644 index 0e9705d21dace..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyCertificatesOperationsExtensions.cs +++ /dev/null @@ -1,157 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for PolicyCertificatesOperations. - /// - public static partial class PolicyCertificatesOperationsExtensions - { - /// - /// Retrieves the set of certificates used to express policy for the current - /// tenant. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - public static object Get(this IPolicyCertificatesOperations operations, string tenantBaseUrl) - { - return operations.GetAsync(tenantBaseUrl).GetAwaiter().GetResult(); - } - - /// - /// Retrieves the set of certificates used to express policy for the current - /// tenant. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPolicyCertificatesOperations operations, string tenantBaseUrl, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(tenantBaseUrl, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Adds a new attestation policy certificate to the set of policy management - /// certificates. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to add. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - public static object Add(this IPolicyCertificatesOperations operations, string tenantBaseUrl, string policyCertificateToAdd) - { - return operations.AddAsync(tenantBaseUrl, policyCertificateToAdd).GetAwaiter().GetResult(); - } - - /// - /// Adds a new attestation policy certificate to the set of policy management - /// certificates. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to add. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - /// - /// The cancellation token. - /// - public static async Task AddAsync(this IPolicyCertificatesOperations operations, string tenantBaseUrl, string policyCertificateToAdd, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.AddWithHttpMessagesAsync(tenantBaseUrl, policyCertificateToAdd, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Removes the specified policy management certificate. Note that the final - /// policy management certificate cannot be removed. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to update. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - public static object Remove(this IPolicyCertificatesOperations operations, string tenantBaseUrl, string policyCertificateToRemove) - { - return operations.RemoveAsync(tenantBaseUrl, policyCertificateToRemove).GetAwaiter().GetResult(); - } - - /// - /// Removes the specified policy management certificate. Note that the final - /// policy management certificate cannot be removed. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// An RFC7519 JSON Web Token containing a claim named "aas-policyCertificate" - /// whose value is an RFC7517 JSON Web Key which specifies a new key to update. - /// The RFC7519 JWT must be signed with one of the existing signing - /// certificates - /// - /// - /// The cancellation token. - /// - public static async Task RemoveAsync(this IPolicyCertificatesOperations operations, string tenantBaseUrl, string policyCertificateToRemove, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.RemoveWithHttpMessagesAsync(tenantBaseUrl, policyCertificateToRemove, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperations.cs deleted file mode 100644 index a45f4a2acb531..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperations.cs +++ /dev/null @@ -1,992 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PolicyOperations operations. - /// - internal partial class PolicyOperations : IServiceOperations, IPolicyOperations - { - /// - /// Initializes a new instance of the PolicyOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal PolicyOperations(AttestationClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the AttestationClient - /// - public AttestationClient Client { get; private set; } - - /// - /// Accepts a new policy document and returns a JWT which expresses used in - /// preparation to set attestation policy. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature (See RFC7515) expressing the new policy - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> PrepareToSetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string policyJws, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (tee == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tee"); - } - if (policyJws == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "policyJws"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("tee", tee); - tracingParameters.Add("policyJws", policyJws); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "PrepareToSet", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/updatepolicy"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (tee != null) - { - _queryParameters.Add(string.Format("tee={0}", System.Uri.EscapeDataString(tee))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(policyJws != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(policyJws, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("text/plain"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieves the current policy for a given kind of TEE. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string tenantBaseUrl, string tee, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (tee == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tee"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("tee", tee); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/current"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (tee != null) - { - _queryParameters.Add(string.Format("tee={0}", System.Uri.EscapeDataString(tee))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Sets the policy for a given kind of TEE. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JWT Expressing the new policy - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> SetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string newAttestationPolicy, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (tee == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tee"); - } - if (newAttestationPolicy == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "newAttestationPolicy"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("tee", tee); - tracingParameters.Add("newAttestationPolicy", newAttestationPolicy); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Set", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/current"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (tee != null) - { - _queryParameters.Add(string.Format("tee={0}", System.Uri.EscapeDataString(tee))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(newAttestationPolicy != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(newAttestationPolicy, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("text/plain"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Resets the attestation policy for the specified tenant and reverts to the - /// default policy. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature with an empty policy document - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> ResetWithHttpMessagesAsync(string tenantBaseUrl, string tee, string policyJws, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - if (tee == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tee"); - } - if (policyJws == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "policyJws"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("tee", tee); - tracingParameters.Add("policyJws", policyJws); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Reset", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "operations/policy/current"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); - } - if (tee != null) - { - _queryParameters.Add(string.Format("tee={0}", System.Uri.EscapeDataString(tee))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(policyJws != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(policyJws, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("text/plain"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400 && (int)_statusCode != 401) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 401) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperationsExtensions.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperationsExtensions.cs deleted file mode 100644 index 451827c7b8c67..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/PolicyOperationsExtensions.cs +++ /dev/null @@ -1,223 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for PolicyOperations. - /// - public static partial class PolicyOperationsExtensions - { - /// - /// Accepts a new policy document and returns a JWT which expresses used in - /// preparation to set attestation policy. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature (See RFC7515) expressing the new policy - /// - public static object PrepareToSet(this IPolicyOperations operations, string tenantBaseUrl, string tee, string policyJws) - { - return operations.PrepareToSetAsync(tenantBaseUrl, tee, policyJws).GetAwaiter().GetResult(); - } - - /// - /// Accepts a new policy document and returns a JWT which expresses used in - /// preparation to set attestation policy. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature (See RFC7515) expressing the new policy - /// - /// - /// The cancellation token. - /// - public static async Task PrepareToSetAsync(this IPolicyOperations operations, string tenantBaseUrl, string tee, string policyJws, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.PrepareToSetWithHttpMessagesAsync(tenantBaseUrl, tee, policyJws, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Retrieves the current policy for a given kind of TEE. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - public static object Get(this IPolicyOperations operations, string tenantBaseUrl, string tee) - { - return operations.GetAsync(tenantBaseUrl, tee).GetAwaiter().GetResult(); - } - - /// - /// Retrieves the current policy for a given kind of TEE. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPolicyOperations operations, string tenantBaseUrl, string tee, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(tenantBaseUrl, tee, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Sets the policy for a given kind of TEE. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JWT Expressing the new policy - /// - public static object Set(this IPolicyOperations operations, string tenantBaseUrl, string tee, string newAttestationPolicy) - { - return operations.SetAsync(tenantBaseUrl, tee, newAttestationPolicy).GetAwaiter().GetResult(); - } - - /// - /// Sets the policy for a given kind of TEE. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JWT Expressing the new policy - /// - /// - /// The cancellation token. - /// - public static async Task SetAsync(this IPolicyOperations operations, string tenantBaseUrl, string tee, string newAttestationPolicy, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.SetWithHttpMessagesAsync(tenantBaseUrl, tee, newAttestationPolicy, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Resets the attestation policy for the specified tenant and reverts to the - /// default policy. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature with an empty policy document - /// - public static object Reset(this IPolicyOperations operations, string tenantBaseUrl, string tee, string policyJws) - { - return operations.ResetAsync(tenantBaseUrl, tee, policyJws).GetAwaiter().GetResult(); - } - - /// - /// Resets the attestation policy for the specified tenant and reverts to the - /// default policy. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Specifies the trusted execution environment to be used to validate the - /// evidence. Possible values include: 'SgxEnclave', 'OpenEnclave', - /// 'CyResComponent', 'VSMEnclave' - /// - /// - /// JSON Web Signature with an empty policy document - /// - /// - /// The cancellation token. - /// - public static async Task ResetAsync(this IPolicyOperations operations, string tenantBaseUrl, string tee, string policyJws, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ResetWithHttpMessagesAsync(tenantBaseUrl, tee, policyJws, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SdkInfo_AttestationClient.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SdkInfo_AttestationClient.cs deleted file mode 100644 index 616d201d4609f..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SdkInfo_AttestationClient.cs +++ /dev/null @@ -1,41 +0,0 @@ - -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using System; - using System.Collections.Generic; - using System.Linq; - - internal static partial class SdkInfo - { - public static IEnumerable> ApiInfo_AttestationClient - { - get - { - return new Tuple[] - { - new Tuple("AttestationClient", "MetadataConfiguration", "2018-09-01-preview"), - new Tuple("AttestationClient", "Policy", "2018-09-01-preview"), - new Tuple("AttestationClient", "PolicyCertificates", "2018-09-01-preview"), - new Tuple("AttestationClient", "SigningCertificates", "2018-09-01-preview"), - }.AsEnumerable(); - } - } - // BEGIN: Code Generation Metadata Section - public static readonly String AutoRestVersion = "latest"; - public static readonly String AutoRestBootStrapperVersion = "autorest@2.0.4413"; - public static readonly String AutoRestCmdExecuted = "cmd.exe /c autorest.cmd https://github.com/Azure/azure-rest-api-specs/blob/master/specification/attestation/data-plane/readme.md --csharp --version=latest --reflect-api-versions --csharp-sdks-folder=C:\\github\\gkostal\\azure-sdk-for-net\\sdk"; - public static readonly String GithubForkName = "Azure"; - public static readonly String GithubBranchName = "master"; - public static readonly String GithubCommidId = "21460cb6be715578c300a130b9af7acbf277fbc8"; - public static readonly String CodeGenerationErrors = ""; - public static readonly String GithubRepoName = "azure-rest-api-specs"; - // END: Code Generation Metadata Section - } -} - diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperations.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperations.cs deleted file mode 100644 index 935991101a0b8..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperations.cs +++ /dev/null @@ -1,249 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// SigningCertificatesOperations operations. - /// - internal partial class SigningCertificatesOperations : IServiceOperations, ISigningCertificatesOperations - { - /// - /// Initializes a new instance of the SigningCertificatesOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal SigningCertificatesOperations(AttestationClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the AttestationClient - /// - public AttestationClient Client { get; private set; } - - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves attestation signing keys in use by the attestation service - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string tenantBaseUrl, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (tenantBaseUrl == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "tenantBaseUrl"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("tenantBaseUrl", tenantBaseUrl); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "certs"; - _url = _url.Replace("{tenantBaseUrl}", tenantBaseUrl); - List _queryParameters = new List(); - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200 && (int)_statusCode != 400) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - // Deserialize Response - if ((int)_statusCode == 400) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperationsExtensions.cs b/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperationsExtensions.cs deleted file mode 100644 index ba87c4184fe51..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Generated/SigningCertificatesOperationsExtensions.cs +++ /dev/null @@ -1,65 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for -// license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. -// - -namespace Microsoft.Azure.Attestation -{ - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for SigningCertificatesOperations. - /// - public static partial class SigningCertificatesOperationsExtensions - { - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves attestation signing keys in use by the attestation service - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - public static object Get(this ISigningCertificatesOperations operations, string tenantBaseUrl) - { - return operations.GetAsync(tenantBaseUrl).GetAwaiter().GetResult(); - } - - /// - /// Retrieves the OpenID Configuration data for the Azure Attestation Service - /// - /// - /// Retrieves attestation signing keys in use by the attestation service - /// - /// - /// The operations group for this extension method. - /// - /// - /// The tenant name, for example https://mytenant.attest.azure.net. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this ISigningCertificatesOperations operations, string tenantBaseUrl, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(tenantBaseUrl, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/Microsoft.Azure.Attestation.csproj b/sdk/attestation/Microsoft.Azure.Attestation/src/Microsoft.Azure.Attestation.csproj deleted file mode 100644 index 5f8f94e2bec25..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/Microsoft.Azure.Attestation.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - Microsoft Azure Attestation Library - Microsoft.Azure.Attestation - 0.10.0-preview.1 - Microsoft.Azure.Attestation - Attestation; - - - - - \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/src/generate.ps1 b/sdk/attestation/Microsoft.Azure.Attestation/src/generate.ps1 deleted file mode 100644 index f20bbd826d61f..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/src/generate.ps1 +++ /dev/null @@ -1 +0,0 @@ -Start-AutoRestCodeGeneration -ResourceProvider "attestation/data-plane" -AutoRestVersion "latest" diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationOperationsTests.cs b/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationOperationsTests.cs deleted file mode 100644 index f0a0265e21815..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationOperationsTests.cs +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -using System; -using System.Linq; -using Microsoft.IdentityModel.Tokens; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.Azure.Attestation.Models; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json; -using Xunit; -using System.Net; -using System.Security.Cryptography.X509Certificates; -using System.Threading.Tasks; -using Microsoft.Rest.Azure; -using System.Collections.Generic; -using System.IO; - -namespace Microsoft.Azure.Attestation.Tests.BasicTests -{ - public class AttestationOperationsTests : IClassFixture - { - private AttestationTestFixture fixture; - private const string tenantBaseUrl = "https://tradewinds4.us.attest.azure.net"; - private const string tenantBaseUrlWithTrustedSigners = "https://tradewinds3.us.attest.azure.net"; - - // Get-AzAttestation -Name tradewinds3 -ResourceGroupName sdk-test-do-not-delete - // - // Id : subscriptions/a724c543-53ce-44a6-b633-e11ef27839b7/resourceGroups/sdk-test-do-not-delete/providers/Microsoft.Attestation/attestationProviders/tradewinds3 - // Location : East US - // Name : tradewinds3 - // Status : Ready - // TrustModel : Isolated - // AttestUri : https://tradewinds3.us.attest.azure.net - // Tags : {Test} - // TagsTable : - // Name Value - // ==== ===== - // Test yes - // - // Get-AzAttestation -Name tradewinds4 -ResourceGroupName sdk-test-do-not-delete - // - // Id : subscriptions/a724c543-53ce-44a6-b633-e11ef27839b7/resourceGroups/sdk-test-do-not-delete/providers/Microsoft.Attestation/attestationProviders/tradewinds4 - // Location : East US - // Name : tradewinds4 - // Status : Ready - // TrustModel : AAD - // AttestUri : https://tradewinds4.us.attest.azure.net - // TagsTable : - // Name Value - // ==== ===== - // Test yes - // - - public AttestationOperationsTests(AttestationTestFixture fixture) - { - this.fixture = fixture; - } - - [Fact] - public void UpdatePolicyCertificates() - { - string newCertText = File.ReadAllText(@"./DataFiles/cert2.signed.add.txt"); - - using (MockContext ctx = MockContext.Start(this.GetType())) - { - var attestationClient = GetAttestationClient(); - - // Test Get (tenantBaseUrl should have no trusted policy signers) - var serviceCallResult = attestationClient.PolicyCertificates.GetWithHttpMessagesAsync(tenantBaseUrl); - Assert.Equal(HttpStatusCode.OK, serviceCallResult.Result.Response.StatusCode); - - var jsonBody = ExtractJoseBody(serviceCallResult); - Assert.Equal(JTokenType.Array, jsonBody["aas-policyCertificates"]["keys"].Type); - Assert.Empty(jsonBody["aas-policyCertificates"]["keys"].ToArray()); - - // Test Get (tenantBaseUrlWithTrustedSigners should have one trusted policy signers) - serviceCallResult = attestationClient.PolicyCertificates.GetWithHttpMessagesAsync(tenantBaseUrlWithTrustedSigners); - Assert.Equal(HttpStatusCode.OK, serviceCallResult.Result.Response.StatusCode); - Assert.NotNull(serviceCallResult.Result.Body as string); - Assert.True((serviceCallResult.Result.Body as string).Length > 0); - - jsonBody = ExtractJoseBody(serviceCallResult); - Assert.Equal(JTokenType.Array, jsonBody["aas-policyCertificates"]["keys"].Type); - Assert.Single(jsonBody["aas-policyCertificates"]["keys"].ToArray()); - - var certificateText = (string) jsonBody["aas-policyCertificates"]["keys"][0]["x5c"][0]; - X509Certificate2 certificateObject = new X509Certificate2(Convert.FromBase64String(certificateText)); - Assert.NotNull(certificateObject.SubjectName); - Assert.Equal("CN=MaaTestCert1", certificateObject.SubjectName.Name); - - // Test Add - serviceCallResult = attestationClient.PolicyCertificates.AddWithHttpMessagesAsync(tenantBaseUrlWithTrustedSigners, newCertText); - Assert.Equal(HttpStatusCode.OK, serviceCallResult.Result.Response.StatusCode); - Assert.NotNull(serviceCallResult.Result.Body as string); - Assert.True((serviceCallResult.Result.Body as string).Length > 0); - - jsonBody = ExtractJoseBody(serviceCallResult); - Assert.Equal(JTokenType.Array, jsonBody["aas-policyCertificates"]["keys"].Type); - Assert.Equal(2, jsonBody["aas-policyCertificates"]["keys"].ToArray().Length); - - string expectedSubjectName = "MaaTestCert2"; - bool expectedSubjectNameFound = false; - foreach (var trustedSigningKey in jsonBody["aas-policyCertificates"]["keys"].ToArray()) - { - foreach (var certificate in trustedSigningKey["x5c"]) - { - certificateObject = new X509Certificate2(Convert.FromBase64String((string)certificate)); - if (certificateObject.SubjectName.Name.Contains(expectedSubjectName)) - { - expectedSubjectNameFound = true; - break; - } - } - - if (expectedSubjectNameFound) - break; - } - Assert.True(expectedSubjectNameFound); - - // Test Remove - serviceCallResult = attestationClient.PolicyCertificates.RemoveWithHttpMessagesAsync(tenantBaseUrlWithTrustedSigners, newCertText); - Assert.Equal(HttpStatusCode.OK, serviceCallResult.Result.Response.StatusCode); - Assert.NotNull(serviceCallResult.Result.Body as string); - Assert.True((serviceCallResult.Result.Body as string).Length > 0); - - jsonBody = ExtractJoseBody(serviceCallResult); - Assert.Equal(JTokenType.Array, jsonBody["aas-policyCertificates"]["keys"].Type); - Assert.Single(jsonBody["aas-policyCertificates"]["keys"].ToArray()); - - certificateText = (string)jsonBody["aas-policyCertificates"]["keys"][0]["x5c"][0]; - certificateObject = new X509Certificate2(Convert.FromBase64String(certificateText)); - Assert.NotNull(certificateObject.SubjectName); - Assert.Equal("CN=MaaTestCert1", certificateObject.SubjectName.Name); - } - } - - private static JObject ExtractJoseBody(Task> serviceCallResult) - { - string[] joseParts = (serviceCallResult.Result.Body as string).Split('.'); - var decodedBody = Base64UrlEncoder.Decode(joseParts[1]); - JObject jsonBody = JObject.Parse(decodedBody); - return jsonBody; - } - - [Fact] - public void UpdatePolicy() - { - using (MockContext ctx = MockContext.Start(this.GetType())) - { - var attestationClient = GetAttestationClient(); - - string policyJws = - "eyJhbGciOiJub25lIn0.eyJBdHRlc3RhdGlvblBvbGljeSI6ICJ7XHJcbiAgICBcIiR2ZXJzaW9uXCI6IDEsXHJcbiAgICBcIiRhbGxvdy1kZWJ1Z2dhYmxlXCIgOiB0cnVlLFxyXG4gICAgXCIkY2xhaW1zXCI6W1xyXG4gICAgICAgIFwiaXMtZGVidWdnYWJsZVwiICxcclxuICAgICAgICBcInNneC1tcnNpZ25lclwiLFxyXG4gICAgICAgIFwic2d4LW1yZW5jbGF2ZVwiLFxyXG4gICAgICAgIFwicHJvZHVjdC1pZFwiLFxyXG4gICAgICAgIFwic3ZuXCIsXHJcbiAgICAgICAgXCJ0ZWVcIixcclxuICAgICAgICBcIk5vdERlYnVnZ2FibGVcIlxyXG4gICAgXSxcclxuICAgIFwiTm90RGVidWdnYWJsZVwiOiB7XCJ5ZXNcIjp7XCIkaXMtZGVidWdnYWJsZVwiOnRydWUsIFwiJG1hbmRhdG9yeVwiOnRydWUsIFwiJHZpc2libGVcIjpmYWxzZX19LFxyXG4gICAgXCJpcy1kZWJ1Z2dhYmxlXCIgOiBcIiRpcy1kZWJ1Z2dhYmxlXCIsXHJcbiAgICBcInNneC1tcnNpZ25lclwiIDogXCIkc2d4LW1yc2lnbmVyXCIsXHJcbiAgICBcInNneC1tcmVuY2xhdmVcIiA6IFwiJHNneC1tcmVuY2xhdmVcIixcclxuICAgIFwicHJvZHVjdC1pZFwiIDogXCIkcHJvZHVjdC1pZFwiLFxyXG4gICAgXCJzdm5cIiA6IFwiJHN2blwiLFxyXG4gICAgXCJ0ZWVcIiA6IFwiJHRlZVwiXHJcbn0ifQ."; - - // preprepare to set policy - var getResult = attestationClient.Policy.PrepareToSetWithHttpMessagesAsync(tenantBaseUrl, "SgxEnclave", - policyJws).Result; - Assert.Equal(HttpStatusCode.OK, getResult.Response.StatusCode); - string newAttestationPolicy = getResult.Body.ToString(); - - // set policy - var setResult = attestationClient.Policy.SetWithHttpMessagesAsync(tenantBaseUrl, "SgxEnclave", newAttestationPolicy).Result; - Assert.Equal(HttpStatusCode.OK, setResult.Response.StatusCode); - - // get policy - var getPolicyResult = attestationClient.Policy.GetWithHttpMessagesAsync(tenantBaseUrl, "SgxEnclave").Result; - Assert.Equal(HttpStatusCode.OK, getPolicyResult.Response.StatusCode); - var returnedPolicy = getPolicyResult.Body; - Assert.True(returnedPolicy is AttestationPolicy); - Assert.Equal(policyJws, ((AttestationPolicy)returnedPolicy).Policy); - - // reset policy - var resetResult = attestationClient.Policy.ResetWithHttpMessagesAsync(tenantBaseUrl, "SgxEnclave", "eyJhbGciOiJub25lIn0..").Result; - Assert.Equal(HttpStatusCode.OK, resetResult.Response.StatusCode); - } - } - - [Fact] - public void RetrieveMetadataConfiguration() - { - using (MockContext ctx = MockContext.Start(this.GetType())) - { - var attestationClient = GetAttestationClient(); - var response = attestationClient.MetadataConfiguration.Get(tenantBaseUrl); - var json = JsonConvert.DeserializeObject(response.ToString()) as JObject; - Assert.NotNull(json); - - Assert.Equal(JTokenType.Array,json["response_types_supported"].Type); - Assert.Equal(2,json["response_types_supported"].ToArray().Length); - Assert.Equal(JTokenType.String,json["response_types_supported"][0].Type); - Assert.Equal("token",json["response_types_supported"][0]); - Assert.Equal(JTokenType.String,json["response_types_supported"][1].Type); - Assert.Equal("none",json["response_types_supported"][1]); - - Assert.Equal(JTokenType.Array,json["id_token_signing_alg_values_supported"].Type); - Assert.Single(json["id_token_signing_alg_values_supported"].ToArray()); - Assert.Equal(JTokenType.String,json["id_token_signing_alg_values_supported"][0].Type); - Assert.Equal("RS256",json["id_token_signing_alg_values_supported"][0]); - - // Verify the revocation endpoint value. - Assert.Equal(JTokenType.String,json["revocation_endpoint"].Type); - Assert.Equal(json["revocation_endpoint"].ToString(), tenantBaseUrl + "/revoke"); - - // Verify the jwks_uri value. - Assert.Equal(JTokenType.String,json["jwks_uri"].Type); - Assert.Equal(json["jwks_uri"].ToString(), tenantBaseUrl + "/certs"); - - // Verify the claims_supported array. - Assert.Equal(JTokenType.Array,json["claims_supported"].Type); - Assert.Equal(9,json["claims_supported"].ToArray().Length); - Assert.Equal(JTokenType.String,json["claims_supported"][0].Type); - Assert.Equal("is-debuggable",json["claims_supported"][0]); - Assert.Equal(JTokenType.String,json["claims_supported"][1].Type); - Assert.Equal("sgx-mrsigner",json["claims_supported"][1]); - Assert.Equal(JTokenType.String, json["claims_supported"][2].Type); - Assert.Equal("sgx-mrenclave",json["claims_supported"][2]); - Assert.Equal(JTokenType.String,json["claims_supported"][3].Type); - Assert.Equal("product-id",json["claims_supported"][3]); - Assert.Equal(JTokenType.String,json["claims_supported"][4].Type); - Assert.Equal("svn",json["claims_supported"][4]); - Assert.Equal(JTokenType.String,json["claims_supported"][5].Type); - Assert.Equal("tee",json["claims_supported"][5]); - Assert.Equal(JTokenType.String,json["claims_supported"][6].Type); - Assert.Equal("device_id",json["claims_supported"][6]); - Assert.Equal(JTokenType.String,json["claims_supported"][7].Type); - Assert.Equal("component_0_id",json["claims_supported"][7]); - Assert.Equal(JTokenType.String,json["claims_supported"][8].Type); - Assert.Equal("expected_components",json["claims_supported"][8]); - } - } - - [Fact] - public void RetrieveMetadataSigningKeys() - { - using (MockContext ctx = MockContext.Start(this.GetType())) - { - var attestationClient = GetAttestationClient(); - var response = attestationClient.SigningCertificates.Get(tenantBaseUrl); - - var json = JsonConvert.DeserializeObject(response.ToString()) as JObject; - Assert.NotNull(json); - - var jwks = new JsonWebKeySet(response.ToString()); - var signingKeys = jwks.GetSigningKeys(); - foreach (var key in signingKeys) - { - Assert.True(key is X509SecurityKey); - var x509Key = key as X509SecurityKey; - } - - } - - } - - private AttestationClient GetAttestationClient() - { - return fixture.CreateAttestationClient(); - } - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationTestFixture.cs b/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationTestFixture.cs deleted file mode 100644 index d8667e5b5dd00..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/BasicTests/AttestationTestFixture.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -using System; -using System.Net.Http; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.Azure.Management.ResourceManager; -using Microsoft.IdentityModel.Clients.ActiveDirectory; - -namespace Microsoft.Azure.Attestation.Tests -{ - public class AttestationTestFixture : TestEnvironment, IDisposable - { - public AttestationTestFixture() - { - Initialize(this.GetType()); - } - - public void Initialize(Type type) - { - HttpMockServer.FileSystemUtilsObject = new FileSystemUtils(); - HttpMockServer.Initialize(type, "InitialCreation", HttpRecorderMode.Record); - HttpMockServer.CreateInstance(); - } - - public AttestationClient CreateAttestationClient() - { - string environmentConnectionString = Environment.GetEnvironmentVariable("TEST_CSM_ORGID_AUTHENTICATION"); - string accessToken = "fakefakefake"; - - // When recording, we should have a connection string passed into the code from the environment - if (!string.IsNullOrEmpty(environmentConnectionString)) - { - // Gather test client credential information from the environment - var connectionInfo = new ConnectionString(Environment.GetEnvironmentVariable("TEST_CSM_ORGID_AUTHENTICATION")); - string servicePrincipal = connectionInfo.GetValue(ConnectionStringKeys.ServicePrincipalKey); - string servicePrincipalSecret = connectionInfo.GetValue(ConnectionStringKeys.ServicePrincipalSecretKey); - string aadTenant = connectionInfo.GetValue(ConnectionStringKeys.AADTenantKey); - - // Create credentials - var clientCredentials = new ClientCredential(servicePrincipal, servicePrincipalSecret); - var authContext = new AuthenticationContext($"https://login.windows.net/{aadTenant}", TokenCache.DefaultShared); - accessToken = authContext.AcquireTokenAsync("https://attest.azure.net", clientCredentials).Result.AccessToken; - } - - return new AttestationClient(new AttestationCredentials(accessToken), GetHandlers()); - } - - public DelegatingHandler[] GetHandlers() - { - HttpMockServer server = HttpMockServer.CreateInstance(); - var testHttpHandler = new CustomDelegatingHandler(); - return new DelegatingHandler[] { server, testHttpHandler }; - } - - public void Dispose() - { - if (HttpMockServer.Mode == HttpRecorderMode.Record ) - { - var testEnv = TestEnvironmentFactory.GetTestEnvironment(); - var context = new MockContext(); - var resourcesClient = context.GetServiceClient(); - } - } - } -} diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert1.pem b/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert1.pem deleted file mode 100644 index ae820dcfcd8ce..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert1.pem +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDLDCCAhSgAwIBAgIIY3TMVbpdITEwDQYJKoZIhvcNAQELBQAwFzEVMBMGA1UEAwwMTWFhVGVzdENlcnQxMCAXDTIwMDIyNjAwMDAwMFoYDzIwNzAwMjI2MDAwMDAwWjAXMRUwEwYDVQQDDAxNYWFUZXN0Q2VydDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUSx9UGu08Qc3ePmqWBRqGQZuFO92gPUzcigxKIGc3l9jeLCDhyn8MRUsPh4NzSvZzVcqjQLN9vlc57E/kuWoJRpUL/fQwJo6o5+3ONjRAN6VTRGBvbOX7AHYcOUvPex9gM1sI/qaawJX9K7t0LcETPmxuX6M51u0+q/wzO37aVx8WJH2TRxfu9Gng5ZvAPVhb0kUS6mmFqJ6MpvMmI1tKoVKf4dAhbRUX1kE0b6mBoTzfQl+NvS2vmbD7ukLX0C2eZc8hPV7+tjXOO7lxZlx8luHsVw5x99wQTIkK7IoHsyviyREH1m44tlX++gF0IPKFARS2Arp02dBcQ1J1f+DFAgMBAAGjejB4MEYGA1UdIwQ/MD2AFE2rac7c43XhCz8CBs8YTa5eelYFoRukGTAXMRUwEwYDVQQDDAxNYWFUZXN0Q2VydDGCCGN0zFW6XSExMB0GA1UdDgQWBBRNq2nO3ON14Qs/AgbPGE2uXnpWBTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAd3gz+xed52Dno36UIhcDT0U0sUpDc/xA7yJfVkwWpI6z2wiZxbaK5fTDPieyrxwSS7a/IJo6a5akccdnq5OGWvpSTXKBycNCvpQAi96xue18gmysgYZ0dEA6QFvEQ/vqEgTT/nSzXIj/E1KSiU0sGQzQ20HgsoEWFV/JnUqdkyY6uVVrKr1iIEBvPTcsx84IQamxwcYXCtVkckU+ymRmgsTxLAU2JsB/N367Lq66rYl/QENyLfbF4KSg18888Uc+Kck2n4PZnDOmiohKp46BRnYo+T2iuyoxR4g9yPyxck8LvNHfBcDj1/9nPmRhUzltwr+PtafgOfe+TV+afSGWg ------END CERTIFICATE----- \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert2.signed.add.txt b/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert2.signed.add.txt deleted file mode 100644 index 4caf118a6020f..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/DataFiles/cert2.signed.add.txt +++ /dev/null @@ -1 +0,0 @@ -eyAiYWxnIjoiUlMyNTYiLCAieDVjIjogWyJNSUlETERDQ0FoU2dBd0lCQWdJSVkzVE1WYnBkSVRFd0RRWUpLb1pJaHZjTkFRRUxCUUF3RnpFVk1CTUdBMVVFQXd3TVRXRmhWR1Z6ZEVObGNuUXhNQ0FYRFRJd01ESXlOakF3TURBd01Gb1lEekl3TnpBd01qSTJNREF3TURBd1dqQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURVU3g5VUd1MDhRYzNlUG1xV0JScUdRWnVGTzkyZ1BVemNpZ3hLSUdjM2w5amVMQ0RoeW44TVJVc1BoNE56U3ZaelZjcWpRTE45dmxjNTdFL2t1V29KUnBVTC9mUXdKbzZvNSszT05qUkFONlZUUkdCdmJPWDdBSFljT1V2UGV4OWdNMXNJL3FhYXdKWDlLN3QwTGNFVFBteHVYNk01MXUwK3Evd3pPMzdhVng4V0pIMlRSeGZ1OUduZzVadkFQVmhiMGtVUzZtbUZxSjZNcHZNbUkxdEtvVktmNGRBaGJSVVgxa0UwYjZtQm9UemZRbCtOdlMydm1iRDd1a0xYMEMyZVpjOGhQVjcrdGpYT083bHhabHg4bHVIc1Z3NXg5OXdRVElrSzdJb0hzeXZpeVJFSDFtNDR0bFgrK2dGMElQS0ZBUlMyQXJwMDJkQmNRMUoxZitERkFnTUJBQUdqZWpCNE1FWUdBMVVkSXdRL01EMkFGRTJyYWM3YzQzWGhDejhDQnM4WVRhNWVlbFlGb1J1a0dUQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERHQ0NHTjB6Rlc2WFNFeE1CMEdBMVVkRGdRV0JCUk5xMm5PM09OMTRRcy9BZ2JQR0UydVhucFdCVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFkM2d6K3hlZDUyRG5vMzZVSWhjRFQwVTBzVXBEYy94QTd5SmZWa3dXcEk2ejJ3aVp4YmFLNWZURFBpZXlyeHdTUzdhL0lKbzZhNWFrY2NkbnE1T0dXdnBTVFhLQnljTkN2cFFBaTk2eHVlMThnbXlzZ1laMGRFQTZRRnZFUS92cUVnVFQvblN6WElqL0UxS1NpVTBzR1F6UTIwSGdzb0VXRlYvSm5VcWRreVk2dVZWcktyMWlJRUJ2UFRjc3g4NElRYW14d2NZWEN0Vmtja1UreW1SbWdzVHhMQVUySnNCL04zNjdMcTY2cllsL1FFTnlMZmJGNEtTZzE4ODg4VWMrS2NrMm40UFpuRE9taW9oS3A0NkJSbllvK1QyaXV5b3hSNGc5eVB5eGNrOEx2TkhmQmNEajEvOW5QbVJoVXpsdHdyK1B0YWZnT2ZlK1RWK2FmU0dXZyJdfQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGUiOiB7Imt0eSI6IlJTQSIsICJ4NWMiOlsiTUlJRExEQ0NBaFNnQXdJQkFnSUlXWXcreFFhUjBqd3dEUVlKS29aSWh2Y05BUUVMQlFBd0Z6RVZNQk1HQTFVRUF3d01UV0ZoVkdWemRFTmxjblF5TUNBWERUSXdNREl5TmpBd01EQXdNRm9ZRHpJd056QXdNakkyTURBd01EQXdXakFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRESXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDeE1XUXQvd09SeUpNKysxM0hCSjlMUE5xVk9XSGhqSnZkUGlYL3M3c1NCaVEwUWFwRDlVeXdVRGYwb1lTdUdIbGJSMHlOVURRODdsS1VqRE4wSEhYQlZPcW5sUFI1eVJzeko1WFNaMWNCSEp1R1lJMTlyUHRZSUZ1ZEkvZW5nSHZlcU5CMnNxK054MFJTZHdudk9id2k0azVqRmwzRWdUSWZyY0tyVnlhb0lxQWtjVGdVc1BZSWxlN2NIWHRiTVVmNml4Vm95L1AvYTUrSFh3NWpqMlVabTJtWENKQ2gzM1pGS01BR0xkWi9nemdFOFRNeFpMemsrSGg3bk1KbE4yUzgxUVNMU1lZaFlhR012ZnlWOTRWQlM0YTFRQS9JQkk5VGRESEZLcVZSSkhQYmVoQVJVOURnbklZUzZ2ejFncjRzR1g0MllvM3B3dmJaSGYyeFVGRzFBZ01CQUFHamVqQjRNRVlHQTFVZEl3US9NRDJBRkJhVW1DV0t5eXd1THhXL0NyeGpoVmR4YmVXUW9SdWtHVEFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRES0NDRm1NUHNVR2tkSThNQjBHQTFVZERnUVdCQlFXbEpnbGlzc3NMaThWdndxOFk0VlhjVzNsa0RBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCMjRLUE5rSTNOYjFkakg0bUE2MnhQTjVmaFFxVURqeUNaaE5GTjNVV2xZYjVCOVZpRWc3WkdpUmh6YkxnbDZDYVRhbGdDN3JnQ2RkS1R5NWgwT0s0cnpTZVREQkE2M01pYVV3OW1TY2ZZSHkwRjdSdWxDaTBRa0lHS3d0LzM2bk5QRllNcTd3SFphcGRhcG5seFdrazVLdXNRUEE2UWxxd1ZKR3FPNE5GYUNlQWdUSE51MHdvSGdUbHhGWSswVER5YVdVNEZBTW15d2FQejJLV2NBK0c3dTRlU1paaUdKZUQ1c0paNU4yWHRqUUhDUzNROVF2OENSVDRJS0NMK2RYWWY4WFVVd1pNc011RWVhRTlISjRuTWoxQkloSUpKL2V0TlowWkNwZFJzUWRDQktxbDE5VXFiMFBNZlpmOHZ3eFdJcW01a2YzbDE1RTE1TjNTM3dvWWwiXX19.Xnm1LYd11uQ6RwPPyBx0w83q-j4IUHy5Kz07R49i8A2Z9smyfYFZaN_7U0HOKwn0qsZHHukx66gsfRmKat5r0m3mM266ATFN_FiJxKOG0DFL7zywDyciXe8KHS7XU81PHD4wB427717Fog0q7jtiHV-29onyuPW5rJwDrqmsuLDu3JzLUDKw4WZgLVz1HIA-ytcz4gAdOi-7lEgqZ18AtejXqdpatTyobhAkN2uDBtIvv0N0Q1RuQbjGapUtrsO8OHxkyhuLlWlM5lLzcCWSze2y3uziAbMRIyb80ApFutEIdum3Smztv8A9cvP_blutdlDT5z7lwZX51nrle7Juag \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/Microsoft.Azure.Attestation.Tests.csproj b/sdk/attestation/Microsoft.Azure.Attestation/tests/Microsoft.Azure.Attestation.Tests.csproj deleted file mode 100644 index 617582676a20a..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/Microsoft.Azure.Attestation.Tests.csproj +++ /dev/null @@ -1,40 +0,0 @@ - - - Attestation.Tests - 1.0.0 - Attestation.Tests Class library - true - Attestation.Tests - - - - - - - - - - - - - PreserveNewest - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataConfiguration.json b/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataConfiguration.json deleted file mode 100644 index 333916c9c83a5..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataConfiguration.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/.well-known/openid-configuration", - "EncodedRequestUri": "Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9u", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "42f94ba1-772c-414e-a635-e5126f07b546" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:47 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "369" - ] - }, - "ResponseBody": "{\r\n \"response_types_supported\": [\r\n \"token\",\r\n \"none\"\r\n ],\r\n \"id_token_signing_alg_values_supported\": [\r\n \"RS256\"\r\n ],\r\n \"revocation_endpoint\": \"https://tradewinds4.us.attest.azure.net/revoke\",\r\n \"jwks_uri\": \"https://tradewinds4.us.attest.azure.net/certs\",\r\n \"claims_supported\": [\r\n \"is-debuggable\",\r\n \"sgx-mrsigner\",\r\n \"sgx-mrenclave\",\r\n \"product-id\",\r\n \"svn\",\r\n \"tee\",\r\n \"device_id\",\r\n \"component_0_id\",\r\n \"expected_components\"\r\n ]\r\n}", - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataSigningKeys.json b/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataSigningKeys.json deleted file mode 100644 index 8aafd739f2462..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/RetrieveMetadataSigningKeys.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/certs", - "EncodedRequestUri": "L2NlcnRz", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "fb8073e9-d56f-49a2-a72c-9d2fe2a4d747" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:16:03 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "20993" - ] - }, - "ResponseBody": "{\r\n \"keys\": [\r\n {\r\n \"x5c\": [\r\n \"MIIDQjCCAiqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAyMTAwLgYDVQQDDCdodHRwczovL3RyYWRld2luZHM0LnVzLmF0dGVzdC5henVyZS5uZXQwHhcNMjAwMjI2MjMxNjA0WhcNMjAwMjI3MDcxNjA0WjAyMTAwLgYDVQQDDCdodHRwczovL3RyYWRld2luZHM0LnVzLmF0dGVzdC5henVyZS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjccamXd9pLyHguMnInOQX2e5YaKb0X3B1Vk42ehYt9U7yNFDGfObjLDwFWjODf0Y3ctu8jJb9K+Jcv1vMv/5cNUIGlIbgoQaGCFKobA6DeR/lyFet6wXbh/PUfNtNiCms6lQ7eXbjob634WGCB6+05xa3d7N9dcmTZkWr/LQvwPwn6bh/j1bXWQetXHkQPg659Dz2ElsLf1kVOvu1ZcQLPVM/N6vLdAo9uxIoYmmKV3qg92+7AtKbzqfuzPaDQkiOm9Kv1k6i47VyS52zbb+90vMrLjJgklJ2O11uEYeq76hCWzmC1GSnpowxFYMQPwWo63Nuh9iOR/fQ0NSM5MQfAgMBAAGjYzBhMA8GA1UdEwQIMAYBAf8CAQAwHQYDVR0OBBYEFGF62BcXFS22EbT4JH+3dSulmIeGMB8GA1UdIwQYMBaAFGF62BcXFS22EbT4JH+3dSulmIeGMA4GA1UdDwEB/wQEAwIBBDANBgkqhkiG9w0BAQsFAAOCAQEAHahHmro8do51In6y7NkR9hquT2muzFmF/Uqd/ApXZB4+XxG1lfYEY1A107nLI+2M8O3xM6IWnbfHjqVNTv77OeQz2MaLBBogSDWfzRECa9b0MmTH7PPx8MjMz8tsj8YIeZN9BcXNsip88ZWfHZTpKsQvFKvg9Fn1TVKfSaSFEBgKPwPlvw1nrWNXqGOOSUUKjvi87sPs8GKfX3Z0S0rFEVG6IXNxsJnWbE17yongs10n7ckEKVWAybmDEiknasIrYU/HvfWGY0wtmwowT4WTfWc7cNLfSGlX4EzY6T2UXNRQ4A0MI1mDAVVQZno5hHfObU6OVmeiCQXQ9MlGk92anQ==\"\r\n ],\r\n \"kid\": \"ceXpexiAPxDcarK2ElhKMWwMPw0At3EVATvVOYbmvpU=\",\r\n \"kty\": \"RSA\"\r\n },\r\n {\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"kid\": \"ZQzLfoNwhBNCu9r8Fucjn6H4Cdw\",\r\n \"kty\": \"RSA\"\r\n },\r\n {\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"kid\": \"uE9RP97P4k_IaNCi2p_N6ZWZp0s\",\r\n \"kty\": \"RSA\"\r\n },\r\n {\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"kid\": \"wcGHi-SJDOR0XXghydRma0GQQXs\",\r\n \"kty\": \"RSA\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicy.json b/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicy.json deleted file mode 100644 index 516a1c8c635e7..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicy.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/operations/policy/updatepolicy?api-version=2018-09-01-preview&tee=SgxEnclave", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L3VwZGF0ZXBvbGljeT9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXcmdGVlPVNneEVuY2xhdmU=", - "RequestMethod": "POST", - "RequestBody": "\"eyJhbGciOiJub25lIn0.eyJBdHRlc3RhdGlvblBvbGljeSI6ICJ7XHJcbiAgICBcIiR2ZXJzaW9uXCI6IDEsXHJcbiAgICBcIiRhbGxvdy1kZWJ1Z2dhYmxlXCIgOiB0cnVlLFxyXG4gICAgXCIkY2xhaW1zXCI6W1xyXG4gICAgICAgIFwiaXMtZGVidWdnYWJsZVwiICxcclxuICAgICAgICBcInNneC1tcnNpZ25lclwiLFxyXG4gICAgICAgIFwic2d4LW1yZW5jbGF2ZVwiLFxyXG4gICAgICAgIFwicHJvZHVjdC1pZFwiLFxyXG4gICAgICAgIFwic3ZuXCIsXHJcbiAgICAgICAgXCJ0ZWVcIixcclxuICAgICAgICBcIk5vdERlYnVnZ2FibGVcIlxyXG4gICAgXSxcclxuICAgIFwiTm90RGVidWdnYWJsZVwiOiB7XCJ5ZXNcIjp7XCIkaXMtZGVidWdnYWJsZVwiOnRydWUsIFwiJG1hbmRhdG9yeVwiOnRydWUsIFwiJHZpc2libGVcIjpmYWxzZX19LFxyXG4gICAgXCJpcy1kZWJ1Z2dhYmxlXCIgOiBcIiRpcy1kZWJ1Z2dhYmxlXCIsXHJcbiAgICBcInNneC1tcnNpZ25lclwiIDogXCIkc2d4LW1yc2lnbmVyXCIsXHJcbiAgICBcInNneC1tcmVuY2xhdmVcIiA6IFwiJHNneC1tcmVuY2xhdmVcIixcclxuICAgIFwicHJvZHVjdC1pZFwiIDogXCIkcHJvZHVjdC1pZFwiLFxyXG4gICAgXCJzdm5cIiA6IFwiJHN2blwiLFxyXG4gICAgXCJ0ZWVcIiA6IFwiJHRlZVwiXHJcbn0ifQ.\"", - "RequestHeaders": { - "x-ms-client-request-id": [ - "de0550fa-2d8f-4172-b538-e72c278929ba" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ], - "Content-Type": [ - "text/plain" - ], - "Content-Length": [ - "885" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:59 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "764" - ] - }, - "ResponseBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczQudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiY2VYcGV4aUFQeERjYXJLMkVsaEtNV3dNUHcwQXQzRVZBVHZWT1libXZwVT0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5SGFzaCI6ICJ2MG9QNG9KWkVKWnh4SXhFNmJiVVAxa1JSbWVfZXgtUHV4NlF0c1U4STdNIiwgImV4cCI6IDE1ODI3NjI1NTksICJpYXQiOiAxNTgyNzU4OTU5LCAiaXNzIjogImh0dHBzOi8vdHJhZGV3aW5kczQudXMuYXR0ZXN0LmF6dXJlLm5ldCIsICJuYmYiOiAxNTgyNzU4OTU5fQ.o2RjkOuSqr6z0dK47cliXTHOx1b5zrg6Ugpi_nrjlo4HBtjGfaeERqn2nOieeriYUiJKfimDpuS8EgbNiaAXWllKIrQpuCM0Z1LOWvIEe9ephBDI_sH1FBoKB5qSXYlBuLO1tUSKa3Edr6oUkTxljAdvaLl3yx8phwHqPwaa-E1sbMUCBUf4W2ixyo37UplAbSflddEoemlNcdeiqKNfLWFa0W8Lg1jbFXL4sL10DTwnKEDTLfOtQqakRk26t7ZOsPbJJSW2eChpAPXquoLjAyIx9RVysiUzPs0-qw0V10ZiOFL1YQVwqWhPn8e9dtwIOB89Dq99wCzkMeIjPBsAGQ\"", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/current?api-version=2018-09-01-preview&tee=SgxEnclave", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2N1cnJlbnQ/YXBpLXZlcnNpb249MjAxOC0wOS0wMS1wcmV2aWV3JnRlZT1TZ3hFbmNsYXZl", - "RequestMethod": "PUT", - "RequestBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczQudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiY2VYcGV4aUFQeERjYXJLMkVsaEtNV3dNUHcwQXQzRVZBVHZWT1libXZwVT0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5SGFzaCI6ICJ2MG9QNG9KWkVKWnh4SXhFNmJiVVAxa1JSbWVfZXgtUHV4NlF0c1U4STdNIiwgImV4cCI6IDE1ODI3NjI1NTksICJpYXQiOiAxNTgyNzU4OTU5LCAiaXNzIjogImh0dHBzOi8vdHJhZGV3aW5kczQudXMuYXR0ZXN0LmF6dXJlLm5ldCIsICJuYmYiOiAxNTgyNzU4OTU5fQ.o2RjkOuSqr6z0dK47cliXTHOx1b5zrg6Ugpi_nrjlo4HBtjGfaeERqn2nOieeriYUiJKfimDpuS8EgbNiaAXWllKIrQpuCM0Z1LOWvIEe9ephBDI_sH1FBoKB5qSXYlBuLO1tUSKa3Edr6oUkTxljAdvaLl3yx8phwHqPwaa-E1sbMUCBUf4W2ixyo37UplAbSflddEoemlNcdeiqKNfLWFa0W8Lg1jbFXL4sL10DTwnKEDTLfOtQqakRk26t7ZOsPbJJSW2eChpAPXquoLjAyIx9RVysiUzPs0-qw0V10ZiOFL1YQVwqWhPn8e9dtwIOB89Dq99wCzkMeIjPBsAGQ\"", - "RequestHeaders": { - "x-ms-client-request-id": [ - "05ba0e5d-1ac4-4d42-aa69-98956bde982c" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ], - "Content-Type": [ - "text/plain" - ], - "Content-Length": [ - "764" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:16:00 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "4" - ] - }, - "ResponseBody": "null", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/current?api-version=2018-09-01-preview&tee=SgxEnclave", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2N1cnJlbnQ/YXBpLXZlcnNpb249MjAxOC0wOS0wMS1wcmV2aWV3JnRlZT1TZ3hFbmNsYXZl", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "b3a74997-5290-457c-b609-2094d314297a" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:16:01 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "896" - ] - }, - "ResponseBody": "{\r\n \"Policy\": \"eyJhbGciOiJub25lIn0.eyJBdHRlc3RhdGlvblBvbGljeSI6ICJ7XHJcbiAgICBcIiR2ZXJzaW9uXCI6IDEsXHJcbiAgICBcIiRhbGxvdy1kZWJ1Z2dhYmxlXCIgOiB0cnVlLFxyXG4gICAgXCIkY2xhaW1zXCI6W1xyXG4gICAgICAgIFwiaXMtZGVidWdnYWJsZVwiICxcclxuICAgICAgICBcInNneC1tcnNpZ25lclwiLFxyXG4gICAgICAgIFwic2d4LW1yZW5jbGF2ZVwiLFxyXG4gICAgICAgIFwicHJvZHVjdC1pZFwiLFxyXG4gICAgICAgIFwic3ZuXCIsXHJcbiAgICAgICAgXCJ0ZWVcIixcclxuICAgICAgICBcIk5vdERlYnVnZ2FibGVcIlxyXG4gICAgXSxcclxuICAgIFwiTm90RGVidWdnYWJsZVwiOiB7XCJ5ZXNcIjp7XCIkaXMtZGVidWdnYWJsZVwiOnRydWUsIFwiJG1hbmRhdG9yeVwiOnRydWUsIFwiJHZpc2libGVcIjpmYWxzZX19LFxyXG4gICAgXCJpcy1kZWJ1Z2dhYmxlXCIgOiBcIiRpcy1kZWJ1Z2dhYmxlXCIsXHJcbiAgICBcInNneC1tcnNpZ25lclwiIDogXCIkc2d4LW1yc2lnbmVyXCIsXHJcbiAgICBcInNneC1tcmVuY2xhdmVcIiA6IFwiJHNneC1tcmVuY2xhdmVcIixcclxuICAgIFwicHJvZHVjdC1pZFwiIDogXCIkcHJvZHVjdC1pZFwiLFxyXG4gICAgXCJzdm5cIiA6IFwiJHN2blwiLFxyXG4gICAgXCJ0ZWVcIiA6IFwiJHRlZVwiXHJcbn0ifQ.\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/current?api-version=2018-09-01-preview&tee=SgxEnclave", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2N1cnJlbnQ/YXBpLXZlcnNpb249MjAxOC0wOS0wMS1wcmV2aWV3JnRlZT1TZ3hFbmNsYXZl", - "RequestMethod": "POST", - "RequestBody": "\"eyJhbGciOiJub25lIn0..\"", - "RequestHeaders": { - "x-ms-client-request-id": [ - "3035ce8e-3d30-4382-808d-e924b4b96e84" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ], - "Content-Type": [ - "text/plain" - ], - "Content-Length": [ - "23" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:16:02 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "4" - ] - }, - "ResponseBody": "null", - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicyCertificates.json b/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicyCertificates.json deleted file mode 100644 index 7ea67d7de32b9..0000000000000 --- a/sdk/attestation/Microsoft.Azure.Attestation/tests/SessionRecords/AttestationOperationsTests/UpdatePolicyCertificates.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/operations/policy/certificates?api-version=2018-09-01-preview", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "3310e15e-88ae-4ab0-b17f-c73852f3b6c2" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:52 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "730" - ] - }, - "ResponseBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczQudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiY2VYcGV4aUFQeERjYXJLMkVsaEtNV3dNUHcwQXQzRVZBVHZWT1libXZwVT0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW119LCAiZXhwIjogMTU4Mjc2MjU1MywgImlhdCI6IDE1ODI3NTg5NTMsICJpc3MiOiAiaHR0cHM6Ly90cmFkZXdpbmRzNC51cy5hdHRlc3QuYXp1cmUubmV0IiwgIm5iZiI6IDE1ODI3NTg5NTN9.aAbC6XqYo-H_rke_sFu3JPtem3PJRB0eGlE246IrPdf3b1cpfzy3cPr_7HnRX4CbHcYzclCbcPkomm7GpJ1hN3GyOSCzNx-I4PFfIf3xSQO2GVCagbv2FjSkG3Br51GzXrWoQsSCbi_nYYxHTmZBNYertxGr7TEGvym9kv1S87jHxgFsXMqxWkM7uhuCckNmXJWmZ-GrK6FGdnl6MnnH3ghXKo_MHQwOLXAWnWeS2kOk3Nrx46YcAgXi8Wiw4YoIqkXMPpd_Df-eHtcy_YL32qPmH2b3h5eWRse2FRH19EypsKaOXlYpNpeMR7J63oqh-oIQ1M2nkhO4FSZBD8aBaw\"", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/certificates?api-version=2018-09-01-preview", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "271e7fc9-294c-4c38-b3d6-0f845ac39917" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:54 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "2257" - ] - }, - "ResponseBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczMudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiMHZTQ29ra0w5NTBQYytuV3pLajcwYk5VWXJXWlRZckFWSnBwQUdDUXc4Zz0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURMRENDQWhTZ0F3SUJBZ0lJWTNUTVZicGRJVEV3RFFZSktvWklodmNOQVFFTEJRQXdGekVWTUJNR0ExVUVBd3dNVFdGaFZHVnpkRU5sY25ReE1DQVhEVEl3TURJeU5qQXdNREF3TUZvWUR6SXdOekF3TWpJMk1EQXdNREF3V2pBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRFVTeDlVR3UwOFFjM2VQbXFXQlJxR1FadUZPOTJnUFV6Y2lneEtJR2MzbDlqZUxDRGh5bjhNUlVzUGg0TnpTdlp6VmNxalFMTjl2bGM1N0Uva3VXb0pScFVML2ZRd0pvNm81KzNPTmpSQU42VlRSR0J2Yk9YN0FIWWNPVXZQZXg5Z00xc0kvcWFhd0pYOUs3dDBMY0VUUG14dVg2TTUxdTArcS93ek8zN2FWeDhXSkgyVFJ4ZnU5R25nNVp2QVBWaGIwa1VTNm1tRnFKNk1wdk1tSTF0S29WS2Y0ZEFoYlJVWDFrRTBiNm1Cb1R6ZlFsK052UzJ2bWJEN3VrTFgwQzJlWmM4aFBWNyt0alhPTzdseFpseDhsdUhzVnc1eDk5d1FUSWtLN0lvSHN5dml5UkVIMW00NHRsWCsrZ0YwSVBLRkFSUzJBcnAwMmRCY1ExSjFmK0RGQWdNQkFBR2plakI0TUVZR0ExVWRJd1EvTUQyQUZFMnJhYzdjNDNYaEN6OENCczhZVGE1ZWVsWUZvUnVrR1RBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREdDQ0dOMHpGVzZYU0V4TUIwR0ExVWREZ1FXQkJSTnEybk8zT04xNFFzL0FnYlBHRTJ1WG5wV0JUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWQzZ3oreGVkNTJEbm8zNlVJaGNEVDBVMHNVcERjL3hBN3lKZlZrd1dwSTZ6MndpWnhiYUs1ZlREUGlleXJ4d1NTN2EvSUpvNmE1YWtjY2RucTVPR1d2cFNUWEtCeWNOQ3ZwUUFpOTZ4dWUxOGdteXNnWVowZEVBNlFGdkVRL3ZxRWdUVC9uU3pYSWovRTFLU2lVMHNHUXpRMjBIZ3NvRVdGVi9KblVxZGt5WTZ1VlZyS3IxaUlFQnZQVGNzeDg0SVFhbXh3Y1lYQ3RWa2NrVSt5bVJtZ3NUeExBVTJKc0IvTjM2N0xxNjZyWWwvUUVOeUxmYkY0S1NnMTg4ODhVYytLY2sybjRQWm5ET21pb2hLcDQ2QlJuWW8rVDJpdXlveFI0Zzl5UHl4Y2s4THZOSGZCY0RqMS85blBtUmhVemx0d3IrUHRhZmdPZmUrVFYrYWZTR1dnIl19XX0sICJleHAiOiAxNTgyNzYyNTU1LCAiaWF0IjogMTU4Mjc1ODk1NSwgImlzcyI6ICJodHRwczovL3RyYWRld2luZHMzLnVzLmF0dGVzdC5henVyZS5uZXQiLCAibmJmIjogMTU4Mjc1ODk1NX0.SaVnZZtnE6-vgm6V8F5YoYyabRuRNAT66R_ZZw73w-DcFOxfAHnfY2z_0sZgmITUOvJbX0wemNNM-U3g_OjvLEC5stg3cL6E0DagY_WKlSiGzJ3jgfXMQs0_GLl0Qj0TLG-dK1NDGbMVc59lvTpQNvWknsG_xrd0f2x3MtoM8Re1Q_BUzgWsCYb-AeU52Da9iXG13ADmysLyqTh6vYL4jLcFhAJqTZot88nZKZqcayFPcA5bfrjiDK4VXGq-adxdDdRO-nMqCNuCzfFZGTfdVH79DPMGL3nV7fQPtPRqcVLa54lFS0y_8AfrueNMiEHaUxyWRmCL6AYMhyCJ-u28xw\"", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/certificates?api-version=2018-09-01-preview", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", - "RequestMethod": "PUT", - "RequestBody": "\"eyAiYWxnIjoiUlMyNTYiLCAieDVjIjogWyJNSUlETERDQ0FoU2dBd0lCQWdJSVkzVE1WYnBkSVRFd0RRWUpLb1pJaHZjTkFRRUxCUUF3RnpFVk1CTUdBMVVFQXd3TVRXRmhWR1Z6ZEVObGNuUXhNQ0FYRFRJd01ESXlOakF3TURBd01Gb1lEekl3TnpBd01qSTJNREF3TURBd1dqQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURVU3g5VUd1MDhRYzNlUG1xV0JScUdRWnVGTzkyZ1BVemNpZ3hLSUdjM2w5amVMQ0RoeW44TVJVc1BoNE56U3ZaelZjcWpRTE45dmxjNTdFL2t1V29KUnBVTC9mUXdKbzZvNSszT05qUkFONlZUUkdCdmJPWDdBSFljT1V2UGV4OWdNMXNJL3FhYXdKWDlLN3QwTGNFVFBteHVYNk01MXUwK3Evd3pPMzdhVng4V0pIMlRSeGZ1OUduZzVadkFQVmhiMGtVUzZtbUZxSjZNcHZNbUkxdEtvVktmNGRBaGJSVVgxa0UwYjZtQm9UemZRbCtOdlMydm1iRDd1a0xYMEMyZVpjOGhQVjcrdGpYT083bHhabHg4bHVIc1Z3NXg5OXdRVElrSzdJb0hzeXZpeVJFSDFtNDR0bFgrK2dGMElQS0ZBUlMyQXJwMDJkQmNRMUoxZitERkFnTUJBQUdqZWpCNE1FWUdBMVVkSXdRL01EMkFGRTJyYWM3YzQzWGhDejhDQnM4WVRhNWVlbFlGb1J1a0dUQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERHQ0NHTjB6Rlc2WFNFeE1CMEdBMVVkRGdRV0JCUk5xMm5PM09OMTRRcy9BZ2JQR0UydVhucFdCVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFkM2d6K3hlZDUyRG5vMzZVSWhjRFQwVTBzVXBEYy94QTd5SmZWa3dXcEk2ejJ3aVp4YmFLNWZURFBpZXlyeHdTUzdhL0lKbzZhNWFrY2NkbnE1T0dXdnBTVFhLQnljTkN2cFFBaTk2eHVlMThnbXlzZ1laMGRFQTZRRnZFUS92cUVnVFQvblN6WElqL0UxS1NpVTBzR1F6UTIwSGdzb0VXRlYvSm5VcWRreVk2dVZWcktyMWlJRUJ2UFRjc3g4NElRYW14d2NZWEN0Vmtja1UreW1SbWdzVHhMQVUySnNCL04zNjdMcTY2cllsL1FFTnlMZmJGNEtTZzE4ODg4VWMrS2NrMm40UFpuRE9taW9oS3A0NkJSbllvK1QyaXV5b3hSNGc5eVB5eGNrOEx2TkhmQmNEajEvOW5QbVJoVXpsdHdyK1B0YWZnT2ZlK1RWK2FmU0dXZyJdfQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGUiOiB7Imt0eSI6IlJTQSIsICJ4NWMiOlsiTUlJRExEQ0NBaFNnQXdJQkFnSUlXWXcreFFhUjBqd3dEUVlKS29aSWh2Y05BUUVMQlFBd0Z6RVZNQk1HQTFVRUF3d01UV0ZoVkdWemRFTmxjblF5TUNBWERUSXdNREl5TmpBd01EQXdNRm9ZRHpJd056QXdNakkyTURBd01EQXdXakFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRESXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDeE1XUXQvd09SeUpNKysxM0hCSjlMUE5xVk9XSGhqSnZkUGlYL3M3c1NCaVEwUWFwRDlVeXdVRGYwb1lTdUdIbGJSMHlOVURRODdsS1VqRE4wSEhYQlZPcW5sUFI1eVJzeko1WFNaMWNCSEp1R1lJMTlyUHRZSUZ1ZEkvZW5nSHZlcU5CMnNxK054MFJTZHdudk9id2k0azVqRmwzRWdUSWZyY0tyVnlhb0lxQWtjVGdVc1BZSWxlN2NIWHRiTVVmNml4Vm95L1AvYTUrSFh3NWpqMlVabTJtWENKQ2gzM1pGS01BR0xkWi9nemdFOFRNeFpMemsrSGg3bk1KbE4yUzgxUVNMU1lZaFlhR012ZnlWOTRWQlM0YTFRQS9JQkk5VGRESEZLcVZSSkhQYmVoQVJVOURnbklZUzZ2ejFncjRzR1g0MllvM3B3dmJaSGYyeFVGRzFBZ01CQUFHamVqQjRNRVlHQTFVZEl3US9NRDJBRkJhVW1DV0t5eXd1THhXL0NyeGpoVmR4YmVXUW9SdWtHVEFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRES0NDRm1NUHNVR2tkSThNQjBHQTFVZERnUVdCQlFXbEpnbGlzc3NMaThWdndxOFk0VlhjVzNsa0RBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCMjRLUE5rSTNOYjFkakg0bUE2MnhQTjVmaFFxVURqeUNaaE5GTjNVV2xZYjVCOVZpRWc3WkdpUmh6YkxnbDZDYVRhbGdDN3JnQ2RkS1R5NWgwT0s0cnpTZVREQkE2M01pYVV3OW1TY2ZZSHkwRjdSdWxDaTBRa0lHS3d0LzM2bk5QRllNcTd3SFphcGRhcG5seFdrazVLdXNRUEE2UWxxd1ZKR3FPNE5GYUNlQWdUSE51MHdvSGdUbHhGWSswVER5YVdVNEZBTW15d2FQejJLV2NBK0c3dTRlU1paaUdKZUQ1c0paNU4yWHRqUUhDUzNROVF2OENSVDRJS0NMK2RYWWY4WFVVd1pNc011RWVhRTlISjRuTWoxQkloSUpKL2V0TlowWkNwZFJzUWRDQktxbDE5VXFiMFBNZlpmOHZ3eFdJcW01a2YzbDE1RTE1TjNTM3dvWWwiXX19.Xnm1LYd11uQ6RwPPyBx0w83q-j4IUHy5Kz07R49i8A2Z9smyfYFZaN_7U0HOKwn0qsZHHukx66gsfRmKat5r0m3mM266ATFN_FiJxKOG0DFL7zywDyciXe8KHS7XU81PHD4wB427717Fog0q7jtiHV-29onyuPW5rJwDrqmsuLDu3JzLUDKw4WZgLVz1HIA-ytcz4gAdOi-7lEgqZ18AtejXqdpatTyobhAkN2uDBtIvv0N0Q1RuQbjGapUtrsO8OHxkyhuLlWlM5lLzcCWSze2y3uziAbMRIyb80ApFutEIdum3Smztv8A9cvP_blutdlDT5z7lwZX51nrle7Juag\"", - "RequestHeaders": { - "x-ms-client-request-id": [ - "fb22d164-be06-44b3-99bb-2db52c6dc4eb" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "3356" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:55 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "3786" - ] - }, - "ResponseBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczMudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiMHZTQ29ra0w5NTBQYytuV3pLajcwYk5VWXJXWlRZckFWSnBwQUdDUXc4Zz0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURMRENDQWhTZ0F3SUJBZ0lJWTNUTVZicGRJVEV3RFFZSktvWklodmNOQVFFTEJRQXdGekVWTUJNR0ExVUVBd3dNVFdGaFZHVnpkRU5sY25ReE1DQVhEVEl3TURJeU5qQXdNREF3TUZvWUR6SXdOekF3TWpJMk1EQXdNREF3V2pBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRFVTeDlVR3UwOFFjM2VQbXFXQlJxR1FadUZPOTJnUFV6Y2lneEtJR2MzbDlqZUxDRGh5bjhNUlVzUGg0TnpTdlp6VmNxalFMTjl2bGM1N0Uva3VXb0pScFVML2ZRd0pvNm81KzNPTmpSQU42VlRSR0J2Yk9YN0FIWWNPVXZQZXg5Z00xc0kvcWFhd0pYOUs3dDBMY0VUUG14dVg2TTUxdTArcS93ek8zN2FWeDhXSkgyVFJ4ZnU5R25nNVp2QVBWaGIwa1VTNm1tRnFKNk1wdk1tSTF0S29WS2Y0ZEFoYlJVWDFrRTBiNm1Cb1R6ZlFsK052UzJ2bWJEN3VrTFgwQzJlWmM4aFBWNyt0alhPTzdseFpseDhsdUhzVnc1eDk5d1FUSWtLN0lvSHN5dml5UkVIMW00NHRsWCsrZ0YwSVBLRkFSUzJBcnAwMmRCY1ExSjFmK0RGQWdNQkFBR2plakI0TUVZR0ExVWRJd1EvTUQyQUZFMnJhYzdjNDNYaEN6OENCczhZVGE1ZWVsWUZvUnVrR1RBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREdDQ0dOMHpGVzZYU0V4TUIwR0ExVWREZ1FXQkJSTnEybk8zT04xNFFzL0FnYlBHRTJ1WG5wV0JUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWQzZ3oreGVkNTJEbm8zNlVJaGNEVDBVMHNVcERjL3hBN3lKZlZrd1dwSTZ6MndpWnhiYUs1ZlREUGlleXJ4d1NTN2EvSUpvNmE1YWtjY2RucTVPR1d2cFNUWEtCeWNOQ3ZwUUFpOTZ4dWUxOGdteXNnWVowZEVBNlFGdkVRL3ZxRWdUVC9uU3pYSWovRTFLU2lVMHNHUXpRMjBIZ3NvRVdGVi9KblVxZGt5WTZ1VlZyS3IxaUlFQnZQVGNzeDg0SVFhbXh3Y1lYQ3RWa2NrVSt5bVJtZ3NUeExBVTJKc0IvTjM2N0xxNjZyWWwvUUVOeUxmYkY0S1NnMTg4ODhVYytLY2sybjRQWm5ET21pb2hLcDQ2QlJuWW8rVDJpdXlveFI0Zzl5UHl4Y2s4THZOSGZCY0RqMS85blBtUmhVemx0d3IrUHRhZmdPZmUrVFYrYWZTR1dnIl19LCB7ImFsZyI6ICJSUzI1NiIsICJrdHkiOiAiUlNBIiwgInVzZSI6ICJzaWciLCAieDVjIjogWyJNSUlETERDQ0FoU2dBd0lCQWdJSVdZdyt4UWFSMGp3d0RRWUpLb1pJaHZjTkFRRUxCUUF3RnpFVk1CTUdBMVVFQXd3TVRXRmhWR1Z6ZEVObGNuUXlNQ0FYRFRJd01ESXlOakF3TURBd01Gb1lEekl3TnpBd01qSTJNREF3TURBd1dqQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERJd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUN4TVdRdC93T1J5Sk0rKzEzSEJKOUxQTnFWT1dIaGpKdmRQaVgvczdzU0JpUTBRYXBEOVV5d1VEZjBvWVN1R0hsYlIweU5VRFE4N2xLVWpETjBISFhCVk9xbmxQUjV5UnN6SjVYU1oxY0JISnVHWUkxOXJQdFlJRnVkSS9lbmdIdmVxTkIyc3ErTngwUlNkd252T2J3aTRrNWpGbDNFZ1RJZnJjS3JWeWFvSXFBa2NUZ1VzUFlJbGU3Y0hYdGJNVWY2aXhWb3kvUC9hNStIWHc1amoyVVptMm1YQ0pDaDMzWkZLTUFHTGRaL2d6Z0U4VE14Wkx6aytIaDduTUpsTjJTODFRU0xTWVloWWFHTXZmeVY5NFZCUzRhMVFBL0lCSTlUZERIRktxVlJKSFBiZWhBUlU5RGduSVlTNnZ6MWdyNHNHWDQyWW8zcHd2YlpIZjJ4VUZHMUFnTUJBQUdqZWpCNE1FWUdBMVVkSXdRL01EMkFGQmFVbUNXS3l5d3VMeFcvQ3J4amhWZHhiZVdRb1J1a0dUQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERLQ0NGbU1Qc1VHa2RJOE1CMEdBMVVkRGdRV0JCUVdsSmdsaXNzc0xpOFZ2d3E4WTRWWGNXM2xrREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUIyNEtQTmtJM05iMWRqSDRtQTYyeFBONWZoUXFVRGp5Q1poTkZOM1VXbFliNUI5VmlFZzdaR2lSaHpiTGdsNkNhVGFsZ0M3cmdDZGRLVHk1aDBPSzRyelNlVERCQTYzTWlhVXc5bVNjZllIeTBGN1J1bENpMFFrSUdLd3QvMzZuTlBGWU1xN3dIWmFwZGFwbmx4V2trNUt1c1FQQTZRbHF3VkpHcU80TkZhQ2VBZ1RITnUwd29IZ1RseEZZKzBURHlhV1U0RkFNbXl3YVB6MktXY0ErRzd1NGVTWlppR0plRDVzSlo1TjJYdGpRSENTM1E5UXY4Q1JUNElLQ0wrZFhZZjhYVVV3Wk1zTXVFZWFFOUhKNG5NajFCSWhJSkovZXROWjBaQ3BkUnNRZENCS3FsMTlVcWIwUE1mWmY4dnd4V0lxbTVrZjNsMTVFMTVOM1Mzd29ZbCJdfV19LCAiZXhwIjogMTU4Mjc2MjU1NiwgImlhdCI6IDE1ODI3NTg5NTYsICJpc3MiOiAiaHR0cHM6Ly90cmFkZXdpbmRzMy51cy5hdHRlc3QuYXp1cmUubmV0IiwgIm5iZiI6IDE1ODI3NTg5NTZ9.jx5sreZW3T5HO27dTKAu7Q1an_ktAmu7Sap2KOYfZXyTT43nvqXlZ0ThCZNKq6n57dW5TEBWiIMT02Y2y0ISYAjvryq8469btj24KDtlV_uxr9-7o85uNH0qmmNNlvXv8StaqWvCa1ubwt0cyAN_uqGehwaOpdvoTOYxbVCT8zRe13EXpyGl_Apgf42EPbNxx8WfcIYTr950gPliPNeki5ldz4b4cIwevxZ7T0N8VS0gw4IQndpj0BekryIdVY0qh3ZkgNM4lEmHkk25vNWInJjtVcH7Mhk7YSNon5-VGpWTwPfTW4h4dMlVyQr8_HCAzEHQYWUTUq5TIJfY8eu-rg\"", - "StatusCode": 200 - }, - { - "RequestUri": "/operations/policy/certificates?api-version=2018-09-01-preview", - "EncodedRequestUri": "L29wZXJhdGlvbnMvcG9saWN5L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", - "RequestMethod": "POST", - "RequestBody": "\"eyAiYWxnIjoiUlMyNTYiLCAieDVjIjogWyJNSUlETERDQ0FoU2dBd0lCQWdJSVkzVE1WYnBkSVRFd0RRWUpLb1pJaHZjTkFRRUxCUUF3RnpFVk1CTUdBMVVFQXd3TVRXRmhWR1Z6ZEVObGNuUXhNQ0FYRFRJd01ESXlOakF3TURBd01Gb1lEekl3TnpBd01qSTJNREF3TURBd1dqQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURVU3g5VUd1MDhRYzNlUG1xV0JScUdRWnVGTzkyZ1BVemNpZ3hLSUdjM2w5amVMQ0RoeW44TVJVc1BoNE56U3ZaelZjcWpRTE45dmxjNTdFL2t1V29KUnBVTC9mUXdKbzZvNSszT05qUkFONlZUUkdCdmJPWDdBSFljT1V2UGV4OWdNMXNJL3FhYXdKWDlLN3QwTGNFVFBteHVYNk01MXUwK3Evd3pPMzdhVng4V0pIMlRSeGZ1OUduZzVadkFQVmhiMGtVUzZtbUZxSjZNcHZNbUkxdEtvVktmNGRBaGJSVVgxa0UwYjZtQm9UemZRbCtOdlMydm1iRDd1a0xYMEMyZVpjOGhQVjcrdGpYT083bHhabHg4bHVIc1Z3NXg5OXdRVElrSzdJb0hzeXZpeVJFSDFtNDR0bFgrK2dGMElQS0ZBUlMyQXJwMDJkQmNRMUoxZitERkFnTUJBQUdqZWpCNE1FWUdBMVVkSXdRL01EMkFGRTJyYWM3YzQzWGhDejhDQnM4WVRhNWVlbFlGb1J1a0dUQVhNUlV3RXdZRFZRUUREQXhOWVdGVVpYTjBRMlZ5ZERHQ0NHTjB6Rlc2WFNFeE1CMEdBMVVkRGdRV0JCUk5xMm5PM09OMTRRcy9BZ2JQR0UydVhucFdCVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFkM2d6K3hlZDUyRG5vMzZVSWhjRFQwVTBzVXBEYy94QTd5SmZWa3dXcEk2ejJ3aVp4YmFLNWZURFBpZXlyeHdTUzdhL0lKbzZhNWFrY2NkbnE1T0dXdnBTVFhLQnljTkN2cFFBaTk2eHVlMThnbXlzZ1laMGRFQTZRRnZFUS92cUVnVFQvblN6WElqL0UxS1NpVTBzR1F6UTIwSGdzb0VXRlYvSm5VcWRreVk2dVZWcktyMWlJRUJ2UFRjc3g4NElRYW14d2NZWEN0Vmtja1UreW1SbWdzVHhMQVUySnNCL04zNjdMcTY2cllsL1FFTnlMZmJGNEtTZzE4ODg4VWMrS2NrMm40UFpuRE9taW9oS3A0NkJSbllvK1QyaXV5b3hSNGc5eVB5eGNrOEx2TkhmQmNEajEvOW5QbVJoVXpsdHdyK1B0YWZnT2ZlK1RWK2FmU0dXZyJdfQ.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGUiOiB7Imt0eSI6IlJTQSIsICJ4NWMiOlsiTUlJRExEQ0NBaFNnQXdJQkFnSUlXWXcreFFhUjBqd3dEUVlKS29aSWh2Y05BUUVMQlFBd0Z6RVZNQk1HQTFVRUF3d01UV0ZoVkdWemRFTmxjblF5TUNBWERUSXdNREl5TmpBd01EQXdNRm9ZRHpJd056QXdNakkyTURBd01EQXdXakFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRESXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDeE1XUXQvd09SeUpNKysxM0hCSjlMUE5xVk9XSGhqSnZkUGlYL3M3c1NCaVEwUWFwRDlVeXdVRGYwb1lTdUdIbGJSMHlOVURRODdsS1VqRE4wSEhYQlZPcW5sUFI1eVJzeko1WFNaMWNCSEp1R1lJMTlyUHRZSUZ1ZEkvZW5nSHZlcU5CMnNxK054MFJTZHdudk9id2k0azVqRmwzRWdUSWZyY0tyVnlhb0lxQWtjVGdVc1BZSWxlN2NIWHRiTVVmNml4Vm95L1AvYTUrSFh3NWpqMlVabTJtWENKQ2gzM1pGS01BR0xkWi9nemdFOFRNeFpMemsrSGg3bk1KbE4yUzgxUVNMU1lZaFlhR012ZnlWOTRWQlM0YTFRQS9JQkk5VGRESEZLcVZSSkhQYmVoQVJVOURnbklZUzZ2ejFncjRzR1g0MllvM3B3dmJaSGYyeFVGRzFBZ01CQUFHamVqQjRNRVlHQTFVZEl3US9NRDJBRkJhVW1DV0t5eXd1THhXL0NyeGpoVmR4YmVXUW9SdWtHVEFYTVJVd0V3WURWUVFEREF4TllXRlVaWE4wUTJWeWRES0NDRm1NUHNVR2tkSThNQjBHQTFVZERnUVdCQlFXbEpnbGlzc3NMaThWdndxOFk0VlhjVzNsa0RBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCMjRLUE5rSTNOYjFkakg0bUE2MnhQTjVmaFFxVURqeUNaaE5GTjNVV2xZYjVCOVZpRWc3WkdpUmh6YkxnbDZDYVRhbGdDN3JnQ2RkS1R5NWgwT0s0cnpTZVREQkE2M01pYVV3OW1TY2ZZSHkwRjdSdWxDaTBRa0lHS3d0LzM2bk5QRllNcTd3SFphcGRhcG5seFdrazVLdXNRUEE2UWxxd1ZKR3FPNE5GYUNlQWdUSE51MHdvSGdUbHhGWSswVER5YVdVNEZBTW15d2FQejJLV2NBK0c3dTRlU1paaUdKZUQ1c0paNU4yWHRqUUhDUzNROVF2OENSVDRJS0NMK2RYWWY4WFVVd1pNc011RWVhRTlISjRuTWoxQkloSUpKL2V0TlowWkNwZFJzUWRDQktxbDE5VXFiMFBNZlpmOHZ3eFdJcW01a2YzbDE1RTE1TjNTM3dvWWwiXX19.Xnm1LYd11uQ6RwPPyBx0w83q-j4IUHy5Kz07R49i8A2Z9smyfYFZaN_7U0HOKwn0qsZHHukx66gsfRmKat5r0m3mM266ATFN_FiJxKOG0DFL7zywDyciXe8KHS7XU81PHD4wB427717Fog0q7jtiHV-29onyuPW5rJwDrqmsuLDu3JzLUDKw4WZgLVz1HIA-ytcz4gAdOi-7lEgqZ18AtejXqdpatTyobhAkN2uDBtIvv0N0Q1RuQbjGapUtrsO8OHxkyhuLlWlM5lLzcCWSze2y3uziAbMRIyb80ApFutEIdum3Smztv8A9cvP_blutdlDT5z7lwZX51nrle7Juag\"", - "RequestHeaders": { - "x-ms-client-request-id": [ - "4520847f-d86e-428b-b24b-6d05ea9a0664" - ], - "Accept-Language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.28325.01", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.18363.", - "Microsoft.Azure.Attestation.AttestationClient/0.10.0.0" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "3356" - ] - }, - "ResponseHeaders": { - "Date": [ - "Wed, 26 Feb 2020 23:15:57 GMT" - ], - "Server": [ - "Kestrel" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "2257" - ] - }, - "ResponseBody": "\"eyJhbGciOiAiUlMyNTYiLCAiamt1IjogImh0dHBzOi8vdHJhZGV3aW5kczMudXMuYXR0ZXN0LmF6dXJlLm5ldC9jZXJ0cyIsICJraWQiOiAiMHZTQ29ra0w5NTBQYytuV3pLajcwYk5VWXJXWlRZckFWSnBwQUdDUXc4Zz0iLCAidHlwIjogIkpXVCJ9.eyJhYXMtcG9saWN5Q2VydGlmaWNhdGVzIjogeyJrZXlzIjogW3siYWxnIjogIlJTMjU2IiwgImt0eSI6ICJSU0EiLCAidXNlIjogInNpZyIsICJ4NWMiOiBbIk1JSURMRENDQWhTZ0F3SUJBZ0lJWTNUTVZicGRJVEV3RFFZSktvWklodmNOQVFFTEJRQXdGekVWTUJNR0ExVUVBd3dNVFdGaFZHVnpkRU5sY25ReE1DQVhEVEl3TURJeU5qQXdNREF3TUZvWUR6SXdOekF3TWpJMk1EQXdNREF3V2pBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRFVTeDlVR3UwOFFjM2VQbXFXQlJxR1FadUZPOTJnUFV6Y2lneEtJR2MzbDlqZUxDRGh5bjhNUlVzUGg0TnpTdlp6VmNxalFMTjl2bGM1N0Uva3VXb0pScFVML2ZRd0pvNm81KzNPTmpSQU42VlRSR0J2Yk9YN0FIWWNPVXZQZXg5Z00xc0kvcWFhd0pYOUs3dDBMY0VUUG14dVg2TTUxdTArcS93ek8zN2FWeDhXSkgyVFJ4ZnU5R25nNVp2QVBWaGIwa1VTNm1tRnFKNk1wdk1tSTF0S29WS2Y0ZEFoYlJVWDFrRTBiNm1Cb1R6ZlFsK052UzJ2bWJEN3VrTFgwQzJlWmM4aFBWNyt0alhPTzdseFpseDhsdUhzVnc1eDk5d1FUSWtLN0lvSHN5dml5UkVIMW00NHRsWCsrZ0YwSVBLRkFSUzJBcnAwMmRCY1ExSjFmK0RGQWdNQkFBR2plakI0TUVZR0ExVWRJd1EvTUQyQUZFMnJhYzdjNDNYaEN6OENCczhZVGE1ZWVsWUZvUnVrR1RBWE1SVXdFd1lEVlFRRERBeE5ZV0ZVWlhOMFEyVnlkREdDQ0dOMHpGVzZYU0V4TUIwR0ExVWREZ1FXQkJSTnEybk8zT04xNFFzL0FnYlBHRTJ1WG5wV0JUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWQzZ3oreGVkNTJEbm8zNlVJaGNEVDBVMHNVcERjL3hBN3lKZlZrd1dwSTZ6MndpWnhiYUs1ZlREUGlleXJ4d1NTN2EvSUpvNmE1YWtjY2RucTVPR1d2cFNUWEtCeWNOQ3ZwUUFpOTZ4dWUxOGdteXNnWVowZEVBNlFGdkVRL3ZxRWdUVC9uU3pYSWovRTFLU2lVMHNHUXpRMjBIZ3NvRVdGVi9KblVxZGt5WTZ1VlZyS3IxaUlFQnZQVGNzeDg0SVFhbXh3Y1lYQ3RWa2NrVSt5bVJtZ3NUeExBVTJKc0IvTjM2N0xxNjZyWWwvUUVOeUxmYkY0S1NnMTg4ODhVYytLY2sybjRQWm5ET21pb2hLcDQ2QlJuWW8rVDJpdXlveFI0Zzl5UHl4Y2s4THZOSGZCY0RqMS85blBtUmhVemx0d3IrUHRhZmdPZmUrVFYrYWZTR1dnIl19XX0sICJleHAiOiAxNTgyNzYyNTU4LCAiaWF0IjogMTU4Mjc1ODk1OCwgImlzcyI6ICJodHRwczovL3RyYWRld2luZHMzLnVzLmF0dGVzdC5henVyZS5uZXQiLCAibmJmIjogMTU4Mjc1ODk1OH0.GzjaZOC36ezFK84EiR4VvjSSghvYm3YW-nc-uO4MBkqPw1qwts2iwPfkA_AEHY4EbZk5RWXH_cVYZoZ06gEC1BgXYD2SwGEf0M6K3l28-zCGbG2ta0q-IsMYI2oQRoC8wMeSfiQtCAAsGGjcDLV3tLiulcQyCKA9va02I19Mxb5EEYwpPTP-VddNnbBEe9cOYRxxRk6aH2xTpmWUXMEoevi74LK_ZM630DzPxTMFyILJzRUynSjx5evYN7_cCatGcTskTvvT-qQEH2BSd8ZkjeR-uD51VQQRBpRi9dWvxEC7dW_WHDkzXLWn5kj4e8x7QdIuAoFcHAxqjnL3zzgI6w\"", - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/sdk/attestation/ci.yml b/sdk/attestation/ci.yml index 4a97efd2091c3..ea25397eced6a 100644 --- a/sdk/attestation/ci.yml +++ b/sdk/attestation/ci.yml @@ -31,7 +31,5 @@ extends: ServiceDirectory: attestation ArtifactName: packages Artifacts: - - name: Microsoft.Azure.Attestation - safeName: MicrosoftAzureAttestation - name: Azure.Security.Attestation safeName: AzureSecurityAttestation diff --git a/sdk/attestation/service.projects b/sdk/attestation/service.projects deleted file mode 100644 index 7c446b510a841..0000000000000 --- a/sdk/attestation/service.projects +++ /dev/null @@ -1,6 +0,0 @@ - - - - - -