From 40b94f1f927a7f8306eba04a4da7b11986291f41 Mon Sep 17 00:00:00 2001 From: Heath Stewart Date: Wed, 12 May 2021 11:54:57 -0700 Subject: [PATCH] Unify Key Vault Administration APIs (#20968) * Rename operation classes and .models namespace * Change order of role definition methods * Use commit 1e2c9f3e for Administration package * Create CreateOrUpdateRoleDefinitionOptions * Rename KeyVaultRoleAssignmentPropertiesWithScope * Enable backup and restore sample * Updated custom role definition tests * Rename to KeyVaultSelectiveKeyRestoreOperation and Result --- .../CHANGELOG.md | 12 + ....KeyVault.Administration.netstandard2.0.cs | 344 +++++++++--------- .../samples/Sample1_BackupHelloWorldAsync.md | 8 +- .../samples/Sample1_BackupHelloWorldSync.md | 4 +- .../samples/Sample2_SelectiveRestore.md | 4 +- .../samples/Sample3_BackRestoreResume.md | 8 +- .../CreateOrUpdateRoleDefinitionOptions.cs | 95 +++++ .../src/Generated/BackupRestoreRestClient.cs | 2 +- .../Generated/Models/KeyVaultDataAction.cs | 2 +- .../KeyVaultPermission.Serialization.cs | 1 - .../Generated/Models/KeyVaultPermission.cs | 1 - .../KeyVaultRoleAssignment.Serialization.cs | 4 +- .../Models/KeyVaultRoleAssignment.cs | 4 +- ...tRoleAssignmentProperties.Serialization.cs | 37 +- .../KeyVaultRoleAssignmentProperties.cs | 33 +- ...ignmentPropertiesInternal.Serialization.cs | 25 ++ ...eyVaultRoleAssignmentPropertiesInternal.cs | 39 ++ ...gnmentPropertiesWithScope.Serialization.cs | 47 --- ...yVaultRoleAssignmentPropertiesWithScope.cs | 38 -- .../KeyVaultRoleDefinition.Serialization.cs | 1 - .../Models/KeyVaultRoleDefinition.cs | 1 - .../Models/KeyVaultRoleDefinitionType.cs | 2 +- .../src/Generated/Models/KeyVaultRoleScope.cs | 2 +- .../src/Generated/Models/KeyVaultRoleType.cs | 2 +- .../Models/RoleAssignmentCreateParameters.cs | 4 +- .../Generated/RoleAssignmentsRestClient.cs | 2 +- .../Generated/RoleDefinitionsRestClient.cs | 2 +- .../src/KeyVaultAccessControlClient.cs | 94 ++--- .../src/KeyVaultAdministrationModelFactory.cs | 26 +- .../src/KeyVaultBackupClient.cs | 44 +-- ...peration.cs => KeyVaultBackupOperation.cs} | 22 +- ...ackupResult.cs => KeyVaultBackupResult.cs} | 4 +- .../{DataAction.cs => KeyVaultDataAction.cs} | 2 +- ...eration.cs => KeyVaultRestoreOperation.cs} | 29 +- ...toreResult.cs => KeyVaultRestoreResult.cs} | 5 +- .../src/KeyVaultRoleAssignmentProperties.cs | 2 +- ...yVaultRoleAssignmentPropertiesWithScope.cs | 2 +- ...nType.cs => KeyVaultRoleDefinitionType.cs} | 3 +- .../src/KeyVaultRoleScope.cs | 2 +- ...> KeyVaultSelectiveKeyRestoreOperation.cs} | 30 +- ...s => KeyVaultSelectiveKeyRestoreResult.cs} | 4 +- .../src/RestoreOperationInternal.cs | 10 +- .../src/RoleType.cs | 3 +- .../src/autorest.md | 4 +- .../tests/AccessControlClientLiveTests.cs | 76 +++- .../tests/AccessControlTestBase.cs | 3 +- .../tests/BackupOperationTests.cs | 16 +- ...reateOrUpdateRoleDefinitionOptionsTests.cs | 67 ++++ .../tests/FullBackupClientLiveTests.cs | 12 +- .../tests/KeyVaultBackupClientTests.cs | 4 - .../tests/RestoreOperationTests.cs | 16 +- .../tests/RoleAssignmentScopeTests.cs | 4 - .../SelectiveKeyRestoreOperationTests.cs | 16 +- .../CreateOrUpdateRoleDefinition.json | 60 ++- .../CreateOrUpdateRoleDefinitionAsync.json | 62 ++-- .../DeleteRoleDefinition.json | 146 ++++---- .../DeleteRoleDefinitionAsync.json | 154 ++++---- .../GetRoleDefinition.json | 54 ++- .../GetRoleDefinitionAsync.json | 54 ++- .../BackupAndRestoreSampleAsync.json | 212 +++++------ .../BackupAndRestoreSampleAsyncAsync.json | 222 ++++++----- .../tests/samples/Sample1_BackupHelloWorld.cs | 12 +- .../tests/samples/Sample2_SelectiveRestore.cs | 9 +- .../samples/Sample3_BackRestoreResume.cs | 12 +- 64 files changed, 1225 insertions(+), 996 deletions(-) create mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/src/CreateOrUpdateRoleDefinitionOptions.cs create mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.Serialization.cs create mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.cs delete mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.Serialization.cs delete mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.cs rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{BackupOperation.cs => KeyVaultBackupOperation.cs} (86%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{BackupResult.cs => KeyVaultBackupResult.cs} (86%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{DataAction.cs => KeyVaultDataAction.cs} (82%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{RestoreOperation.cs => KeyVaultRestoreOperation.cs} (72%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{RestoreResult.cs => KeyVaultRestoreResult.cs} (83%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{RoleDefinitionType.cs => KeyVaultRoleDefinitionType.cs} (76%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{SelectiveKeyRestoreOperation.cs => KeyVaultSelectiveKeyRestoreOperation.cs} (71%) rename sdk/keyvault/Azure.Security.KeyVault.Administration/src/{SelectiveKeyRestoreResult.cs => KeyVaultSelectiveKeyRestoreResult.cs} (81%) create mode 100644 sdk/keyvault/Azure.Security.KeyVault.Administration/tests/CreateOrUpdateRoleDefinitionOptionsTests.cs diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/CHANGELOG.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/CHANGELOG.md index 25715afd8a20..5cf04d14b95d 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/CHANGELOG.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/CHANGELOG.md @@ -9,6 +9,18 @@ - Updated dependency versions +### Breaking Changes + +- Changed parameter order in `KeyVaultAccessControlClient.DeleteRoleDefinition` and `KeyVaultAccessControlClient.DeleteRoleDefinitionAsync`. +- Changed parameter order in `KeyVaultAccessControlClient.GetRoleDefinition` and `KeyVaultAccessControlClient.GetRoleDefinitionAsync`. +- Changed parameters for `KeyVaultAccessControlClient.CreateOrUpdateRoleDefinition` and `KeyVaultAccessControlClient.CreateOrUpdateRoleDefinitionAsync` to accept new `CreateOrUpdateRoleDefinitionOptions` class. +- Moved all classes from the `Azure.Security.KeyVault.Administration.Models` namespace to `Azure.Security.KeyVault.Administration`. +- Renamed `BackupOperation` to `KeyVaultBackupOperation`. +- Renamed `KeyVaultRoleAssignmentPropertiesWithScope` to `KeyVaultRoleAssignmentProperties`. +- Renamed `RestoreOperation` to `KeyVaultRestoreOperation`. +- Renamed `SelectiveKeyRestoreOperation` to `KeyVaultSelectiveRestoreOperation`. +- Renamed `SelectiveKeyRestoreResult` to `KeyVaultSelectiveRestoreResult`. + ## 4.0.0-beta.4 (2021-02-10) ### Added diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/api/Azure.Security.KeyVault.Administration.netstandard2.0.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/api/Azure.Security.KeyVault.Administration.netstandard2.0.cs index 514b7510b8a1..358d19659f5e 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/api/Azure.Security.KeyVault.Administration.netstandard2.0.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/api/Azure.Security.KeyVault.Administration.netstandard2.0.cs @@ -1,27 +1,15 @@ namespace Azure.Security.KeyVault.Administration { - public partial class BackupOperation : Azure.Operation + public partial class CreateOrUpdateRoleDefinitionOptions { - protected BackupOperation() { } - public BackupOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } - public System.DateTimeOffset? EndTime { get { throw null; } } - public override bool HasCompleted { get { throw null; } } - public override bool HasValue { get { throw null; } } - public override string Id { get { throw null; } } - public System.DateTimeOffset? StartTime { get { throw null; } } - public override Azure.Security.KeyVault.Administration.BackupResult Value { get { throw null; } } - public override Azure.Response GetRawResponse() { throw null; } - public override Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } - } - public partial class BackupResult - { - internal BackupResult() { } - public System.DateTimeOffset EndTime { get { throw null; } } - public System.Uri FolderUri { get { throw null; } } - public System.DateTimeOffset StartTime { get { throw null; } } + public CreateOrUpdateRoleDefinitionOptions(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope) { } + public CreateOrUpdateRoleDefinitionOptions(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid roleDefinitionName) { } + public System.Collections.Generic.IList AssignableScopes { get { throw null; } } + public string Description { get { throw null; } set { } } + public System.Collections.Generic.IList Permissions { get { throw null; } } + public System.Guid RoleDefinitionName { get { throw null; } } + public string RoleName { get { throw null; } set { } } + public Azure.Security.KeyVault.Administration.KeyVaultRoleScope RoleScope { get { throw null; } } } public partial class KeyVaultAccessControlClient { @@ -29,22 +17,24 @@ protected KeyVaultAccessControlClient() { } public KeyVaultAccessControlClient(System.Uri vaultUri, Azure.Core.TokenCredential credential) { } public KeyVaultAccessControlClient(System.Uri vaultUri, Azure.Core.TokenCredential credential, Azure.Security.KeyVault.Administration.KeyVaultAdministrationClientOptions options) { } public virtual System.Uri VaultUri { get { throw null; } } - public virtual Azure.Response CreateOrUpdateRoleDefinition(string roleDefinitionDescription, Azure.Security.KeyVault.Administration.KeyVaultPermission permissions, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope = default(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope), System.Guid? roleDefinitionName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> CreateOrUpdateRoleDefinitionAsync(string roleDefinitionDescription, Azure.Security.KeyVault.Administration.KeyVaultPermission permissions, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope = default(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope), System.Guid? roleDefinitionName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response CreateRoleAssignment(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleDefinitionId, string principalId, System.Guid? roleAssignmentName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> CreateRoleAssignmentAsync(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleDefinitionId, string principalId, System.Guid? roleAssignmentName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response DeleteRoleAssignment(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> DeleteRoleAssignmentAsync(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response DeleteRoleDefinition(System.Guid roleDefinitionName, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> DeleteRoleDefinitionAsync(System.Guid roleDefinitionName, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response GetRoleAssignment(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> GetRoleAssignmentAsync(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Pageable GetRoleAssignments(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.AsyncPageable GetRoleAssignmentsAsync(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response GetRoleDefinition(System.Guid roleDefinitionName, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> GetRoleDefinitionAsync(System.Guid roleDefinitionName, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Pageable GetRoleDefinitions(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.AsyncPageable GetRoleDefinitionsAsync(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response CreateOrUpdateRoleDefinition(Azure.Security.KeyVault.Administration.CreateOrUpdateRoleDefinitionOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response CreateOrUpdateRoleDefinition(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid? roleDefinitionName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateRoleDefinitionAsync(Azure.Security.KeyVault.Administration.CreateOrUpdateRoleDefinitionOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateRoleDefinitionAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid? roleDefinitionName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response CreateRoleAssignment(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleDefinitionId, string principalId, System.Guid? roleAssignmentName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateRoleAssignmentAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleDefinitionId, string principalId, System.Guid? roleAssignmentName = default(System.Guid?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response DeleteRoleAssignment(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> DeleteRoleAssignmentAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response DeleteRoleDefinition(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid roleDefinitionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> DeleteRoleDefinitionAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid roleDefinitionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetRoleAssignment(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetRoleAssignmentAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, string roleAssignmentName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetRoleAssignments(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetRoleAssignmentsAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetRoleDefinition(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid roleDefinitionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetRoleDefinitionAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Guid roleDefinitionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetRoleDefinitions(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetRoleDefinitionsAsync(Azure.Security.KeyVault.Administration.KeyVaultRoleScope roleScope, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } public partial class KeyVaultAdministrationClientOptions : Azure.Core.ClientOptions { @@ -57,13 +47,13 @@ public enum ServiceVersion } public static partial class KeyVaultAdministrationModelFactory { - public static Azure.Security.KeyVault.Administration.BackupOperation BackupOperation(Azure.Response response, Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id, System.Uri blobContainerUri, System.DateTimeOffset? startTime = default(System.DateTimeOffset?), System.DateTimeOffset? endTime = default(System.DateTimeOffset?), string errorMessage = null) { throw null; } - public static Azure.Security.KeyVault.Administration.BackupResult BackupResult(System.Uri folderUri, System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } - public static Azure.Security.KeyVault.Administration.RestoreOperation RestoreOperation(Azure.Response response, Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id, System.DateTimeOffset? startTime = default(System.DateTimeOffset?), System.DateTimeOffset? endTime = default(System.DateTimeOffset?), string errorMessage = null) { throw null; } - public static Azure.Security.KeyVault.Administration.RestoreResult RestoreResult(System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } - public static Azure.Security.KeyVault.Administration.KeyVaultRoleAssignment RoleAssignment(string id, string name, string type, Azure.Security.KeyVault.Administration.KeyVaultRoleAssignmentPropertiesWithScope properties) { throw null; } - public static Azure.Security.KeyVault.Administration.KeyVaultRoleDefinition RoleDefinition(string id, string name, string type, string roleName, string description, string roleType, System.Collections.Generic.IList permissions, System.Collections.Generic.IList assignableScopes) { throw null; } - public static Azure.Security.KeyVault.Administration.RestoreResult SelectiveKeyRestoreResult(System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultBackupOperation BackupOperation(Azure.Response response, Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id, System.Uri blobContainerUri, System.DateTimeOffset? startTime = default(System.DateTimeOffset?), System.DateTimeOffset? endTime = default(System.DateTimeOffset?), string errorMessage = null) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultBackupResult BackupResult(System.Uri folderUri, System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRestoreOperation RestoreOperation(Azure.Response response, Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id, System.DateTimeOffset? startTime = default(System.DateTimeOffset?), System.DateTimeOffset? endTime = default(System.DateTimeOffset?), string errorMessage = null) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRestoreResult RestoreResult(System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleAssignment RoleAssignment(string id, string name, string type, Azure.Security.KeyVault.Administration.KeyVaultRoleAssignmentProperties properties) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleDefinition RoleDefinition(string id, string name, string type, string roleName, string description, string roleType, System.Collections.Generic.IList permissions, System.Collections.Generic.IList assignableScopes) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRestoreResult SelectiveKeyRestoreResult(System.DateTimeOffset startTime, System.DateTimeOffset endTime) { throw null; } } public partial class KeyVaultBackupClient { @@ -71,192 +61,212 @@ protected KeyVaultBackupClient() { } public KeyVaultBackupClient(System.Uri vaultUri, Azure.Core.TokenCredential credential) { } public KeyVaultBackupClient(System.Uri vaultUri, Azure.Core.TokenCredential credential, Azure.Security.KeyVault.Administration.KeyVaultAdministrationClientOptions options) { } public virtual System.Uri VaultUri { get { throw null; } } - public virtual Azure.Security.KeyVault.Administration.BackupOperation StartBackup(System.Uri blobStorageUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task StartBackupAsync(System.Uri blobStorageUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Security.KeyVault.Administration.RestoreOperation StartRestore(System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task StartRestoreAsync(System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Security.KeyVault.Administration.SelectiveKeyRestoreOperation StartSelectiveRestore(string keyName, System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task StartSelectiveRestoreAsync(string keyName, System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - } - public partial class KeyVaultPermission - { - public KeyVaultPermission() { } - public System.Collections.Generic.IList Actions { get { throw null; } } - public System.Collections.Generic.IList DataActions { get { throw null; } } - public System.Collections.Generic.IList NotActions { get { throw null; } } - public System.Collections.Generic.IList NotDataActions { get { throw null; } } - } - public partial class KeyVaultRoleAssignment - { - internal KeyVaultRoleAssignment() { } - public string Id { get { throw null; } } - public string Name { get { throw null; } } - public Azure.Security.KeyVault.Administration.KeyVaultRoleAssignmentPropertiesWithScope Properties { get { throw null; } } - public string Type { get { throw null; } } - } - public partial class KeyVaultRoleAssignmentPropertiesWithScope - { - internal KeyVaultRoleAssignmentPropertiesWithScope() { } - public string PrincipalId { get { throw null; } } - public string RoleDefinitionId { get { throw null; } } - public Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope? Scope { get { throw null; } } - } - public partial class KeyVaultRoleDefinition - { - public KeyVaultRoleDefinition() { } - public System.Collections.Generic.IList AssignableScopes { get { throw null; } } - public string Description { get { throw null; } set { } } - public string Id { get { throw null; } } - public string Name { get { throw null; } } - public System.Collections.Generic.IList Permissions { get { throw null; } } - public string RoleName { get { throw null; } set { } } - public Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType? RoleType { get { throw null; } set { } } - public Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType? Type { get { throw null; } } + public virtual Azure.Security.KeyVault.Administration.KeyVaultBackupOperation StartBackup(System.Uri blobStorageUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task StartBackupAsync(System.Uri blobStorageUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Security.KeyVault.Administration.KeyVaultRestoreOperation StartRestore(System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task StartRestoreAsync(System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Security.KeyVault.Administration.KeyVaultSelectiveKeyRestoreOperation StartSelectiveRestore(string keyName, System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task StartSelectiveRestoreAsync(string keyName, System.Uri folderUri, string sasToken, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } - public partial class RestoreOperation : Azure.Operation + public partial class KeyVaultBackupOperation : Azure.Operation { - protected RestoreOperation() { } - public RestoreOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } + protected KeyVaultBackupOperation() { } + public KeyVaultBackupOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } public System.DateTimeOffset? EndTime { get { throw null; } } public override bool HasCompleted { get { throw null; } } public override bool HasValue { get { throw null; } } public override string Id { get { throw null; } } public System.DateTimeOffset? StartTime { get { throw null; } } - public override Azure.Security.KeyVault.Administration.RestoreResult Value { get { throw null; } } + public override Azure.Security.KeyVault.Administration.KeyVaultBackupResult Value { get { throw null; } } public override Azure.Response GetRawResponse() { throw null; } public override Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override System.Threading.Tasks.ValueTask UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } } - public partial class RestoreResult + public partial class KeyVaultBackupResult { - internal RestoreResult() { } + internal KeyVaultBackupResult() { } public System.DateTimeOffset EndTime { get { throw null; } } + public System.Uri FolderUri { get { throw null; } } public System.DateTimeOffset StartTime { get { throw null; } } } - public partial class SelectiveKeyRestoreOperation : Azure.Operation + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct KeyVaultDataAction : System.IEquatable { - protected SelectiveKeyRestoreOperation() { } - public SelectiveKeyRestoreOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } + private readonly object _dummy; + private readonly int _dummyPrimitive; + public KeyVaultDataAction(string value) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction BackupHsmKeys { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction CreateHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction DecryptHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction DeleteHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction DeleteRoleAssignment { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction DownloadHsmSecurityDomain { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction EncryptHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ExportHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction GetRoleAssignment { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ImportHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction PurgeDeletedHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadDeletedHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadHsmBackupStatus { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadHsmRestoreStatus { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadHsmSecurityDomainStatus { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadHsmSecurityDomainTransferKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction ReadRoleDefinition { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction RecoverDeletedHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction RestoreHsmKeys { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction SignHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction StartHsmBackup { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction StartHsmRestore { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction UnwrapHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction UploadHsmSecurityDomain { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction VerifyHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction WrapHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction WriteHsmKey { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultDataAction WriteRoleAssignment { get { throw null; } } + public bool Equals(Azure.Security.KeyVault.Administration.KeyVaultDataAction other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.Security.KeyVault.Administration.KeyVaultDataAction left, Azure.Security.KeyVault.Administration.KeyVaultDataAction right) { throw null; } + public static implicit operator Azure.Security.KeyVault.Administration.KeyVaultDataAction (string value) { throw null; } + public static bool operator !=(Azure.Security.KeyVault.Administration.KeyVaultDataAction left, Azure.Security.KeyVault.Administration.KeyVaultDataAction right) { throw null; } + public override string ToString() { throw null; } + } + public partial class KeyVaultPermission + { + public KeyVaultPermission() { } + public System.Collections.Generic.IList Actions { get { throw null; } } + public System.Collections.Generic.IList DataActions { get { throw null; } } + public System.Collections.Generic.IList NotActions { get { throw null; } } + public System.Collections.Generic.IList NotDataActions { get { throw null; } } + } + public partial class KeyVaultRestoreOperation : Azure.Operation + { + protected KeyVaultRestoreOperation() { } + public KeyVaultRestoreOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } public System.DateTimeOffset? EndTime { get { throw null; } } public override bool HasCompleted { get { throw null; } } public override bool HasValue { get { throw null; } } public override string Id { get { throw null; } } public System.DateTimeOffset? StartTime { get { throw null; } } - public override Azure.Security.KeyVault.Administration.SelectiveKeyRestoreResult Value { get { throw null; } } + public override Azure.Security.KeyVault.Administration.KeyVaultRestoreResult Value { get { throw null; } } public override Azure.Response GetRawResponse() { throw null; } public override Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public override System.Threading.Tasks.ValueTask UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } } - public partial class SelectiveKeyRestoreResult + public partial class KeyVaultRestoreResult { - internal SelectiveKeyRestoreResult() { } + internal KeyVaultRestoreResult() { } public System.DateTimeOffset EndTime { get { throw null; } } public System.DateTimeOffset StartTime { get { throw null; } } } -} -namespace Azure.Security.KeyVault.Administration.Models -{ - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct KeyVaultDataAction : System.IEquatable + public partial class KeyVaultRoleAssignment { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public KeyVaultDataAction(string value) { throw null; } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction BackupHsmKeys { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction CreateHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction DecryptHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction DeleteHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction DeleteRoleAssignment { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction DownloadHsmSecurityDomain { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction EncryptHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ExportHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction GetRoleAssignment { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ImportHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction PurgeDeletedHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadDeletedHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadHsmBackupStatus { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadHsmRestoreStatus { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadHsmSecurityDomainStatus { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadHsmSecurityDomainTransferKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction ReadRoleDefinition { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction RecoverDeletedHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction RestoreHsmKeys { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction SignHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction StartHsmBackup { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction StartHsmRestore { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction UnwrapHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction UploadHsmSecurityDomain { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction VerifyHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction WrapHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction WriteHsmKey { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction WriteRoleAssignment { get { throw null; } } - public bool Equals(Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction left, Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction right) { throw null; } - public static implicit operator Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction (string value) { throw null; } - public static bool operator !=(Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction left, Azure.Security.KeyVault.Administration.Models.KeyVaultDataAction right) { throw null; } - public override string ToString() { throw null; } + internal KeyVaultRoleAssignment() { } + public string Id { get { throw null; } } + public string Name { get { throw null; } } + public Azure.Security.KeyVault.Administration.KeyVaultRoleAssignmentProperties Properties { get { throw null; } } + public string Type { get { throw null; } } + } + public partial class KeyVaultRoleAssignmentProperties + { + internal KeyVaultRoleAssignmentProperties() { } + public string PrincipalId { get { throw null; } } + public string RoleDefinitionId { get { throw null; } } + public Azure.Security.KeyVault.Administration.KeyVaultRoleScope? Scope { get { throw null; } } + } + public partial class KeyVaultRoleDefinition + { + public KeyVaultRoleDefinition() { } + public System.Collections.Generic.IList AssignableScopes { get { throw null; } } + public string Description { get { throw null; } set { } } + public string Id { get { throw null; } } + public string Name { get { throw null; } } + public System.Collections.Generic.IList Permissions { get { throw null; } } + public string RoleName { get { throw null; } set { } } + public Azure.Security.KeyVault.Administration.KeyVaultRoleType? RoleType { get { throw null; } set { } } + public Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType? Type { get { throw null; } } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct KeyVaultRoleDefinitionType : System.IEquatable + public readonly partial struct KeyVaultRoleDefinitionType : System.IEquatable { private readonly object _dummy; private readonly int _dummyPrimitive; public KeyVaultRoleDefinitionType(string value) { throw null; } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType MicrosoftAuthorizationRoleDefinitions { get { throw null; } } - public bool Equals(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType other) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType MicrosoftAuthorizationRoleDefinitions { get { throw null; } } + public bool Equals(Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType right) { throw null; } - public static implicit operator Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType (string value) { throw null; } - public static bool operator !=(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleDefinitionType right) { throw null; } + public static bool operator ==(Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType left, Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType right) { throw null; } + public static implicit operator Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType (string value) { throw null; } + public static bool operator !=(Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType left, Azure.Security.KeyVault.Administration.KeyVaultRoleDefinitionType right) { throw null; } public override string ToString() { throw null; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct KeyVaultRoleScope : System.IEquatable + public readonly partial struct KeyVaultRoleScope : System.IEquatable { private readonly object _dummy; private readonly int _dummyPrimitive; public KeyVaultRoleScope(string value) { throw null; } public KeyVaultRoleScope(System.Uri resourceId) { throw null; } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope Global { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope Keys { get { throw null; } } - public bool Equals(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope other) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleScope Global { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleScope Keys { get { throw null; } } + public bool Equals(Azure.Security.KeyVault.Administration.KeyVaultRoleScope other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope right) { throw null; } - public static implicit operator Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope (string value) { throw null; } - public static bool operator !=(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleScope right) { throw null; } + public static bool operator ==(Azure.Security.KeyVault.Administration.KeyVaultRoleScope left, Azure.Security.KeyVault.Administration.KeyVaultRoleScope right) { throw null; } + public static implicit operator Azure.Security.KeyVault.Administration.KeyVaultRoleScope (string value) { throw null; } + public static bool operator !=(Azure.Security.KeyVault.Administration.KeyVaultRoleScope left, Azure.Security.KeyVault.Administration.KeyVaultRoleScope right) { throw null; } public override string ToString() { throw null; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct KeyVaultRoleType : System.IEquatable + public readonly partial struct KeyVaultRoleType : System.IEquatable { private readonly object _dummy; private readonly int _dummyPrimitive; public KeyVaultRoleType(string value) { throw null; } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType BuiltInRole { get { throw null; } } - public static Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType CustomRole { get { throw null; } } - public bool Equals(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType other) { throw null; } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleType BuiltInRole { get { throw null; } } + public static Azure.Security.KeyVault.Administration.KeyVaultRoleType CustomRole { get { throw null; } } + public bool Equals(Azure.Security.KeyVault.Administration.KeyVaultRoleType other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType right) { throw null; } - public static implicit operator Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType (string value) { throw null; } - public static bool operator !=(Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType left, Azure.Security.KeyVault.Administration.Models.KeyVaultRoleType right) { throw null; } + public static bool operator ==(Azure.Security.KeyVault.Administration.KeyVaultRoleType left, Azure.Security.KeyVault.Administration.KeyVaultRoleType right) { throw null; } + public static implicit operator Azure.Security.KeyVault.Administration.KeyVaultRoleType (string value) { throw null; } + public static bool operator !=(Azure.Security.KeyVault.Administration.KeyVaultRoleType left, Azure.Security.KeyVault.Administration.KeyVaultRoleType right) { throw null; } public override string ToString() { throw null; } } + public partial class KeyVaultSelectiveKeyRestoreOperation : Azure.Operation + { + protected KeyVaultSelectiveKeyRestoreOperation() { } + public KeyVaultSelectiveKeyRestoreOperation(Azure.Security.KeyVault.Administration.KeyVaultBackupClient client, string id) { } + public System.DateTimeOffset? EndTime { get { throw null; } } + public override bool HasCompleted { get { throw null; } } + public override bool HasValue { get { throw null; } } + public override string Id { get { throw null; } } + public System.DateTimeOffset? StartTime { get { throw null; } } + public override Azure.Security.KeyVault.Administration.KeyVaultSelectiveKeyRestoreResult Value { get { throw null; } } + public override Azure.Response GetRawResponse() { throw null; } + public override Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public override System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) { throw null; } + } + public partial class KeyVaultSelectiveKeyRestoreResult + { + internal KeyVaultSelectiveKeyRestoreResult() { } + public System.DateTimeOffset EndTime { get { throw null; } } + public System.DateTimeOffset StartTime { get { throw null; } } + } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldAsync.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldAsync.md index e0a85da12116..376b8d53f483 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldAsync.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldAsync.md @@ -33,10 +33,10 @@ UriBuilder builder = new UriBuilder(blobStorageUrl) }; // Start the backup. -BackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); +KeyVaultBackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); // Wait for completion of the BackupOperation. -Response backupResult = await backupOperation.WaitForCompletionAsync(); +Response backupResult = await backupOperation.WaitForCompletionAsync(); // Get the Uri for the location of your backup blob. Uri folderUri = backupResult.Value.FolderUri; @@ -50,10 +50,10 @@ Alternatively, it is possible to [generate a SAS token in Storage Explorer](http ```C# Snippet:HelloFullRestoreAsync // Start the restore using the backupBlobUri returned from a previous BackupOperation. -RestoreOperation restoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); +KeyVaultRestoreOperation restoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); // Wait for completion of the RestoreOperation. -Response restoreResult = await restoreOperation.WaitForCompletionAsync(); +Response restoreResult = await restoreOperation.WaitForCompletionAsync(); ``` diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldSync.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldSync.md index a3c637e7eab4..0bb68e984d46 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldSync.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample1_BackupHelloWorldSync.md @@ -33,7 +33,7 @@ UriBuilder builder = new UriBuilder(blobStorageUrl) }; // Start the backup. -BackupOperation backupOperation = Client.StartBackup(builder.Uri, sasToken); +KeyVaultBackupOperation backupOperation = Client.StartBackup(builder.Uri, sasToken); // Wait for completion of the BackupOperation. while (!backupOperation.HasCompleted) @@ -54,7 +54,7 @@ Alternatively, it is possible to [generate a SAS token in Storage Explorer](http ```C# Snippet:HelloFullRestoreSync // Start the restore using the backupBlobUri returned from a previous BackupOperation. -RestoreOperation restoreOperation = Client.StartRestore(folderUri, sasToken); +KeyVaultRestoreOperation restoreOperation = Client.StartRestore(folderUri, sasToken); // Wait for completion of the RestoreOperation. while (!restoreOperation.HasCompleted) diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample2_SelectiveRestore.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample2_SelectiveRestore.md index 39a725ad925b..c0fa9e6cdf01 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample2_SelectiveRestore.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample2_SelectiveRestore.md @@ -11,8 +11,8 @@ Alternatively, it is possible to [generate a SAS token in Storage Explorer](http string keyName = ""; // Start the restore for a specific key that was previously backed up using the backupBlobUri returned from a previous BackupOperation. -SelectiveKeyRestoreOperation restoreOperation = await Client.StartSelectiveRestoreAsync(keyName, folderUri, sasToken); +KeyVaultSelectiveKeyRestoreOperation restoreOperation = await Client.StartSelectiveRestoreAsync(keyName, folderUri, sasToken); // Wait for completion of the RestoreOperation. -SelectiveKeyRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); +KeyVaultSelectiveKeyRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); ``` diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample3_BackRestoreResume.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample3_BackRestoreResume.md index 8b0edcb1fa85..4177485e9544 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample3_BackRestoreResume.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/samples/Sample3_BackRestoreResume.md @@ -15,10 +15,10 @@ and check for status or wait for completion. KeyVaultBackupClient client = new KeyVaultBackupClient(new Uri(keyVaultUrl), new DefaultAzureCredential()); // Construct a BackupOperation using a KeyVaultBackupClient and the Id from a previously started operation. -BackupOperation backupOperation = new BackupOperation(client, backupOperationId); +KeyVaultBackupOperation backupOperation = new KeyVaultBackupOperation(client, backupOperationId); // Wait for completion of the BackupOperation. -Response backupResult = await backupOperation.WaitForCompletionAsync(); +Response backupResult = await backupOperation.WaitForCompletionAsync(); // Get the Uri for the location of you backup blob. Uri folderUri = backupResult.Value.FolderUri; @@ -36,10 +36,10 @@ and check for status or wait for completion. KeyVaultBackupClient Client = new KeyVaultBackupClient(new Uri(keyVaultUrl), new DefaultAzureCredential()); // Construct a RestoreOperation using a KeyVaultBackupClient and the Id from a previously started operation. -RestoreOperation restoreOperation = new RestoreOperation(client, restoreOperationId); +KeyVaultRestoreOperation restoreOperation = new KeyVaultRestoreOperation(client, restoreOperationId); // Wait for completion of the RestoreOperation. -RestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); +KeyVaultRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); ``` diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/CreateOrUpdateRoleDefinitionOptions.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/CreateOrUpdateRoleDefinitionOptions.cs new file mode 100644 index 000000000000..bcae42f0138a --- /dev/null +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/CreateOrUpdateRoleDefinitionOptions.cs @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using System.Collections.Generic; +using Azure.Security.KeyVault.Administration.Models; + +namespace Azure.Security.KeyVault.Administration +{ + /// + /// Options to create or update a role definition passed to + /// or . + /// + public class CreateOrUpdateRoleDefinitionOptions + { + /// + /// Initializes a new instance of the class using a generated role definition name. + /// + /// The to which the definition applies. + public CreateOrUpdateRoleDefinitionOptions(KeyVaultRoleScope roleScope) + : this(roleScope, Guid.NewGuid()) + { + } + + /// + /// Initializes a new instance of the class using a generated role definition name. + /// + /// The to which the definition applies. + /// The unique role definition name. If the named role definition is already defined it will be updated. + public CreateOrUpdateRoleDefinitionOptions(KeyVaultRoleScope roleScope, Guid roleDefinitionName) + { + RoleScope = roleScope; + RoleDefinitionName = roleDefinitionName; + + Permissions = new List(); + AssignableScopes = new List(); + } + + /// + /// Gets the to which this definition applies. + /// + public KeyVaultRoleScope RoleScope { get; } + + /// + /// Gets the unique role definition name. + /// + public Guid RoleDefinitionName { get; } + + /// + /// Gets the display name of this role definition. Defaults to the . + /// + public string RoleName { get; set; } + + /// + /// Gets a description of this role definition. + /// + public string Description { get; set; } + + /// + /// Gets a list of permissions granted by this role definition when assigned to a principal. + /// + public IList Permissions { get; } + + /// + /// Gets a list of scopes for which this role definition can be assigned. + /// + public IList AssignableScopes { get; } + + /// + /// Converts this instance of to a object. + /// + /// + internal RoleDefinitionCreateParameters ToParameters(KeyVaultRoleType roleType) + { + RoleDefinitionProperties properties = new() + { + RoleType = roleType, + RoleName = RoleName, + Description = Description, + }; + + foreach (KeyVaultPermission permission in Permissions) + { + properties.Permissions.Add(permission); + } + + foreach (KeyVaultRoleScope scope in AssignableScopes) + { + properties.AssignableScopes.Add(scope); + } + + return new(properties); + } + } +} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/BackupRestoreRestClient.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/BackupRestoreRestClient.cs index 5f0ae2e10604..9c2196597022 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/BackupRestoreRestClient.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/BackupRestoreRestClient.cs @@ -27,7 +27,7 @@ internal partial class BackupRestoreRestClient /// The HTTP pipeline for sending and receiving REST requests and responses. /// Api Version. /// is null. - public BackupRestoreRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2-preview") + public BackupRestoreRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2") { if (apiVersion == null) { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultDataAction.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultDataAction.cs index 8b8a9beb5aaf..035090b4471f 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultDataAction.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultDataAction.cs @@ -8,7 +8,7 @@ using System; using System.ComponentModel; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { /// Supported permissions for data actions. public readonly partial struct KeyVaultDataAction : IEquatable diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.Serialization.cs index 1b367cd4e407..7e903c8ce036 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.Serialization.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.Serialization.cs @@ -8,7 +8,6 @@ using System.Collections.Generic; using System.Text.Json; using Azure.Core; -using Azure.Security.KeyVault.Administration.Models; namespace Azure.Security.KeyVault.Administration { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.cs index 530f2185cc91..37ee644e8d2c 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultPermission.cs @@ -7,7 +7,6 @@ using System.Collections.Generic; using Azure.Core; -using Azure.Security.KeyVault.Administration.Models; namespace Azure.Security.KeyVault.Administration { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.Serialization.cs index 3534df421c9b..3e0980b07776 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.Serialization.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.Serialization.cs @@ -17,7 +17,7 @@ internal static KeyVaultRoleAssignment DeserializeKeyVaultRoleAssignment(JsonEle Optional id = default; Optional name = default; Optional type = default; - Optional properties = default; + Optional properties = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) @@ -42,7 +42,7 @@ internal static KeyVaultRoleAssignment DeserializeKeyVaultRoleAssignment(JsonEle property.ThrowNonNullablePropertyIsNull(); continue; } - properties = KeyVaultRoleAssignmentPropertiesWithScope.DeserializeKeyVaultRoleAssignmentPropertiesWithScope(property.Value); + properties = KeyVaultRoleAssignmentProperties.DeserializeKeyVaultRoleAssignmentProperties(property.Value); continue; } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.cs index af93954a665d..6918a0105ec4 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignment.cs @@ -20,7 +20,7 @@ internal KeyVaultRoleAssignment() /// The role assignment name. /// The role assignment type. /// Role assignment properties. - internal KeyVaultRoleAssignment(string id, string name, string type, KeyVaultRoleAssignmentPropertiesWithScope properties) + internal KeyVaultRoleAssignment(string id, string name, string type, KeyVaultRoleAssignmentProperties properties) { Id = id; Name = name; @@ -35,6 +35,6 @@ internal KeyVaultRoleAssignment(string id, string name, string type, KeyVaultRol /// The role assignment type. public string Type { get; } /// Role assignment properties. - public KeyVaultRoleAssignmentPropertiesWithScope Properties { get; } + public KeyVaultRoleAssignmentProperties Properties { get; } } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.Serialization.cs index 26d915163c25..14781ea4380f 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.Serialization.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.Serialization.cs @@ -10,16 +10,37 @@ namespace Azure.Security.KeyVault.Administration { - internal partial class KeyVaultRoleAssignmentProperties : IUtf8JsonSerializable + public partial class KeyVaultRoleAssignmentProperties { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) + internal static KeyVaultRoleAssignmentProperties DeserializeKeyVaultRoleAssignmentProperties(JsonElement element) { - writer.WriteStartObject(); - writer.WritePropertyName("roleDefinitionId"); - writer.WriteStringValue(RoleDefinitionId); - writer.WritePropertyName("principalId"); - writer.WriteStringValue(PrincipalId); - writer.WriteEndObject(); + Optional scope = default; + Optional roleDefinitionId = default; + Optional principalId = default; + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("scope")) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + property.ThrowNonNullablePropertyIsNull(); + continue; + } + scope = new KeyVaultRoleScope(property.Value.GetString()); + continue; + } + if (property.NameEquals("roleDefinitionId")) + { + roleDefinitionId = property.Value.GetString(); + continue; + } + if (property.NameEquals("principalId")) + { + principalId = property.Value.GetString(); + continue; + } + } + return new KeyVaultRoleAssignmentProperties(Optional.ToNullable(scope), roleDefinitionId.Value, principalId.Value); } } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.cs index 0d82e58dba1f..6e92b81d9562 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentProperties.cs @@ -5,35 +5,32 @@ #nullable disable -using System; - namespace Azure.Security.KeyVault.Administration { - /// Role assignment properties. - internal partial class KeyVaultRoleAssignmentProperties + /// Role assignment properties with scope. + public partial class KeyVaultRoleAssignmentProperties { /// Initializes a new instance of KeyVaultRoleAssignmentProperties. - /// The role definition ID used in the role assignment. - /// The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group. - /// or is null. - public KeyVaultRoleAssignmentProperties(string roleDefinitionId, string principalId) + internal KeyVaultRoleAssignmentProperties() { - if (roleDefinitionId == null) - { - throw new ArgumentNullException(nameof(roleDefinitionId)); - } - if (principalId == null) - { - throw new ArgumentNullException(nameof(principalId)); - } + } + /// Initializes a new instance of KeyVaultRoleAssignmentProperties. + /// The role scope. + /// The role definition ID. + /// The principal ID. + internal KeyVaultRoleAssignmentProperties(KeyVaultRoleScope? scope, string roleDefinitionId, string principalId) + { + Scope = scope; RoleDefinitionId = roleDefinitionId; PrincipalId = principalId; } - /// The role definition ID used in the role assignment. + /// The role scope. + public KeyVaultRoleScope? Scope { get; } + /// The role definition ID. public string RoleDefinitionId { get; } - /// The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group. + /// The principal ID. public string PrincipalId { get; } } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.Serialization.cs new file mode 100644 index 000000000000..2d943f18980d --- /dev/null +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.Serialization.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using Azure.Core; + +namespace Azure.Security.KeyVault.Administration +{ + internal partial class KeyVaultRoleAssignmentPropertiesInternal : IUtf8JsonSerializable + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) + { + writer.WriteStartObject(); + writer.WritePropertyName("roleDefinitionId"); + writer.WriteStringValue(RoleDefinitionId); + writer.WritePropertyName("principalId"); + writer.WriteStringValue(PrincipalId); + writer.WriteEndObject(); + } + } +} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.cs new file mode 100644 index 000000000000..0de44ccca204 --- /dev/null +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesInternal.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Azure.Security.KeyVault.Administration +{ + /// Role assignment properties. + internal partial class KeyVaultRoleAssignmentPropertiesInternal + { + /// Initializes a new instance of KeyVaultRoleAssignmentPropertiesInternal. + /// The role definition ID used in the role assignment. + /// The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group. + /// or is null. + public KeyVaultRoleAssignmentPropertiesInternal(string roleDefinitionId, string principalId) + { + if (roleDefinitionId == null) + { + throw new ArgumentNullException(nameof(roleDefinitionId)); + } + if (principalId == null) + { + throw new ArgumentNullException(nameof(principalId)); + } + + RoleDefinitionId = roleDefinitionId; + PrincipalId = principalId; + } + + /// The role definition ID used in the role assignment. + public string RoleDefinitionId { get; } + /// The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group. + public string PrincipalId { get; } + } +} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.Serialization.cs deleted file mode 100644 index be30f4f6a8d0..000000000000 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.Serialization.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; -using Azure.Security.KeyVault.Administration.Models; - -namespace Azure.Security.KeyVault.Administration -{ - public partial class KeyVaultRoleAssignmentPropertiesWithScope - { - internal static KeyVaultRoleAssignmentPropertiesWithScope DeserializeKeyVaultRoleAssignmentPropertiesWithScope(JsonElement element) - { - Optional scope = default; - Optional roleDefinitionId = default; - Optional principalId = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("scope")) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - property.ThrowNonNullablePropertyIsNull(); - continue; - } - scope = new KeyVaultRoleScope(property.Value.GetString()); - continue; - } - if (property.NameEquals("roleDefinitionId")) - { - roleDefinitionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("principalId")) - { - principalId = property.Value.GetString(); - continue; - } - } - return new KeyVaultRoleAssignmentPropertiesWithScope(Optional.ToNullable(scope), roleDefinitionId.Value, principalId.Value); - } - } -} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.cs deleted file mode 100644 index 7061ecf5b336..000000000000 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleAssignmentPropertiesWithScope.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using Azure.Security.KeyVault.Administration.Models; - -namespace Azure.Security.KeyVault.Administration -{ - /// Role assignment properties with scope. - public partial class KeyVaultRoleAssignmentPropertiesWithScope - { - /// Initializes a new instance of KeyVaultRoleAssignmentPropertiesWithScope. - internal KeyVaultRoleAssignmentPropertiesWithScope() - { - } - - /// Initializes a new instance of KeyVaultRoleAssignmentPropertiesWithScope. - /// The role scope. - /// The role definition ID. - /// The principal ID. - internal KeyVaultRoleAssignmentPropertiesWithScope(KeyVaultRoleScope? scope, string roleDefinitionId, string principalId) - { - Scope = scope; - RoleDefinitionId = roleDefinitionId; - PrincipalId = principalId; - } - - /// The role scope. - public KeyVaultRoleScope? Scope { get; } - /// The role definition ID. - public string RoleDefinitionId { get; } - /// The principal ID. - public string PrincipalId { get; } - } -} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.Serialization.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.Serialization.cs index 0d5c64bfdc47..6049dd42b4e1 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.Serialization.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.Serialization.cs @@ -8,7 +8,6 @@ using System.Collections.Generic; using System.Text.Json; using Azure.Core; -using Azure.Security.KeyVault.Administration.Models; namespace Azure.Security.KeyVault.Administration { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.cs index 299a64a24f6a..ab29b86846f9 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinition.cs @@ -7,7 +7,6 @@ using System.Collections.Generic; using Azure.Core; -using Azure.Security.KeyVault.Administration.Models; namespace Azure.Security.KeyVault.Administration { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinitionType.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinitionType.cs index 834db801aaf0..e374f38213d4 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinitionType.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleDefinitionType.cs @@ -8,7 +8,7 @@ using System; using System.ComponentModel; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { /// The role definition type. public readonly partial struct KeyVaultRoleDefinitionType : IEquatable diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleScope.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleScope.cs index fc1bd6871327..3793eac946c4 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleScope.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleScope.cs @@ -8,7 +8,7 @@ using System; using System.ComponentModel; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { /// The role scope. public readonly partial struct KeyVaultRoleScope : IEquatable diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleType.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleType.cs index 33c467c0f849..83893c200c44 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleType.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/KeyVaultRoleType.cs @@ -8,7 +8,7 @@ using System; using System.ComponentModel; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { /// The role type. public readonly partial struct KeyVaultRoleType : IEquatable diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/RoleAssignmentCreateParameters.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/RoleAssignmentCreateParameters.cs index c9c626745a2c..5acce11d2ced 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/RoleAssignmentCreateParameters.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/Models/RoleAssignmentCreateParameters.cs @@ -16,7 +16,7 @@ internal partial class RoleAssignmentCreateParameters /// Initializes a new instance of RoleAssignmentCreateParameters. /// Role assignment properties. /// is null. - public RoleAssignmentCreateParameters(KeyVaultRoleAssignmentProperties properties) + public RoleAssignmentCreateParameters(KeyVaultRoleAssignmentPropertiesInternal properties) { if (properties == null) { @@ -27,6 +27,6 @@ public RoleAssignmentCreateParameters(KeyVaultRoleAssignmentProperties propertie } /// Role assignment properties. - public KeyVaultRoleAssignmentProperties Properties { get; } + public KeyVaultRoleAssignmentPropertiesInternal Properties { get; } } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleAssignmentsRestClient.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleAssignmentsRestClient.cs index ff3501eab18c..816713d54faf 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleAssignmentsRestClient.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleAssignmentsRestClient.cs @@ -27,7 +27,7 @@ internal partial class RoleAssignmentsRestClient /// The HTTP pipeline for sending and receiving REST requests and responses. /// Api Version. /// is null. - public RoleAssignmentsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2-preview") + public RoleAssignmentsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2") { if (apiVersion == null) { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleDefinitionsRestClient.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleDefinitionsRestClient.cs index bf85255b09ef..b15ee7070316 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleDefinitionsRestClient.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/Generated/RoleDefinitionsRestClient.cs @@ -27,7 +27,7 @@ internal partial class RoleDefinitionsRestClient /// The HTTP pipeline for sending and receiving REST requests and responses. /// Api Version. /// is null. - public RoleDefinitionsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2-preview") + public RoleDefinitionsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string apiVersion = "7.2") { if (apiVersion == null) { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAccessControlClient.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAccessControlClient.cs index b621ea126185..cf112096c512 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAccessControlClient.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAccessControlClient.cs @@ -154,12 +154,12 @@ public virtual AsyncPageable GetRoleDefinitionsAsync(Key /// /// Get a specific role definition. /// - /// The role definition name. /// The scope of the role assignments. + /// The role definition name. /// A controlling the request lifetime. /// The server returned an error. See for details returned from the server. /// is null. - public virtual Response GetRoleDefinition(Guid roleDefinitionName, KeyVaultRoleScope roleScope, CancellationToken cancellationToken = default) + public virtual Response GetRoleDefinition(KeyVaultRoleScope roleScope, Guid roleDefinitionName, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleDefinition)}"); scope.Start(); @@ -177,12 +177,12 @@ public virtual Response GetRoleDefinition(Guid roleDefin /// /// Get a specific role definition. /// - /// The role definition name. /// The scope of the role definition. + /// The role definition name. /// A controlling the request lifetime. /// The server returned an error. See for details returned from the server. /// is null. - public virtual async Task> GetRoleDefinitionAsync(Guid roleDefinitionName, KeyVaultRoleScope roleScope, CancellationToken cancellationToken = default) + public virtual async Task> GetRoleDefinitionAsync(KeyVaultRoleScope roleScope, Guid roleDefinitionName, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleDefinition)}"); scope.Start(); @@ -197,37 +197,47 @@ public virtual async Task> GetRoleDefinitionAsy } } + /// + /// Creates or updates a role definition. If the named role definition is already defined it will be updated. + /// + /// The to which the definition applies. + /// The unique role definition name. If null a unique role definition name will be generated. + /// A controlling the request lifetime. + /// A representing the result of the asynchronous operation. + public virtual Task> CreateOrUpdateRoleDefinitionAsync(KeyVaultRoleScope roleScope, Guid? roleDefinitionName = null, CancellationToken cancellationToken = default) => + CreateOrUpdateRoleDefinitionAsync(new CreateOrUpdateRoleDefinitionOptions(roleScope, roleDefinitionName ?? Guid.NewGuid()), cancellationToken); + + /// + /// Creates or updates a role definition. If the named role definition is already defined it will be updated. + /// + /// The to which the definition applies. + /// The unique role definition name. If null a unique role definition name will be generated. + /// A controlling the request lifetime. + /// A representing the result of the asynchronous operation. + public virtual Response CreateOrUpdateRoleDefinition(KeyVaultRoleScope roleScope, Guid? roleDefinitionName = null, CancellationToken cancellationToken = default) => + CreateOrUpdateRoleDefinition(new CreateOrUpdateRoleDefinitionOptions(roleScope, roleDefinitionName ?? Guid.NewGuid()), cancellationToken); + /// /// Creates or updates a role definition. /// - /// The description for the role definition. - /// The permissions granted by the role definition when assigned to a principal. - /// The scope of the to create. The default value is . - /// Optional name used to create the role definition. A new will be generated if not specified. + /// An instance of that define parameters for creating a role definition. /// A controlling the request lifetime. /// A representing the result of the asynchronous operation. - public virtual async Task> CreateOrUpdateRoleDefinitionAsync(string roleDefinitionDescription, KeyVaultPermission permissions, KeyVaultRoleScope roleScope = default, Guid? roleDefinitionName = null, CancellationToken cancellationToken = default) + /// is null. + public virtual async Task> CreateOrUpdateRoleDefinitionAsync(CreateOrUpdateRoleDefinitionOptions options, CancellationToken cancellationToken = default) { + Argument.AssertNotNull(options, nameof(options)); + using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(CreateOrUpdateRoleDefinition)}"); scope.Start(); try { - var name = (roleDefinitionName ?? Guid.NewGuid()).ToString(); - var properties = new RoleDefinitionProperties() - { - Description = roleDefinitionDescription, - RoleName = name, - RoleType = KeyVaultRoleType.CustomRole - }; - properties.AssignableScopes.Add(roleScope); - properties.Permissions.Add(permissions); - - var parameters = new RoleDefinitionCreateParameters(properties); + RoleDefinitionCreateParameters parameters = options.ToParameters(KeyVaultRoleType.CustomRole); return await _definitionsRestClient.CreateOrUpdateAsync( vaultBaseUrl: VaultUri.AbsoluteUri, - scope: roleScope == default ? roleScope.ToString() : KeyVaultRoleScope.Global.ToString(), - roleDefinitionName: name, + scope: options.RoleScope == default ? options.RoleScope.ToString() : KeyVaultRoleScope.Global.ToString(), + roleDefinitionName: options.RoleDefinitionName.ToString(), parameters: parameters, cancellationToken: cancellationToken) .ConfigureAwait(false); @@ -242,34 +252,24 @@ public virtual async Task> CreateOrUpdateRoleDe /// /// Creates or updates a role definition. /// - /// The description for the role definition. - /// The permissions granted by the role definition when assigned to a principal. - /// The scope of the to create. The default value is . - /// Optional name used to create the role definition. A new will be generated if not specified. + /// An instance of that define parameters for creating a role definition. /// A controlling the request lifetime. - /// A containing the result of the operation. - public virtual Response CreateOrUpdateRoleDefinition(string roleDefinitionDescription, KeyVaultPermission permissions, KeyVaultRoleScope roleScope = default, Guid? roleDefinitionName = null, CancellationToken cancellationToken = default) + /// A representing the result of the asynchronous operation. + /// is null. + public virtual Response CreateOrUpdateRoleDefinition(CreateOrUpdateRoleDefinitionOptions options, CancellationToken cancellationToken = default) { + Argument.AssertNotNull(options, nameof(options)); + using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(CreateOrUpdateRoleDefinition)}"); scope.Start(); try { - var name = (roleDefinitionName ?? Guid.NewGuid()).ToString(); - var properties = new RoleDefinitionProperties() - { - Description = roleDefinitionDescription, - RoleName = name, - RoleType = KeyVaultRoleType.CustomRole - }; - properties.AssignableScopes.Add(roleScope); - properties.Permissions.Add(permissions); - - var parameters = new RoleDefinitionCreateParameters(properties); + RoleDefinitionCreateParameters parameters = options.ToParameters(KeyVaultRoleType.CustomRole); return _definitionsRestClient.CreateOrUpdate( vaultBaseUrl: VaultUri.AbsoluteUri, - scope: roleScope == default ? roleScope.ToString() : KeyVaultRoleScope.Global.ToString(), - roleDefinitionName: name, + scope: options.RoleScope == default ? options.RoleScope.ToString() : KeyVaultRoleScope.Global.ToString(), + roleDefinitionName: options.RoleDefinitionName.ToString(), parameters: parameters, cancellationToken: cancellationToken); } @@ -283,11 +283,11 @@ public virtual Response CreateOrUpdateRoleDefinition(str /// /// Deletes a role definition. /// - /// The name used of the role definition to delete. /// The scope of the role to delete. + /// The name used of the role definition to delete. /// A controlling the request lifetime. /// A representing the result of the asynchronous operation. - public virtual async Task> DeleteRoleDefinitionAsync(Guid roleDefinitionName, KeyVaultRoleScope roleScope, CancellationToken cancellationToken = default) + public virtual async Task> DeleteRoleDefinitionAsync(KeyVaultRoleScope roleScope, Guid roleDefinitionName, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(DeleteRoleDefinition)}"); scope.Start(); @@ -305,11 +305,11 @@ public virtual async Task> DeleteRoleDefinition /// /// Deletes a role definition. /// - /// /// + /// /// A controlling the request lifetime. /// A containing the result of the operation. - public virtual Response DeleteRoleDefinition(Guid roleDefinitionName, KeyVaultRoleScope roleScope, CancellationToken cancellationToken = default) + public virtual Response DeleteRoleDefinition(KeyVaultRoleScope roleScope, Guid roleDefinitionName, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(DeleteRoleDefinition)}"); scope.Start(); @@ -428,7 +428,7 @@ public virtual Response CreateRoleAssignment(KeyVaultRol try { var _name = (roleAssignmentName ?? Guid.NewGuid()).ToString(); - var properties = new KeyVaultRoleAssignmentProperties(roleDefinitionId, principalId); + var properties = new KeyVaultRoleAssignmentPropertiesInternal(roleDefinitionId, principalId); return _assignmentsRestClient.Create(VaultUri.AbsoluteUri, roleScope.ToString(), _name, new RoleAssignmentCreateParameters(properties), cancellationToken); } @@ -461,7 +461,7 @@ public virtual async Task> CreateRoleAssignment try { var _name = (roleAssignmentName ?? Guid.NewGuid()).ToString(); - var properties = new KeyVaultRoleAssignmentProperties(roleDefinitionId, principalId); + var properties = new KeyVaultRoleAssignmentPropertiesInternal(roleDefinitionId, principalId); return await _assignmentsRestClient.CreateAsync(VaultUri.AbsoluteUri, roleScope.ToString(), _name, new RoleAssignmentCreateParameters(properties), cancellationToken) .ConfigureAwait(false); diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAdministrationModelFactory.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAdministrationModelFactory.cs index 52184c8242b9..7eac639af2dc 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAdministrationModelFactory.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultAdministrationModelFactory.cs @@ -33,20 +33,20 @@ public static KeyVaultRoleDefinition RoleDefinition(string id, string name, stri /// The role assignment name. /// The role assignment type. /// Role assignment properties. - public static KeyVaultRoleAssignment RoleAssignment(string id, string name, string type, KeyVaultRoleAssignmentPropertiesWithScope properties) => + public static KeyVaultRoleAssignment RoleAssignment(string id, string name, string type, KeyVaultRoleAssignmentProperties properties) => new KeyVaultRoleAssignment(id, name, type, properties); /// /// Initializes a new instance of a FullRestoreOperation for mocking purposes. /// - /// The that will be returned from . + /// The that will be returned from . /// An instance of . /// Identifier for the restore operation. /// The start time of the restore operation. /// The end time of the restore operation. /// The error message generated from the operation, if any. - public static RestoreOperation RestoreOperation(Response response, KeyVaultBackupClient client, string id, DateTimeOffset? startTime = null, DateTimeOffset? endTime = null, string errorMessage = null) => - new RestoreOperation(new RestoreDetailsInternal( + public static KeyVaultRestoreOperation RestoreOperation(Response response, KeyVaultBackupClient client, string id, DateTimeOffset? startTime = null, DateTimeOffset? endTime = null, string errorMessage = null) => + new KeyVaultRestoreOperation(new RestoreDetailsInternal( null, null, errorMessage == null ? null : new KeyVaultServiceError(string.Empty, errorMessage, null), @@ -57,15 +57,15 @@ public static RestoreOperation RestoreOperation(Response response, KeyVaultBacku /// /// Initializes a new instance of a FullBackupOperation for mocking purposes. /// - /// The that will be returned from . + /// The that will be returned from . /// An instance of . /// Identifier for the restore operation. /// The Blob Container Uri containing the backup. /// The start time of the restore operation. /// The end time of the restore operation. /// The error message generated from the operation, if any. - public static BackupOperation BackupOperation(Response response, KeyVaultBackupClient client, string id, Uri blobContainerUri, DateTimeOffset? startTime = null, DateTimeOffset? endTime = null, string errorMessage = null) => - new BackupOperation(new FullBackupDetailsInternal( + public static KeyVaultBackupOperation BackupOperation(Response response, KeyVaultBackupClient client, string id, Uri blobContainerUri, DateTimeOffset? startTime = null, DateTimeOffset? endTime = null, string errorMessage = null) => + new KeyVaultBackupOperation(new FullBackupDetailsInternal( null, null, errorMessage == null ? null : new KeyVaultServiceError(string.Empty, errorMessage, null), @@ -81,8 +81,8 @@ public static BackupOperation BackupOperation(Response response, KeyVaultBackupC /// The start time of the backup operation. /// The end time of the backup operation. /// A new instance. - public static BackupResult BackupResult(Uri folderUri, DateTimeOffset startTime, DateTimeOffset endTime) => - new BackupResult(folderUri, startTime, endTime); + public static KeyVaultBackupResult BackupResult(Uri folderUri, DateTimeOffset startTime, DateTimeOffset endTime) => + new KeyVaultBackupResult(folderUri, startTime, endTime); /// /// Initializes a new instance of a for mocking purposes. @@ -90,8 +90,8 @@ public static BackupResult BackupResult(Uri folderUri, DateTimeOffset startTime, /// The start time of the restore operation. /// The end time of the restore operation. /// A new instance. - public static RestoreResult RestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) => - new RestoreResult(startTime, endTime); + public static KeyVaultRestoreResult RestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) => + new KeyVaultRestoreResult(startTime, endTime); /// /// Initializes a new instance of a for mocking purposes. @@ -99,7 +99,7 @@ public static RestoreResult RestoreResult(DateTimeOffset startTime, DateTimeOffs /// The start time of the restore operation. /// The end time of the restore operation. /// A new instance. - public static RestoreResult SelectiveKeyRestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) => - new RestoreResult(startTime, endTime); + public static KeyVaultRestoreResult SelectiveKeyRestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) => + new KeyVaultRestoreResult(startTime, endTime); } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupClient.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupClient.cs index 9d009107b030..33f15be1f5c6 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupClient.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupClient.cs @@ -72,8 +72,8 @@ public KeyVaultBackupClient(Uri vaultUri, TokenCredential credential, KeyVaultAd /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual async Task StartBackupAsync(Uri blobStorageUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual async Task StartBackupAsync(Uri blobStorageUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartBackup)}"); scope.Start(); @@ -85,7 +85,7 @@ public virtual async Task StartBackupAsync(Uri blobStorageUri, cancellationToken) .ConfigureAwait(false); - return new BackupOperation(this, response); + return new KeyVaultBackupOperation(this, response); } catch (Exception ex) { @@ -102,8 +102,8 @@ public virtual async Task StartBackupAsync(Uri blobStorageUri, /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual BackupOperation StartBackup(Uri blobStorageUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual KeyVaultBackupOperation StartBackup(Uri blobStorageUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartBackup)}"); scope.Start(); @@ -114,7 +114,7 @@ public virtual BackupOperation StartBackup(Uri blobStorageUri, string sasToken, new SASTokenParameter(blobStorageUri.AbsoluteUri, sasToken), cancellationToken); - return new BackupOperation(this, response); + return new KeyVaultBackupOperation(this, response); } catch (Exception ex) { @@ -128,15 +128,15 @@ public virtual BackupOperation StartBackup(Uri blobStorageUri, string sasToken, /// /// /// The for the blob storage resource, including the path to the blob container where the backup resides. - /// This would be the exact value that is returned as the result of a . + /// This would be the exact value that is returned as the result of a . /// An example Uri may look like the following: https://contoso.blob.core.windows.net/backup/mhsm-contoso-2020090117323313. /// /// A Shared Access Signature (SAS) token to authorize access to the blob. /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual async Task StartRestoreAsync(Uri folderUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual async Task StartRestoreAsync(Uri folderUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartRestore)}"); scope.Start(); @@ -153,7 +153,7 @@ public virtual async Task StartRestoreAsync(Uri folderUri, str folderName), cancellationToken).ConfigureAwait(false); - return new RestoreOperation(this, response); + return new KeyVaultRestoreOperation(this, response); } catch (Exception ex) { @@ -167,15 +167,15 @@ public virtual async Task StartRestoreAsync(Uri folderUri, str /// /// /// The for the blob storage resource, including the path to the blob container where the backup resides. - /// This would be the exact value that is returned as the result of a . + /// This would be the exact value that is returned as the result of a . /// An example Uri path may look like the following: https://contoso.blob.core.windows.net/backup/mhsm-contoso-2020090117323313. /// /// A Shared Access Signature (SAS) token to authorize access to the blob. /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual RestoreOperation StartRestore(Uri folderUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual KeyVaultRestoreOperation StartRestore(Uri folderUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartRestore)}"); scope.Start(); @@ -192,7 +192,7 @@ public virtual RestoreOperation StartRestore(Uri folderUri, string sasToken, Can folderName), cancellationToken); - return new RestoreOperation(this, response); + return new KeyVaultRestoreOperation(this, response); } catch (Exception ex) { @@ -207,15 +207,15 @@ public virtual RestoreOperation StartRestore(Uri folderUri, string sasToken, Can /// The name of the key to be restored from the supplied backup. /// /// The for the blob storage resource, including the path to the blob container where the backup resides. - /// This would be the exact value that is returned as the result of a . + /// This would be the exact value that is returned as the result of a . /// An example Uri path may look like the following: https://contoso.blob.core.windows.net/backup/mhsm-contoso-2020090117323313. /// /// A Shared Access Signature (SAS) token to authorize access to the blob. /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual async Task StartSelectiveRestoreAsync(string keyName, Uri folderUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual async Task StartSelectiveRestoreAsync(string keyName, Uri folderUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartSelectiveRestore)}"); scope.Start(); @@ -235,7 +235,7 @@ public virtual async Task StartSelectiveRestoreAsy folderName), cancellationToken).ConfigureAwait(false); - return new SelectiveKeyRestoreOperation(this, response); + return new KeyVaultSelectiveKeyRestoreOperation(this, response); } catch (Exception ex) { @@ -250,15 +250,15 @@ public virtual async Task StartSelectiveRestoreAsy /// The name of the key to be restored from the supplied backup. /// /// The for the blob storage resource, including the path to the blob container where the backup resides. - /// This would be the exact value that is returned as the result of a . + /// This would be the exact value that is returned as the result of a . /// An example Uri path may look like the following: https://contoso.blob.core.windows.net/backup/mhsm-contoso-2020090117323313. /// /// A Shared Access Signature (SAS) token to authorize access to the blob. /// A controlling the request lifetime. /// or is null. /// The server returned an error. See for details returned from the server. - /// A to wait on this long-running operation. - public virtual SelectiveKeyRestoreOperation StartSelectiveRestore(string keyName, Uri folderUri, string sasToken, CancellationToken cancellationToken = default) + /// A to wait on this long-running operation. + public virtual KeyVaultSelectiveKeyRestoreOperation StartSelectiveRestore(string keyName, Uri folderUri, string sasToken, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultBackupClient)}.{nameof(StartSelectiveRestore)}"); scope.Start(); @@ -278,7 +278,7 @@ public virtual SelectiveKeyRestoreOperation StartSelectiveRestore(string keyName folderName), cancellationToken); - return new SelectiveKeyRestoreOperation(this, response); + return new KeyVaultSelectiveKeyRestoreOperation(this, response); } catch (Exception ex) { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupOperation.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupOperation.cs similarity index 86% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupOperation.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupOperation.cs index 6bc3c0f0dc8e..667c289926c4 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupOperation.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupOperation.cs @@ -13,7 +13,7 @@ namespace Azure.Security.KeyVault.Administration /// /// A long-running operation for or . /// - public class BackupOperation : Operation + public class KeyVaultBackupOperation : Operation { /// /// The number of seconds recommended by the service to delay before checking on completion status. @@ -31,9 +31,9 @@ public class BackupOperation : Operation /// to re-populate the details of this operation. /// /// An instance of . - /// The from a previous . + /// The from a previous . /// or is null. - public BackupOperation(KeyVaultBackupClient client, string id) + public KeyVaultBackupOperation(KeyVaultBackupClient client, string id) { Argument.AssertNotNull(id, nameof(id)); Argument.AssertNotNull(client, nameof(client)); @@ -47,7 +47,7 @@ public BackupOperation(KeyVaultBackupClient client, string id) /// /// An instance of . /// The returned from or . - internal BackupOperation(KeyVaultBackupClient client, ResponseWithHeaders response) + internal KeyVaultBackupOperation(KeyVaultBackupClient client, ResponseWithHeaders response) { _client = client; _response = response; @@ -61,7 +61,7 @@ internal BackupOperation(KeyVaultBackupClient client, ResponseWithHeadersThe that will be returned from . /// The that will be returned from . /// An instance of . - internal BackupOperation(FullBackupDetailsInternal value, Response response, KeyVaultBackupClient client) + internal KeyVaultBackupOperation(FullBackupDetailsInternal value, Response response, KeyVaultBackupClient client) { Argument.AssertNotNull(value, nameof(value)); Argument.AssertNotNull(response, nameof(response)); @@ -73,8 +73,8 @@ internal BackupOperation(FullBackupDetailsInternal value, Response response, Key _client = client; } - /// Initializes a new instance of for mocking. - protected BackupOperation() {} + /// Initializes a new instance of for mocking. + protected KeyVaultBackupOperation() {} /// /// The start time of the backup operation. @@ -93,7 +93,7 @@ protected BackupOperation() {} /// Gets the of the backup operation. /// You should await before attempting to use a key in this pending state. /// - public override BackupResult Value + public override KeyVaultBackupResult Value { get { @@ -107,7 +107,7 @@ public override BackupResult Value throw _requestFailedException; } #pragma warning restore CA1065 // Do not raise exceptions in unexpected locations - return new BackupResult(new Uri(_value.AzureStorageBlobContainerUri), _value.StartTime.Value, _value.EndTime.Value); + return new KeyVaultBackupResult(new Uri(_value.AzureStorageBlobContainerUri), _value.StartTime.Value, _value.EndTime.Value); } } @@ -162,12 +162,12 @@ await _client.GetBackupDetailsAsync(Id, cancellationToken).ConfigureAwait(false) } /// - public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => + public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => _retryAfterSeconds.HasValue ? this.DefaultWaitForCompletionAsync(TimeSpan.FromSeconds(_retryAfterSeconds.Value), cancellationToken) : this.DefaultWaitForCompletionAsync(cancellationToken); /// - public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => this.DefaultWaitForCompletionAsync(pollingInterval, cancellationToken); } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupResult.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupResult.cs similarity index 86% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupResult.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupResult.cs index 51c136629a16..d3a873537ab5 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupResult.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultBackupResult.cs @@ -9,9 +9,9 @@ namespace Azure.Security.KeyVault.Administration /// /// The result of a backup operation. /// - public class BackupResult + public class KeyVaultBackupResult { - internal BackupResult(Uri folderUri, DateTimeOffset startTime, DateTimeOffset endTime) + internal KeyVaultBackupResult(Uri folderUri, DateTimeOffset startTime, DateTimeOffset endTime) { Argument.AssertNotNull(folderUri, nameof(folderUri)); diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/DataAction.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultDataAction.cs similarity index 82% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/DataAction.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultDataAction.cs index 1504487a7a55..3d0895c59ded 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/DataAction.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultDataAction.cs @@ -4,7 +4,7 @@ using System; using Azure.Core; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { [CodeGenModel("DataAction")] public readonly partial struct KeyVaultDataAction : IEquatable diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperation.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreOperation.cs similarity index 72% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperation.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreOperation.cs index 15f62966eb27..3fca234a6f5e 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperation.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreOperation.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using Azure.Core; @@ -13,9 +12,9 @@ namespace Azure.Security.KeyVault.Administration /// /// A long-running operation for or . /// - public class RestoreOperation : Operation + public class KeyVaultRestoreOperation : Operation { - internal readonly RestoreOperationInternal _operationInternal; + internal readonly RestoreOperationInternal _operationInternal; /// /// Creates an instance of a RestoreOperation from a previously started operation. , , @@ -23,11 +22,11 @@ public class RestoreOperation : Operation /// to re-populate the details of this operation. /// /// An instance of . - /// The from a previous . + /// The from a previous . /// or is null. - public RestoreOperation(KeyVaultBackupClient client, string id) + public KeyVaultRestoreOperation(KeyVaultBackupClient client, string id) { - _operationInternal = new RestoreOperationInternal(client, id); + _operationInternal = new RestoreOperationInternal(client, id); } /// @@ -36,9 +35,9 @@ public RestoreOperation(KeyVaultBackupClient client, string id) /// An instance of . /// The returned from or . /// or is null. - internal RestoreOperation(KeyVaultBackupClient client, ResponseWithHeaders response) + internal KeyVaultRestoreOperation(KeyVaultBackupClient client, ResponseWithHeaders response) { - _operationInternal = new RestoreOperationInternal(client, response); + _operationInternal = new RestoreOperationInternal(client, response); } /// @@ -48,13 +47,13 @@ internal RestoreOperation(KeyVaultBackupClient client, ResponseWithHeadersThe that will be returned from . /// An instance of . /// or or is null. - internal RestoreOperation(RestoreDetailsInternal value, Response response, KeyVaultBackupClient client) + internal KeyVaultRestoreOperation(RestoreDetailsInternal value, Response response, KeyVaultBackupClient client) { - _operationInternal = new RestoreOperationInternal(value, response, client); + _operationInternal = new RestoreOperationInternal(value, response, client); } - /// Initializes a new instance of for mocking. - protected RestoreOperation() {} + /// Initializes a new instance of for mocking. + protected KeyVaultRestoreOperation() {} /// /// The start time of the restore operation. @@ -70,7 +69,7 @@ protected RestoreOperation() {} public override string Id => _operationInternal.Id; /// - public override RestoreResult Value => _operationInternal.Value; + public override KeyVaultRestoreResult Value => _operationInternal.Value; /// public override bool HasCompleted => _operationInternal.HasCompleted; @@ -89,11 +88,11 @@ public override async ValueTask UpdateStatusAsync(CancellationToken ca await _operationInternal.UpdateStatusAsync(cancellationToken).ConfigureAwait(false); /// - public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => + public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => _operationInternal.WaitForCompletionAsync(cancellationToken); /// - public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken); } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreResult.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreResult.cs similarity index 83% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreResult.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreResult.cs index 32cc8057e858..f737c9e4f0ab 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreResult.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRestoreResult.cs @@ -2,16 +2,15 @@ // Licensed under the MIT License. using System; -using Azure.Core; namespace Azure.Security.KeyVault.Administration { /// /// The result of a restore operation. /// - public class RestoreResult + public class KeyVaultRestoreResult { - internal RestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) + internal KeyVaultRestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) { StartTime = startTime; EndTime = endTime; diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentProperties.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentProperties.cs index 9b5508ea06b1..ea7d2a5a0aae 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentProperties.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentProperties.cs @@ -6,6 +6,6 @@ namespace Azure.Security.KeyVault.Administration { [CodeGenModel("RoleAssignmentProperties")] - internal partial class KeyVaultRoleAssignmentProperties + internal partial class KeyVaultRoleAssignmentPropertiesInternal { } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentPropertiesWithScope.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentPropertiesWithScope.cs index 1cba7478ebd7..c3148a0ec78f 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentPropertiesWithScope.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleAssignmentPropertiesWithScope.cs @@ -7,6 +7,6 @@ namespace Azure.Security.KeyVault.Administration { /// Role assignment properties with scope. [CodeGenModel("RoleAssignmentPropertiesWithScope")] - public partial class KeyVaultRoleAssignmentPropertiesWithScope + public partial class KeyVaultRoleAssignmentProperties { } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleDefinitionType.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleDefinitionType.cs similarity index 76% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleDefinitionType.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleDefinitionType.cs index a915b1794287..e0a1e7132445 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleDefinitionType.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleDefinitionType.cs @@ -1,10 +1,9 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; using Azure.Core; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { [CodeGenModel("RoleDefinitionType")] public readonly partial struct KeyVaultRoleDefinitionType diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleScope.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleScope.cs index bc7a217a2dab..6d8cbe5bbd67 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleScope.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultRoleScope.cs @@ -4,7 +4,7 @@ using System; using Azure.Core; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { [CodeGenModel("RoleScope")] public readonly partial struct KeyVaultRoleScope diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreOperation.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreOperation.cs similarity index 71% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreOperation.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreOperation.cs index 4008d990bbc8..a68c2e704ac0 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreOperation.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreOperation.cs @@ -10,11 +10,11 @@ namespace Azure.Security.KeyVault.Administration { /// - /// A long-running operation for or . + /// A long-running operation for or . /// - public class SelectiveKeyRestoreOperation : Operation + public class KeyVaultSelectiveKeyRestoreOperation : Operation { - private readonly RestoreOperationInternal _operationInternal; + private readonly RestoreOperationInternal _operationInternal; /// /// Creates an instance of a SelectiveKeyRestoreOperation from a previously started operation. , , @@ -22,11 +22,11 @@ public class SelectiveKeyRestoreOperation : Operation /// to re-populate the details of this operation. /// /// An instance of . - /// The from a previous . + /// The from a previous . /// or is null. - public SelectiveKeyRestoreOperation(KeyVaultBackupClient client, string id) + public KeyVaultSelectiveKeyRestoreOperation(KeyVaultBackupClient client, string id) { - _operationInternal = new RestoreOperationInternal(client, id); + _operationInternal = new RestoreOperationInternal(client, id); } /// @@ -35,9 +35,9 @@ public SelectiveKeyRestoreOperation(KeyVaultBackupClient client, string id) /// An instance of . /// The returned from or . /// or is null. - internal SelectiveKeyRestoreOperation(KeyVaultBackupClient client, ResponseWithHeaders response) + internal KeyVaultSelectiveKeyRestoreOperation(KeyVaultBackupClient client, ResponseWithHeaders response) { - _operationInternal = new RestoreOperationInternal(client, response); + _operationInternal = new RestoreOperationInternal(client, response); } /// @@ -47,13 +47,13 @@ internal SelectiveKeyRestoreOperation(KeyVaultBackupClient client, ResponseWithH /// The that will be returned from . /// An instance of . /// or or is null. - internal SelectiveKeyRestoreOperation(SelectiveKeyRestoreDetailsInternal value, Response response, KeyVaultBackupClient client) + internal KeyVaultSelectiveKeyRestoreOperation(SelectiveKeyRestoreDetailsInternal value, Response response, KeyVaultBackupClient client) { - _operationInternal = new RestoreOperationInternal(value, response, client); + _operationInternal = new RestoreOperationInternal(value, response, client); } - /// Initializes a new instance of for mocking. - protected SelectiveKeyRestoreOperation() {} + /// Initializes a new instance of for mocking. + protected KeyVaultSelectiveKeyRestoreOperation() {} /// /// The start time of the restore operation. @@ -69,7 +69,7 @@ protected SelectiveKeyRestoreOperation() {} public override string Id => _operationInternal.Id; /// - public override SelectiveKeyRestoreResult Value => _operationInternal.Value; + public override KeyVaultSelectiveKeyRestoreResult Value => _operationInternal.Value; /// public override bool HasCompleted => _operationInternal.HasCompleted; @@ -88,11 +88,11 @@ public override async ValueTask UpdateStatusAsync(CancellationToken ca await _operationInternal.UpdateStatusAsync(cancellationToken).ConfigureAwait(false); /// - public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => + public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => _operationInternal.WaitForCompletionAsync(cancellationToken); /// - public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => + public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) => _operationInternal.WaitForCompletionAsync(pollingInterval, cancellationToken); } } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreResult.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreResult.cs similarity index 81% rename from sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreResult.cs rename to sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreResult.cs index 440edd303163..b2f689ad0bec 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/SelectiveKeyRestoreResult.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/KeyVaultSelectiveKeyRestoreResult.cs @@ -8,9 +8,9 @@ namespace Azure.Security.KeyVault.Administration /// /// The result of a selective key restore operation. /// - public class SelectiveKeyRestoreResult + public class KeyVaultSelectiveKeyRestoreResult { - internal SelectiveKeyRestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) + internal KeyVaultSelectiveKeyRestoreResult(DateTimeOffset startTime, DateTimeOffset endTime) { StartTime = startTime; EndTime = endTime; diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperationInternal.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperationInternal.cs index bad982aa191a..7136e1b8e251 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperationInternal.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RestoreOperationInternal.cs @@ -30,7 +30,7 @@ internal class RestoreOperationInternal : Oper /// to re-populate the details of this operation. /// /// An instance of . - /// The from a previous . + /// The from a previous . /// or is null. public RestoreOperationInternal(KeyVaultBackupClient client, string id) { @@ -151,13 +151,13 @@ public override TResult Value TResult result = null; Type resultType = typeof(TResult); - if (resultType == typeof(RestoreResult)) + if (resultType == typeof(KeyVaultRestoreResult)) { - result = new RestoreResult(StartTime.Value, EndTime.Value) as TResult; + result = new KeyVaultRestoreResult(StartTime.Value, EndTime.Value) as TResult; } - else if (resultType == typeof(SelectiveKeyRestoreResult)) + else if (resultType == typeof(KeyVaultSelectiveKeyRestoreResult)) { - result = new SelectiveKeyRestoreResult(StartTime.Value, EndTime.Value) as TResult; + result = new KeyVaultSelectiveKeyRestoreResult(StartTime.Value, EndTime.Value) as TResult; } return result; } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleType.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleType.cs index 57a6b47f673b..2da7573776c9 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleType.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/RoleType.cs @@ -1,10 +1,9 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; using Azure.Core; -namespace Azure.Security.KeyVault.Administration.Models +namespace Azure.Security.KeyVault.Administration { [CodeGenModel("RoleType")] public readonly partial struct KeyVaultRoleType diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/autorest.md b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/autorest.md index ba33037aa0ff..1ad001fab78c 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/src/autorest.md +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/src/autorest.md @@ -8,8 +8,8 @@ Run `dotnet build /t:GenerateCode` in src directory to re-generate. ``` yaml title: Azure.Security.KeyVault.Administration input-file: - - https://raw.githubusercontent.com/Azure/azure-rest-api-specs/612f78afd05911d0e1e82ba72b41781f655dbffb/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/rbac.json - - https://raw.githubusercontent.com/Azure/azure-rest-api-specs/612f78afd05911d0e1e82ba72b41781f655dbffb/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json + - https://raw.githubusercontent.com/Azure/azure-rest-api-specs/1e2c9f3ec93078da8078389941531359e274f32a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.2/rbac.json + - https://raw.githubusercontent.com/Azure/azure-rest-api-specs/1e2c9f3ec93078da8078389941531359e274f32a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.2/backuprestore.json namespace: Azure.Security.KeyVault.Administration include-csproj: disable ``` diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlClientLiveTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlClientLiveTests.cs index 0d4bc5fea64f..32ef39875c9e 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlClientLiveTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlClientLiveTests.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Azure.Core.TestFramework; -using Azure.Security.KeyVault.Administration.Models; using NUnit.Framework; using System.Linq; @@ -37,19 +36,32 @@ public async Task GetRoleDefinition() { var description = Recording.GenerateAlphaNumericId("role"); var name = Recording.Random.NewGuid(); - var originalPermissions = new KeyVaultPermission(); - originalPermissions.DataActions.Add(KeyVaultDataAction.BackupHsmKeys); - KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(description, originalPermissions, KeyVaultRoleScope.Global, name); + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global, name) + { + Description = description, + Permissions = + { + new() + { + DataActions = + { + KeyVaultDataAction.BackupHsmKeys, + } + } + } + }; + + KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(options); RegisterForCleanup(createdDefinition); - KeyVaultRoleDefinition fetchedRoleDefinition = await Client.GetRoleDefinitionAsync(name, KeyVaultRoleScope.Global); + KeyVaultRoleDefinition fetchedRoleDefinition = await Client.GetRoleDefinitionAsync(KeyVaultRoleScope.Global, name); Assert.That(fetchedRoleDefinition.AssignableScopes, Is.EqualTo(new[] { KeyVaultRoleScope.Global })); Assert.That(fetchedRoleDefinition.Description, Is.EqualTo(description)); Assert.That(fetchedRoleDefinition.Name, Is.EqualTo(name.ToString())); - Assert.That(fetchedRoleDefinition.Permissions.First().DataActions, Is.EquivalentTo(originalPermissions.DataActions)); + Assert.That(fetchedRoleDefinition.Permissions.First().DataActions, Is.EquivalentTo(options.Permissions[0].DataActions)); Assert.That(fetchedRoleDefinition.Type, Is.EqualTo(KeyVaultRoleDefinitionType.MicrosoftAuthorizationRoleDefinitions)); } @@ -58,29 +70,42 @@ public async Task CreateOrUpdateRoleDefinition() { var description = Recording.GenerateAlphaNumericId("role"); var name = Recording.Random.NewGuid(); - var originalPermissions = new KeyVaultPermission(); - originalPermissions.DataActions.Add(KeyVaultDataAction.BackupHsmKeys); - KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(description, originalPermissions, KeyVaultRoleScope.Global, name); + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global, name) + { + Description = description, + Permissions = + { + new() + { + DataActions = + { + KeyVaultDataAction.BackupHsmKeys, + } + } + } + }; + + KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(options); RegisterForCleanup(createdDefinition); Assert.That(createdDefinition.AssignableScopes, Is.EqualTo(new[] { KeyVaultRoleScope.Global })); Assert.That(createdDefinition.Description, Is.EqualTo(description)); Assert.That(createdDefinition.Name, Is.EqualTo(name.ToString())); - Assert.That(createdDefinition.Permissions.First().DataActions, Is.EquivalentTo(originalPermissions.DataActions)); + Assert.That(createdDefinition.Permissions.First().DataActions, Is.EquivalentTo(options.Permissions[0].DataActions)); Assert.That(createdDefinition.Type, Is.EqualTo(KeyVaultRoleDefinitionType.MicrosoftAuthorizationRoleDefinitions)); - var updatedpermissions = new KeyVaultPermission(); - updatedpermissions.DataActions.Add(KeyVaultDataAction.CreateHsmKey); - updatedpermissions.DataActions.Add(KeyVaultDataAction.DownloadHsmSecurityDomain); + options.Permissions[0].DataActions.Clear(); + options.Permissions[0].DataActions.Add(KeyVaultDataAction.CreateHsmKey); + options.Permissions[0].DataActions.Add(KeyVaultDataAction.DownloadHsmSecurityDomain); - KeyVaultRoleDefinition updatedDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(description, updatedpermissions, KeyVaultRoleScope.Global, name); + KeyVaultRoleDefinition updatedDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(options); Assert.That(updatedDefinition.AssignableScopes, Is.EqualTo(new[] { KeyVaultRoleScope.Global })); Assert.That(updatedDefinition.Description, Is.EqualTo(description)); Assert.That(updatedDefinition.Name, Is.EqualTo(name.ToString())); - Assert.That(updatedDefinition.Permissions.First().DataActions, Is.EquivalentTo(updatedpermissions.DataActions)); + Assert.That(updatedDefinition.Permissions.First().DataActions, Is.EquivalentTo(options.Permissions[0].DataActions)); Assert.That(updatedDefinition.Type, Is.EqualTo(KeyVaultRoleDefinitionType.MicrosoftAuthorizationRoleDefinitions)); } @@ -89,11 +114,24 @@ public async Task DeleteRoleDefinition() { var description = Recording.GenerateAlphaNumericId("role"); var name = Recording.Random.NewGuid(); - var originalPermissions = new KeyVaultPermission(); - originalPermissions.DataActions.Add(KeyVaultDataAction.BackupHsmKeys); - KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(description, originalPermissions, KeyVaultRoleScope.Global, name); - await Client.DeleteRoleDefinitionAsync(name, KeyVaultRoleScope.Global); + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global, name) + { + Description = description, + Permissions = + { + new() + { + DataActions = + { + KeyVaultDataAction.BackupHsmKeys, + } + } + } + }; + + KeyVaultRoleDefinition createdDefinition = await Client.CreateOrUpdateRoleDefinitionAsync(options); + await Client.DeleteRoleDefinitionAsync(KeyVaultRoleScope.Global, name); List results = await Client.GetRoleDefinitionsAsync(KeyVaultRoleScope.Global).ToEnumerableAsync().ConfigureAwait(false); diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlTestBase.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlTestBase.cs index d3615f379a65..fc07a27bb325 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlTestBase.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/AccessControlTestBase.cs @@ -6,7 +6,6 @@ using System.Linq; using System.Threading.Tasks; using Azure.Core.TestFramework; -using Azure.Security.KeyVault.Administration.Models; using NUnit.Framework; namespace Azure.Security.KeyVault.Administration.Tests @@ -103,7 +102,7 @@ protected async Task DeleteRoleDefinition((string Name, KeyVaultRoleScope? Scope { using (Recording.DisableRecording()) { - await Client.DeleteRoleDefinitionAsync(new Guid(assignment.Name), assignment.Scope.Value).ConfigureAwait(false); + await Client.DeleteRoleDefinitionAsync(assignment.Scope.Value, new Guid(assignment.Name)).ConfigureAwait(false); } } catch (RequestFailedException ex) when (ex.Status == 404) diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/BackupOperationTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/BackupOperationTests.cs index d1d487da5ae0..b2284a86b65f 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/BackupOperationTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/BackupOperationTests.cs @@ -50,11 +50,11 @@ public void UpdateStatusThrowsOnError() .Setup(m => m.GetBackupDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new BackupOperation(mockClient.Object, JobId); + var operation = new KeyVaultBackupOperation(mockClient.Object, JobId); Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new BackupOperation(mockClient.Object, JobId); + operation = new KeyVaultBackupOperation(mockClient.Object, JobId); Assert.Throws(() => operation.UpdateStatus(default)); } @@ -78,11 +78,11 @@ public void UpdateStatusThrowsIfServiceCallThrows(Exception ex) .Setup(m => m.GetBackupDetails(It.IsAny(), It.IsAny())) .Throws(ex); - var operation = new BackupOperation(mockClient.Object, JobId); + var operation = new KeyVaultBackupOperation(mockClient.Object, JobId); Exception result = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new BackupOperation(mockClient.Object, JobId); + operation = new KeyVaultBackupOperation(mockClient.Object, JobId); result = Assert.Throws(() => operation.UpdateStatus(default)); } @@ -96,11 +96,11 @@ public void ValueThrowsOnError() .Setup(m => m.GetBackupDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new BackupOperation(mockClient.Object, JobId); + var operation = new KeyVaultBackupOperation(mockClient.Object, JobId); var exception = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - Assert.Throws(() => { BackupResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultBackupResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(failedBackup.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(failedBackup.EndTime)); } @@ -114,9 +114,9 @@ public void ValueThrowsWhenOperationIsNotComplete() .Setup(m => m.GetBackupDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new BackupOperation(incompleteBackup, Mock.Of(), Mock.Of()); + var operation = new KeyVaultBackupOperation(incompleteBackup, Mock.Of(), Mock.Of()); - Assert.Throws(() => { BackupResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultBackupResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(incompleteBackup.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(incompleteBackup.EndTime)); } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/CreateOrUpdateRoleDefinitionOptionsTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/CreateOrUpdateRoleDefinitionOptionsTests.cs new file mode 100644 index 000000000000..2910e4e8bdf9 --- /dev/null +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/CreateOrUpdateRoleDefinitionOptionsTests.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using Azure.Security.KeyVault.Administration.Models; +using NUnit.Framework; + +namespace Azure.Security.KeyVault.Administration.Tests +{ + public class CreateOrUpdateRoleDefinitionOptionsTests + { + [Test] + public void CreatesNewGuid() + { + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global); + + Assert.AreEqual(KeyVaultRoleScope.Global, options.RoleScope); + Assert.AreNotEqual(Guid.Empty, options.RoleDefinitionName); + } + + [Test] + public void CreatesWithGuid() + { + Guid roleDefinitionName = Guid.NewGuid(); + + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global, roleDefinitionName); + + Assert.AreEqual(KeyVaultRoleScope.Global, options.RoleScope); + Assert.AreEqual(roleDefinitionName, options.RoleDefinitionName); + } + + [Test] + public void ToPermissions() + { + Guid roleDefinitionName = Guid.NewGuid(); + + CreateOrUpdateRoleDefinitionOptions options = new(KeyVaultRoleScope.Global, roleDefinitionName) + { + RoleName = "Test Role Definition", + Description = "This is only a test.", + Permissions = + { + new() + { + DataActions = + { + KeyVaultDataAction.BackupHsmKeys, + }, + }, + }, + AssignableScopes = + { + KeyVaultRoleScope.Global, + }, + }; + + RoleDefinitionCreateParameters parameters = options.ToParameters(KeyVaultRoleType.CustomRole); + + Assert.AreEqual(KeyVaultRoleType.CustomRole, parameters.Properties.RoleType); + Assert.AreEqual("Test Role Definition", parameters.Properties.RoleName); + Assert.AreEqual("This is only a test.", parameters.Properties.Description); + Assert.AreEqual(1, parameters.Properties.Permissions.Count); + CollectionAssert.AreEqual(parameters.Properties.Permissions[0].DataActions, new[] { KeyVaultDataAction.BackupHsmKeys }); + CollectionAssert.AreEqual(parameters.Properties.AssignableScopes, new[] { KeyVaultRoleScope.Global }); + } + } +} diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/FullBackupClientLiveTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/FullBackupClientLiveTests.cs index 5cee2ad6c6e0..8af329e96fbc 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/FullBackupClientLiveTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/FullBackupClientLiveTests.cs @@ -27,10 +27,10 @@ public async Task BackupAndRestore() builder.Path = BlobContainerName; // Start the backup. - BackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, "?" + SasToken, source.Token); + KeyVaultBackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, "?" + SasToken, source.Token); // Wait for completion of the LRO. - BackupResult backupResult = await backupOperation.WaitForCompletionAsync(source.Token); + KeyVaultBackupResult backupResult = await backupOperation.WaitForCompletionAsync(source.Token); await WaitForOperationAsync(); @@ -39,7 +39,7 @@ public async Task BackupAndRestore() Assert.That(backupOperation.HasValue, Is.True); // Start the restore. - RestoreOperation restoreOperation = await Client.StartRestoreAsync(backupResult.FolderUri, "?" + SasToken, source.Token); + KeyVaultRestoreOperation restoreOperation = await Client.StartRestoreAsync(backupResult.FolderUri, "?" + SasToken, source.Token); // Wait for completion of the LRO var restoreResult = await restoreOperation.WaitForCompletionAsync(source.Token); @@ -61,10 +61,10 @@ public async Task BackupAndRestoreMultiPartFolderName() builder.Path = BlobContainerNameMultiPart; // Start the backup. - BackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, "?" + SasToken, source.Token); + KeyVaultBackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, "?" + SasToken, source.Token); // Wait for completion of the LRO. - BackupResult backupResult = await backupOperation.WaitForCompletionAsync(source.Token); + KeyVaultBackupResult backupResult = await backupOperation.WaitForCompletionAsync(source.Token); await WaitForOperationAsync(); @@ -73,7 +73,7 @@ public async Task BackupAndRestoreMultiPartFolderName() Assert.That(backupOperation.HasValue, Is.True); // Start the restore. - RestoreOperation restoreOperation = await Client.StartRestoreAsync(backupResult.FolderUri, "?" + SasToken, source.Token); + KeyVaultRestoreOperation restoreOperation = await Client.StartRestoreAsync(backupResult.FolderUri, "?" + SasToken, source.Token); // Wait for completion of the LRO var restoreResult = await restoreOperation.WaitForCompletionAsync(source.Token); diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/KeyVaultBackupClientTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/KeyVaultBackupClientTests.cs index 04b64a99260c..74f86eaec786 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/KeyVaultBackupClientTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/KeyVaultBackupClientTests.cs @@ -2,10 +2,6 @@ // Licensed under the MIT License. using System; -using System.Collections.Concurrent; -using System.Threading.Tasks; -using Azure.Core.TestFramework; -using Azure.Security.KeyVault.Administration.Models; using NUnit.Framework; namespace Azure.Security.KeyVault.Administration.Tests diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RestoreOperationTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RestoreOperationTests.cs index bd08d9a554ac..12ff12b891cd 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RestoreOperationTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RestoreOperationTests.cs @@ -51,11 +51,11 @@ public void UpdateStatusThrowsOnError() .Setup(m => m.GetRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new RestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultRestoreOperation(mockClient.Object, JobId); Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new RestoreOperation(mockClient.Object, JobId); + operation = new KeyVaultRestoreOperation(mockClient.Object, JobId); Assert.Throws(() => operation.UpdateStatus(default)); } @@ -79,11 +79,11 @@ public void UpdateStatusThrowsIfServiceCallThrows(Exception ex) .Setup(m => m.GetRestoreDetails(It.IsAny(), It.IsAny())) .Throws(ex); - var operation = new RestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultRestoreOperation(mockClient.Object, JobId); Exception result = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new RestoreOperation(mockClient.Object, JobId); + operation = new KeyVaultRestoreOperation(mockClient.Object, JobId); result = Assert.Throws(() => operation.UpdateStatus(default)); } @@ -97,11 +97,11 @@ public void ValueThrowsOnError() .Setup(m => m.GetRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new RestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultRestoreOperation(mockClient.Object, JobId); var exception = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - Assert.Throws(() => { RestoreResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultRestoreResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(failedRestore.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(failedRestore.EndTime)); } @@ -115,9 +115,9 @@ public void ValueThrowsWhenOperationIsNotComplete() .Setup(m => m.GetRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new RestoreOperation(incompleteRestore, Mock.Of(), Mock.Of()); + var operation = new KeyVaultRestoreOperation(incompleteRestore, Mock.Of(), Mock.Of()); - Assert.Throws(() => { RestoreResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultRestoreResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(incompleteRestore.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(incompleteRestore.EndTime)); } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RoleAssignmentScopeTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RoleAssignmentScopeTests.cs index bcbd6996fc16..f930e40472eb 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RoleAssignmentScopeTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/RoleAssignmentScopeTests.cs @@ -1,12 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System.Threading.Tasks; -using Azure.Core.TestFramework; using NUnit.Framework; using System; -using System.Threading; -using Azure.Security.KeyVault.Administration.Models; namespace Azure.Security.KeyVault.Administration.Tests { diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SelectiveKeyRestoreOperationTests.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SelectiveKeyRestoreOperationTests.cs index d620141cc2d3..4524592db266 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SelectiveKeyRestoreOperationTests.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SelectiveKeyRestoreOperationTests.cs @@ -51,11 +51,11 @@ public void UpdateStatusThrowsOnError() .Setup(m => m.GetSelectiveKeyRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new SelectiveKeyRestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultSelectiveKeyRestoreOperation(mockClient.Object, JobId); Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new SelectiveKeyRestoreOperation(mockClient.Object, JobId); + operation = new KeyVaultSelectiveKeyRestoreOperation(mockClient.Object, JobId); Assert.Throws(() => operation.UpdateStatus(default)); } @@ -79,11 +79,11 @@ public void UpdateStatusThrowsIfServiceCallThrows(Exception ex) .Setup(m => m.GetSelectiveKeyRestoreDetails(It.IsAny(), It.IsAny())) .Throws(ex); - var operation = new SelectiveKeyRestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultSelectiveKeyRestoreOperation(mockClient.Object, JobId); Exception result = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - operation = new SelectiveKeyRestoreOperation(mockClient.Object, JobId); + operation = new KeyVaultSelectiveKeyRestoreOperation(mockClient.Object, JobId); result = Assert.Throws(() => operation.UpdateStatus(default)); } @@ -97,11 +97,11 @@ public void ValueThrowsOnError() .Setup(m => m.GetSelectiveKeyRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new SelectiveKeyRestoreOperation(mockClient.Object, JobId); + var operation = new KeyVaultSelectiveKeyRestoreOperation(mockClient.Object, JobId); var exception = Assert.ThrowsAsync(async () => await operation.UpdateStatusAsync(default)); - Assert.Throws(() => { SelectiveKeyRestoreResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultSelectiveKeyRestoreResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(failedRestore.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(failedRestore.EndTime)); } @@ -115,9 +115,9 @@ public void ValueThrowsWhenOperationIsNotComplete() .Setup(m => m.GetSelectiveKeyRestoreDetailsAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(failedResponse.Object); - var operation = new SelectiveKeyRestoreOperation(incompleteRestore, Mock.Of(), Mock.Of()); + var operation = new KeyVaultSelectiveKeyRestoreOperation(incompleteRestore, Mock.Of(), Mock.Of()); - Assert.Throws(() => { SelectiveKeyRestoreResult x = operation.Value; }); + Assert.Throws(() => { KeyVaultSelectiveKeyRestoreResult x = operation.Value; }); Assert.That(operation.StartTime, Is.EqualTo(incompleteRestore.StartTime)); Assert.That(operation.EndTime, Is.EqualTo(incompleteRestore.EndTime)); } diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinition.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinition.json index 3558f6c526e3..ec4afb3ccb5b 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinition.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinition.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-eaf7f23be173004189726c4adfde42a8-0abf2060c1927740-00", + "traceparent": "00-465088e41e8ed14588f299594bf144b9-1856a47c11aa894a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "8632cc5684bbe3e2f85325b240dce04b", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "e2f29644-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c5fa4742-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "1" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-eaf7f23be173004189726c4adfde42a8-0abf2060c1927740-00", + "traceparent": "00-465088e41e8ed14588f299594bf144b9-1856a47c11aa894a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "8632cc5684bbe3e2f85325b240dce04b", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", "description": "roleZdL21pfk", "type": "CustomRole", "permissions": [ @@ -57,25 +56,22 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e318a6e0-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "80" + "x-ms-request-id": "c69e8780-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "467" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", @@ -95,31 +91,30 @@ "notDataActions": [] } ], - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "281", + "Content-Length": "206", "Content-Type": "application/json", - "traceparent": "00-b6bb69c05ff8b84bb274a533a84174cc-6235cc29dd0fb14c-00", + "traceparent": "00-7354f1892178ad49bbaea4fe89ba93e7-95b344c8b9bb5c49-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "78368bab9b3680ea6d899380443068af", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", "description": "roleZdL21pfk", "type": "CustomRole", "permissions": [ @@ -129,25 +124,22 @@ "Microsoft.KeyVault/managedHsm/securitydomain/download/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "538", + "Content-Length": "502", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e33849b4-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "49" + "x-ms-request-id": "c6f71a1c-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "51" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", @@ -168,7 +160,7 @@ "notDataActions": [] } ], - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -176,7 +168,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "1687111376" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinitionAsync.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinitionAsync.json index 4e36acf5388f..78998dc2c3ec 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinitionAsync.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/CreateOrUpdateRoleDefinitionAsync.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-71d668558d8ad44cbfd9df011565d9ef-7ff64d0d0e17c044-00", + "traceparent": "00-667e12f8d9f8154d9c3470970e2c77bf-65bb1db6c49a0d4c-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "5e820f24342fc13942f0add0f0398999", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "e4dfc21a-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "1" + "x-ms-request-id": "c7b0723c-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-71d668558d8ad44cbfd9df011565d9ef-7ff64d0d0e17c044-00", + "traceparent": "00-667e12f8d9f8154d9c3470970e2c77bf-65bb1db6c49a0d4c-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "5e820f24342fc13942f0add0f0398999", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "54240b47-e6cd-6e36-6cc8-e7f894d36ec2", "description": "roleNAITnYx2", "type": "CustomRole", "permissions": [ @@ -57,25 +56,22 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e50099f4-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "1603" + "x-ms-request-id": "c7da0b2e-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "55" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2", @@ -95,31 +91,30 @@ "notDataActions": [] } ], - "roleName": "54240b47-e6cd-6e36-6cc8-e7f894d36ec2", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "281", + "Content-Length": "206", "Content-Type": "application/json", - "traceparent": "00-80541db8c4871149a39e0e780e66e392-91dbdce3dbfd3a48-00", + "traceparent": "00-14a9c1fb36b2794e8ffdb6994367216c-4f6d919fab77d94e-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "dbe22b9c957e543f2fd2e335cb74af45", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "54240b47-e6cd-6e36-6cc8-e7f894d36ec2", "description": "roleNAITnYx2", "type": "CustomRole", "permissions": [ @@ -129,25 +124,22 @@ "Microsoft.KeyVault/managedHsm/securitydomain/download/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "538", + "Content-Length": "502", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e5ff6218-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "3629" + "x-ms-request-id": "c7ed88d4-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "64" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/54240b47-e6cd-6e36-6cc8-e7f894d36ec2", @@ -168,7 +160,7 @@ "notDataActions": [] } ], - "roleName": "54240b47-e6cd-6e36-6cc8-e7f894d36ec2", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -176,7 +168,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "902569695" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinition.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinition.json index 89628853cf3e..ede3b873186b 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinition.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinition.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-97d77aded3a7a940bcf730020ffc9fa1-c36caa3495bb0d4b-00", + "traceparent": "00-84b2530c0f87d1448b7364ebed91ace1-74ac3c30bd248e45-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "d0f45b49146592233b568c673d7f8ebe", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "e3e977e8-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c70fc3b4-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-97d77aded3a7a940bcf730020ffc9fa1-c36caa3495bb0d4b-00", + "traceparent": "00-84b2530c0f87d1448b7364ebed91ace1-74ac3c30bd248e45-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "d0f45b49146592233b568c673d7f8ebe", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "fa2959b1-56dd-331a-34a2-8887f07bdd7f", "description": "roleQOsy1t4S", "type": "CustomRole", "permissions": [ @@ -57,25 +56,22 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e3f96e0a-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "83" + "x-ms-request-id": "c7360b82-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "64" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f", @@ -95,22 +91,22 @@ "notDataActions": [] } ], - "roleName": "fa2959b1-56dd-331a-34a2-8887f07bdd7f", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f?api-version=7.2", "RequestMethod": "DELETE", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-156f2cd35355e74483ec8370da18b086-c05853ab5c1a664a-00", + "traceparent": "00-6fde8021faa29945ae6b4bc18709cf04-c46915fb9cd8094a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "b93f5f737735cfd5171125c72c45b1ab", "x-ms-return-client-request-id": "true" @@ -119,16 +115,16 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e410eb98-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "51" + "x-ms-request-id": "c74a8a1c-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "46" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/fa2959b1-56dd-331a-34a2-8887f07bdd7f", @@ -148,22 +144,22 @@ "notDataActions": [] } ], - "roleName": "fa2959b1-56dd-331a-34a2-8887f07bdd7f", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-a83201a47eb6f94888f12ef27d25acae-bc5101448d246e49-00", + "traceparent": "00-4b27d92808e57047871c5342cd35b55b-7197d34ed4daaf4e-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "4bcb02b679819d493596bf87c9b3f6b4", "x-ms-return-client-request-id": "true" @@ -172,16 +168,16 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "7311", + "Content-Length": "7093", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20210128-1-4c3070d1-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e422965e-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c75eb1f4-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "0" }, "ResponseBody": { @@ -236,6 +232,29 @@ }, "type": "Microsoft.Authorization/roleDefinitions" }, + { + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c", + "name": "21dbd100-6940-42c2-9190-5d6cb909625c", + "properties": { + "assignableScopes": [ + "/" + ], + "description": "", + "permissions": [ + { + "actions": [], + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/release/action" + ], + "notActions": [], + "notDataActions": [] + } + ], + "roleName": "Managed HSM Crypto Service Release", + "type": "AKVBuiltInRole" + }, + "type": "Microsoft.Authorization/roleDefinitions" + }, { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3", "name": "2c18b078-7c48-4d3a-af88-5a3a1b3f82b3", @@ -248,6 +267,8 @@ { "actions": [], "dataActions": [ + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", "Microsoft.KeyVault/managedHsm/keys/read/action", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action" ], @@ -300,10 +321,16 @@ { "actions": [], "dataActions": [ + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", "Microsoft.KeyVault/managedHsm/keys/read/action", "Microsoft.KeyVault/managedHsm/keys/write/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", + "Microsoft.KeyVault/managedHsm/keys/delete", "Microsoft.KeyVault/managedHsm/keys/create", + "Microsoft.KeyVault/managedHsm/keys/import/action", + "Microsoft.KeyVault/managedHsm/keys/release/action", + "Microsoft.KeyVault/managedHsm/keys/backup/action", + "Microsoft.KeyVault/managedHsm/keys/restore/action", "Microsoft.KeyVault/managedHsm/keys/encrypt/action", "Microsoft.KeyVault/managedHsm/keys/decrypt/action", "Microsoft.KeyVault/managedHsm/keys/wrap/action", @@ -332,23 +359,16 @@ { "actions": [], "dataActions": [ - "Microsoft.KeyVault/managedHsm/keys/read/action", - "Microsoft.KeyVault/managedHsm/keys/write/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/write/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action", + "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", - "Microsoft.KeyVault/managedHsm/keys/restore/action", - "Microsoft.KeyVault/managedHsm/keys/encrypt/action", - "Microsoft.KeyVault/managedHsm/keys/decrypt/action", - "Microsoft.KeyVault/managedHsm/keys/sign/action", - "Microsoft.KeyVault/managedHsm/keys/verify/action", - "Microsoft.KeyVault/managedHsm/keys/wrap/action", - "Microsoft.KeyVault/managedHsm/keys/unwrap/action", - "Microsoft.KeyVault/managedHsm/keys/create", - "Microsoft.KeyVault/managedHsm/keys/delete", - "Microsoft.KeyVault/managedHsm/keys/export/action", - "Microsoft.KeyVault/managedHsm/keys/import/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete" + "Microsoft.KeyVault/managedHsm/keys/export/action" ], "notActions": [], "notDataActions": [] @@ -371,30 +391,14 @@ { "actions": [], "dataActions": [ - "Microsoft.KeyVault/managedHsm/keys/read/action", - "Microsoft.KeyVault/managedHsm/keys/write/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", - "Microsoft.KeyVault/managedHsm/keys/restore/action", "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action", "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", "Microsoft.KeyVault/managedHsm/roleAssignments/write/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action", - "Microsoft.KeyVault/managedHsm/keys/encrypt/action", - "Microsoft.KeyVault/managedHsm/keys/decrypt/action", - "Microsoft.KeyVault/managedHsm/keys/wrap/action", - "Microsoft.KeyVault/managedHsm/keys/unwrap/action", - "Microsoft.KeyVault/managedHsm/keys/sign/action", - "Microsoft.KeyVault/managedHsm/keys/verify/action", - "Microsoft.KeyVault/managedHsm/keys/create", - "Microsoft.KeyVault/managedHsm/keys/delete", - "Microsoft.KeyVault/managedHsm/keys/export/action", - "Microsoft.KeyVault/managedHsm/keys/import/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete", "Microsoft.KeyVault/managedHsm/securitydomain/download/action", + "Microsoft.KeyVault/managedHsm/securitydomain/download/read", "Microsoft.KeyVault/managedHsm/securitydomain/upload/action", "Microsoft.KeyVault/managedHsm/securitydomain/upload/read", "Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read", @@ -431,7 +435,7 @@ "notDataActions": [] } ], - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -441,7 +445,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "532615683" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinitionAsync.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinitionAsync.json index 39200764015e..a36fe3064908 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinitionAsync.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/DeleteRoleDefinitionAsync.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-c3ab05b917990541995dd8ded5d1d263-43c9bcbbc2e7be4c-00", + "traceparent": "00-2dc6d8e8ad4a5147a6a1a4b5deb06df3-1416fc40f90ce349-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "bf198697ea9a446f667b14d8cb44f3c8", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "ea4a7a06-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "1" + "x-ms-request-id": "c8059b72-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-c3ab05b917990541995dd8ded5d1d263-43c9bcbbc2e7be4c-00", + "traceparent": "00-2dc6d8e8ad4a5147a6a1a4b5deb06df3-1416fc40f90ce349-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "bf198697ea9a446f667b14d8cb44f3c8", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "8d2110b8-83fc-5abe-fa89-de05b4185ea4", "description": "roleF7qgTREP", "type": "CustomRole", "permissions": [ @@ -57,25 +56,22 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "ea62f27a-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "92" + "x-ms-request-id": "c824d30c-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "53" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4", @@ -95,22 +91,22 @@ "notDataActions": [] } ], - "roleName": "8d2110b8-83fc-5abe-fa89-de05b4185ea4", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4?api-version=7.2", "RequestMethod": "DELETE", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-a14f97c2e515994290b1c1db29941cc3-0142949f248ae848-00", + "traceparent": "00-d22100b19c16ad4994e2f3e5fcd2fb5f-bd614ce3acf13f42-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "ec368aa5ca507915208338f386085da7", "x-ms-return-client-request-id": "true" @@ -119,16 +115,16 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "ea7b8088-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "90" + "x-ms-request-id": "c838c68c-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "52" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/8d2110b8-83fc-5abe-fa89-de05b4185ea4", @@ -148,22 +144,22 @@ "notDataActions": [] } ], - "roleName": "8d2110b8-83fc-5abe-fa89-de05b4185ea4", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-debf4ba019ea3a408ad34210921b3063-ee7f7140fbc59840-00", + "traceparent": "00-958254c9e72dd2489a0e4ace3d91586b-8176c2115be85a43-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "63337bc9e6b5cda4a1dc26806fe58fb6", "x-ms-return-client-request-id": "true" @@ -172,17 +168,17 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "8333", + "Content-Length": "8043", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20210128-1-4c3070d1-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "ea932436-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "0" + "x-ms-request-id": "c84fb072-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "1" }, "ResponseBody": { "value": [ @@ -236,6 +232,29 @@ }, "type": "Microsoft.Authorization/roleDefinitions" }, + { + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c", + "name": "21dbd100-6940-42c2-9190-5d6cb909625c", + "properties": { + "assignableScopes": [ + "/" + ], + "description": "", + "permissions": [ + { + "actions": [], + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/release/action" + ], + "notActions": [], + "notDataActions": [] + } + ], + "roleName": "Managed HSM Crypto Service Release", + "type": "AKVBuiltInRole" + }, + "type": "Microsoft.Authorization/roleDefinitions" + }, { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3", "name": "2c18b078-7c48-4d3a-af88-5a3a1b3f82b3", @@ -248,6 +267,8 @@ { "actions": [], "dataActions": [ + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", "Microsoft.KeyVault/managedHsm/keys/read/action", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action" ], @@ -300,10 +321,16 @@ { "actions": [], "dataActions": [ + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", "Microsoft.KeyVault/managedHsm/keys/read/action", "Microsoft.KeyVault/managedHsm/keys/write/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", + "Microsoft.KeyVault/managedHsm/keys/delete", "Microsoft.KeyVault/managedHsm/keys/create", + "Microsoft.KeyVault/managedHsm/keys/import/action", + "Microsoft.KeyVault/managedHsm/keys/release/action", + "Microsoft.KeyVault/managedHsm/keys/backup/action", + "Microsoft.KeyVault/managedHsm/keys/restore/action", "Microsoft.KeyVault/managedHsm/keys/encrypt/action", "Microsoft.KeyVault/managedHsm/keys/decrypt/action", "Microsoft.KeyVault/managedHsm/keys/wrap/action", @@ -332,23 +359,16 @@ { "actions": [], "dataActions": [ - "Microsoft.KeyVault/managedHsm/keys/read/action", - "Microsoft.KeyVault/managedHsm/keys/write/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", + "Microsoft.KeyVault/managedHsm/roleAssignments/write/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action", + "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action", + "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete", "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", - "Microsoft.KeyVault/managedHsm/keys/restore/action", - "Microsoft.KeyVault/managedHsm/keys/encrypt/action", - "Microsoft.KeyVault/managedHsm/keys/decrypt/action", - "Microsoft.KeyVault/managedHsm/keys/sign/action", - "Microsoft.KeyVault/managedHsm/keys/verify/action", - "Microsoft.KeyVault/managedHsm/keys/wrap/action", - "Microsoft.KeyVault/managedHsm/keys/unwrap/action", - "Microsoft.KeyVault/managedHsm/keys/create", - "Microsoft.KeyVault/managedHsm/keys/delete", - "Microsoft.KeyVault/managedHsm/keys/export/action", - "Microsoft.KeyVault/managedHsm/keys/import/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete" + "Microsoft.KeyVault/managedHsm/keys/export/action" ], "notActions": [], "notDataActions": [] @@ -371,30 +391,14 @@ { "actions": [], "dataActions": [ - "Microsoft.KeyVault/managedHsm/keys/read/action", - "Microsoft.KeyVault/managedHsm/keys/write/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action", - "Microsoft.KeyVault/managedHsm/keys/backup/action", - "Microsoft.KeyVault/managedHsm/keys/restore/action", "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action", "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", "Microsoft.KeyVault/managedHsm/roleAssignments/write/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action", "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action", - "Microsoft.KeyVault/managedHsm/keys/encrypt/action", - "Microsoft.KeyVault/managedHsm/keys/decrypt/action", - "Microsoft.KeyVault/managedHsm/keys/wrap/action", - "Microsoft.KeyVault/managedHsm/keys/unwrap/action", - "Microsoft.KeyVault/managedHsm/keys/sign/action", - "Microsoft.KeyVault/managedHsm/keys/verify/action", - "Microsoft.KeyVault/managedHsm/keys/create", - "Microsoft.KeyVault/managedHsm/keys/delete", - "Microsoft.KeyVault/managedHsm/keys/export/action", - "Microsoft.KeyVault/managedHsm/keys/import/action", - "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete", "Microsoft.KeyVault/managedHsm/securitydomain/download/action", + "Microsoft.KeyVault/managedHsm/securitydomain/download/read", "Microsoft.KeyVault/managedHsm/securitydomain/upload/action", "Microsoft.KeyVault/managedHsm/securitydomain/upload/read", "Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read", @@ -430,7 +434,7 @@ "notDataActions": [] } ], - "roleName": "4db79243-7d39-c2a3-4de4-4499b8e6dbf6", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -454,7 +458,7 @@ "notDataActions": [] } ], - "roleName": "54240b47-e6cd-6e36-6cc8-e7f894d36ec2", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -478,7 +482,7 @@ "notDataActions": [] } ], - "roleName": "b34c69ea-d07f-5c4d-a9ea-5999dcd6292d", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -488,7 +492,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "638089538" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinition.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinition.json index a8b6d21c75d7..7ad657c3584b 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinition.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinition.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-68256c32a6aa86498c5f9d48106dd24c-533d375cf7bdf54d-00", + "traceparent": "00-44efed692f274642883329a4ab836421-099e88de8a1c5a4a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "9fc464421ec249516913de9b1338976f", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "e489c1da-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c76a8330-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-68256c32a6aa86498c5f9d48106dd24c-533d375cf7bdf54d-00", + "traceparent": "00-44efed692f274642883329a4ab836421-099e88de8a1c5a4a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "9fc464421ec249516913de9b1338976f", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "4db79243-7d39-c2a3-4de4-4499b8e6dbf6", "description": "role4XJ2uhR0", "type": "CustomRole", "permissions": [ @@ -57,25 +56,22 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e49d0e34-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "52" + "x-ms-request-id": "c78f3392-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "54" }, "ResponseBody": { "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6", @@ -95,22 +91,22 @@ "notDataActions": [] } ], - "roleName": "4db79243-7d39-c2a3-4de4-4499b8e6dbf6", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/4db79243-7d39-c2a3-4de4-4499b8e6dbf6?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-c87c9e40914bc84ebd93c7dd60259646-8992b7a17b0cea49-00", + "traceparent": "00-00bd6030eee6884e8121c5115113e6a3-71eeaaf1227c5844-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "cfefb46529454a37db88902c569dba01", "x-ms-return-client-request-id": "true" @@ -119,16 +115,16 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20210128-1-4c3070d1-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "e4afe0fe-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c7a29e5a-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "0" }, "ResponseBody": { @@ -149,7 +145,7 @@ "notDataActions": [] } ], - "roleName": "4db79243-7d39-c2a3-4de4-4499b8e6dbf6", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -157,7 +153,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "1867460310" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinitionAsync.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinitionAsync.json index 8e5ed9025d48..e8cb9aaaf22f 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinitionAsync.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/AccessControlClientLiveTests/GetRoleDefinitionAsync.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-a5d71e9b5d4ce64ebef33e26bb381be8-5b548a3e2acf7e48-00", + "traceparent": "00-6095d15f540c4347936d1db2f3038db5-5850cc9295d25d4a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "a21e92ad2a20c77d9e1bcf90f183352f", "x-ms-return-client-request-id": "true" @@ -25,30 +25,29 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "eaf733b8-6804-11eb-8747-0242ac120008", - "x-ms-server-latency": "1" + "x-ms-request-id": "c85bca38-b20c-11eb-bb43-000d3aee668a", + "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "225", + "Content-Length": "150", "Content-Type": "application/json", - "traceparent": "00-a5d71e9b5d4ce64ebef33e26bb381be8-5b548a3e2acf7e48-00", + "traceparent": "00-6095d15f540c4347936d1db2f3038db5-5850cc9295d25d4a-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "a21e92ad2a20c77d9e1bcf90f183352f", "x-ms-return-client-request-id": "true" }, "RequestBody": { "properties": { - "roleName": "c18f143b-e3ec-975c-f73c-f275ff721600", "description": "roleOTIkB8ED", "type": "CustomRole", "permissions": [ @@ -57,24 +56,21 @@ "Microsoft.KeyVault/managedHsm/keys/backup/action" ] } - ], - "assignableScopes": [ - "/" ] } }, "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "eb0edb4e-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c87c04b0-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "56" }, "ResponseBody": { @@ -95,22 +91,22 @@ "notDataActions": [] } ], - "roleName": "c18f143b-e3ec-975c-f73c-f275ff721600", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", + "RequestUri": "https://heathshsmtestshsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/c18f143b-e3ec-975c-f73c-f275ff721600?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "traceparent": "00-1c91b2632d040547aac451ea015912d5-d0a0491d213b7541-00", + "traceparent": "00-33fec8b7d830bc4a84a6f7c95ad77064-56c7aed326c1d647-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210205.1", - "(.NET Core 4.6.29518.01; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210510.1", + "(.NET 5.0.5; Microsoft Windows 10.0.19043)" ], "x-ms-client-request-id": "87dfb9d40b5ff31fb34185256696b11e", "x-ms-return-client-request-id": "true" @@ -119,16 +115,16 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "482", + "Content-Length": "446", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20210128-1-4c3070d1-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "eb236168-6804-11eb-8747-0242ac120008", + "x-ms-request-id": "c88f5c0e-b20c-11eb-bb43-000d3aee668a", "x-ms-server-latency": "0" }, "ResponseBody": { @@ -149,7 +145,7 @@ "notDataActions": [] } ], - "roleName": "c18f143b-e3ec-975c-f73c-f275ff721600", + "roleName": "", "type": "CustomRole" }, "type": "Microsoft.Authorization/roleDefinitions" @@ -157,7 +153,7 @@ } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathshsmtestshsm.managedhsm.azure.net/", "RandomSeed": "588719400" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsync.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsync.json index 4aa17978e507..8a194b0c8b08 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsync.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsync.json @@ -1,15 +1,15 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/432959838/create?api-version=7.1", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/keys/432959838/create?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-ea49bd65302539439ad0c2fd25933999-210d795aed5b164f-00", + "traceparent": "00-98bf28f60d4f4340a8774684c654d7ed-9e8f44be768e1d42-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "4641671db75ed35cf992b826d2427710", "x-ms-return-client-request-id": "true" @@ -25,23 +25,23 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "0" + "x-ms-request-id": "b30b0c38-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "1" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/432959838/create?api-version=7.1", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/keys/432959838/create?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "13", "Content-Type": "application/json", - "traceparent": "00-ea49bd65302539439ad0c2fd25933999-210d795aed5b164f-00", + "traceparent": "00-98bf28f60d4f4340a8774684c654d7ed-9e8f44be768e1d42-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "4641671db75ed35cf992b826d2427710", "x-ms-return-client-request-id": "true" @@ -52,25 +52,25 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "334", + "Content-Length": "329", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "198" + "x-ms-request-id": "b40aadf0-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "307" }, "ResponseBody": { "attributes": { - "created": 1604025391, + "created": 1619047891, "enabled": true, "exportable": false, "recoverableDays": 90, "recoveryLevel": "Recoverable\u002BPurgeable", - "updated": 1604025391 + "updated": 1619047891 }, "key": { "key_ops": [ @@ -79,21 +79,21 @@ "decrypt", "encrypt" ], - "kid": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/432959838/b893f372645c0860af7ae6cd8c5dc8e6", + "kid": "https://heathskv1hsm.managedhsm.azure.net/keys/432959838/48cf675b50ff0bef8a623ed3939dc439", "kty": "oct-HSM" } } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-14bdbd7810f4eb4f9cf93af6221155f5-714036323e958942-00", + "traceparent": "00-4b0a311e0b1ad04cb3e796396933c670-2b33880bcfcfbc44-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "d3d5faf90aaeb2562df56cd72c7b9249", "x-ms-return-client-request-id": "true" @@ -109,48 +109,48 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "1" + "x-ms-request-id": "b44d66a4-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "100", + "Content-Length": "95", "Content-Type": "application/json", - "traceparent": "00-14bdbd7810f4eb4f9cf93af6221155f5-714036323e958942-00", + "traceparent": "00-4b0a311e0b1ad04cb3e796396933c670-2b33880bcfcfbc44-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "d3d5faf90aaeb2562df56cd72c7b9249", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "storageResourceUri": "https://heathskeyvaultprim.blob.core.windows.net/backup", + "storageResourceUri": "https://heathskv1prim.blob.core.windows.net/backup", "token": "Sanitized" }, "StatusCode": 202, "ResponseHeaders": { - "azure-asyncoperation": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/17d2ed2d6ad64f2e9fca07958d84f652/pending", + "azure-asyncoperation": "https://heathskv1hsm.managedhsm.azure.net/backup/8267be3aa4004561b37bf4266d5559b6/pending", "Cache-Control": "no-cache", "Content-Length": "216", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:31 GMT", + "Date": "Wed, 21 Apr 2021 23:31:33 GMT", "Retry-After": "0", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "927" + "x-ms-request-id": "b4607f46-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2485" }, "ResponseBody": { "status": "InProgress", @@ -160,21 +160,21 @@ "message": null, "innererror": null }, - "startTime": 1604025392, + "startTime": 1619047894, "endTime": null, - "jobId": "17d2ed2d6ad64f2e9fca07958d84f652", + "jobId": "8267be3aa4004561b37bf4266d5559b6", "azureStorageBlobContainerUri": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/17d2ed2d6ad64f2e9fca07958d84f652/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup/8267be3aa4004561b37bf4266d5559b6/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "b5f64db0a2756d936e7f4abc658219c2", "x-ms-return-client-request-id": "true" @@ -186,16 +186,16 @@ "Content-Length": "216", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:32 GMT", + "Date": "Wed, 21 Apr 2021 23:31:36 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "660" + "x-ms-request-id": "b5f3e136-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2180" }, "ResponseBody": { "azureStorageBlobContainerUri": null, @@ -205,21 +205,21 @@ "innererror": null, "message": null }, - "jobId": "17d2ed2d6ad64f2e9fca07958d84f652", - "startTime": 1604025392, + "jobId": "8267be3aa4004561b37bf4266d5559b6", + "startTime": 1619047894, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/17d2ed2d6ad64f2e9fca07958d84f652/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup/8267be3aa4004561b37bf4266d5559b6/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "0b189fc64a3b13b0118e18694a85a67d", "x-ms-return-client-request-id": "true" @@ -228,70 +228,70 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "272", + "Content-Length": "262", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:43 GMT", + "Date": "Wed, 21 Apr 2021 23:31:49 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "640" + "x-ms-request-id": "bd4af8fc-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2116" }, "ResponseBody": { - "azureStorageBlobContainerUri": "https://heathskeyvaultprim.blob.core.windows.net/backup/mhsm-heathskeyvaulthsm-2020103002363218", - "endTime": 1604025400, + "azureStorageBlobContainerUri": "https://heathskv1prim.blob.core.windows.net/backup/mhsm-heathskv1hsm-2021042123313448", + "endTime": 1619047904, "error": null, - "jobId": "17d2ed2d6ad64f2e9fca07958d84f652", - "startTime": 1604025392, + "jobId": "8267be3aa4004561b37bf4266d5559b6", + "startTime": 1619047894, "status": "Succeeded", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/432959838/restore?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/keys/432959838/restore?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "174", + "Content-Length": "164", "Content-Type": "application/json", - "traceparent": "00-fe615bc1194780478c6787dec5ecc8de-d3ed390ed568a444-00", + "traceparent": "00-949f000d75ac1d4897850b97bbc53196-b68d9134b1449f44-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "85766f00c14b579b6668642ebf994dab", "x-ms-return-client-request-id": "true" }, "RequestBody": { "sasTokenParameters": { - "storageResourceUri": "https://heathskeyvaultprim.blob.core.windows.net/backup", + "storageResourceUri": "https://heathskv1prim.blob.core.windows.net/backup", "token": "Sanitized" }, - "folder": "mhsm-heathskeyvaulthsm-2020103002363218" + "folder": "mhsm-heathskv1hsm-2021042123313448" }, "StatusCode": 202, "ResponseHeaders": { - "azure-asyncoperation": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/f7b35b0fd6734dbc89e832e266240cf1/pending", + "azure-asyncoperation": "https://heathskv1hsm.managedhsm.azure.net/restore/8e900547adaa43c08e05a1cdd96e0d20/pending", "Cache-Control": "no-cache", "Content-Length": "180", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:45 GMT", + "Date": "Wed, 21 Apr 2021 23:31:53 GMT", "Retry-After": "0", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "840" + "x-ms-request-id": "bfd29bde-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2408" }, "ResponseBody": { "endTime": null, @@ -300,21 +300,21 @@ "innererror": null, "message": null }, - "jobId": "f7b35b0fd6734dbc89e832e266240cf1", - "startTime": 1604025406, + "jobId": "8e900547adaa43c08e05a1cdd96e0d20", + "startTime": 1619047913, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/f7b35b0fd6734dbc89e832e266240cf1/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/8e900547adaa43c08e05a1cdd96e0d20/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "8d10aadb8763650d9de2a4e7892a22e9", "x-ms-return-client-request-id": "true" @@ -326,16 +326,16 @@ "Content-Length": "180", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:47 GMT", + "Date": "Wed, 21 Apr 2021 23:31:55 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "669" + "x-ms-request-id": "c15763e0-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2174" }, "ResponseBody": { "endTime": null, @@ -344,21 +344,21 @@ "innererror": null, "message": null }, - "jobId": "f7b35b0fd6734dbc89e832e266240cf1", - "startTime": 1604025406, + "jobId": "8e900547adaa43c08e05a1cdd96e0d20", + "startTime": 1619047913, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/f7b35b0fd6734dbc89e832e266240cf1/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/8e900547adaa43c08e05a1cdd96e0d20/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "f6bbccd8940b047604c0a4d3e6815377", "x-ms-return-client-request-id": "true" @@ -370,16 +370,16 @@ "Content-Length": "180", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:36:56 GMT", + "Date": "Wed, 21 Apr 2021 23:32:08 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "634" + "x-ms-request-id": "c8aa70d8-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2213" }, "ResponseBody": { "endTime": null, @@ -388,21 +388,21 @@ "innererror": null, "message": null }, - "jobId": "f7b35b0fd6734dbc89e832e266240cf1", - "startTime": 1604025406, + "jobId": "8e900547adaa43c08e05a1cdd96e0d20", + "startTime": 1619047913, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/f7b35b0fd6734dbc89e832e266240cf1/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/8e900547adaa43c08e05a1cdd96e0d20/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "a08d6d40197479196110e8681db3cd3c", "x-ms-return-client-request-id": "true" @@ -414,31 +414,31 @@ "Content-Length": "233", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:37:07 GMT", + "Date": "Wed, 21 Apr 2021 23:32:20 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "9854e428-1a09-11eb-b905-0242ac120005", - "x-ms-server-latency": "683" + "x-ms-request-id": "cffe247e-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2179" }, "ResponseBody": { - "endTime": 1604025422, + "endTime": 1619047930, "error": null, - "jobId": "f7b35b0fd6734dbc89e832e266240cf1", - "startTime": 1604025406, + "jobId": "8e900547adaa43c08e05a1cdd96e0d20", + "startTime": 1619047913, "status": "Succeeded", "statusDetails": "Number of successful key versions restored: 0, Number of key versions could not overwrite: 2" } } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathskv1hsm.managedhsm.azure.net/", "BLOB_PRIMARY_STORAGE_ACCOUNT_KEY": "Sanitized", - "BLOB_STORAGE_ACCOUNT_NAME": "heathskeyvaultprim", + "BLOB_STORAGE_ACCOUNT_NAME": "heathskv1prim", "RandomSeed": "396332038" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsyncAsync.json b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsyncAsync.json index 01584f4f4869..6ecc4dd7d536 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsyncAsync.json +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/SessionRecords/Sample2_SelectiveRestore/BackupAndRestoreSampleAsyncAsync.json @@ -1,17 +1,17 @@ { "Entries": [ { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/1405127309/create?api-version=7.1", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/keys/1405127309/create?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "13", "Content-Type": "application/json", - "traceparent": "00-4b9f7604334041479277eae641fdbc24-946911a70a37aa47-00", + "traceparent": "00-f8adf3627b669f4581b9102f2096758d-54d3f321c87edb49-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Keys/4.2.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "bfd16ed1ac4cd1bc58749ab3fc833401", "x-ms-return-client-request-id": "true" @@ -22,25 +22,25 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "335", + "Content-Length": "330", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "197" + "x-ms-request-id": "d34ecc5a-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "183" }, "ResponseBody": { "attributes": { - "created": 1604024978, + "created": 1619047944, "enabled": true, "exportable": false, "recoverableDays": 90, "recoveryLevel": "Recoverable\u002BPurgeable", - "updated": 1604024978 + "updated": 1619047944 }, "key": { "key_ops": [ @@ -49,21 +49,21 @@ "decrypt", "encrypt" ], - "kid": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/1405127309/c28106cf65c245ba92369bafea3bf346", + "kid": "https://heathskv1hsm.managedhsm.azure.net/keys/1405127309/21eb2a8c7e810af508cc7d10b2f8b0cc", "kty": "oct-HSM" } } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Content-Type": "application/json", - "traceparent": "00-e39306f30e58974fa9b95ddf0f79621d-9ed189798ec8bc42-00", + "traceparent": "00-2bf753a79d621542ab5bc380920381bd-50dac38d6597fc4d-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "a31b12c5087751e6b491e811244f78e0", "x-ms-return-client-request-id": "true" @@ -79,48 +79,48 @@ "WWW-Authenticate": "Bearer authorization=\u0022https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://managedhsm.azure.net\u0022", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", + "x-ms-request-id": "d37690f0-a2f9-11eb-9d24-000d3aee67b6", "x-ms-server-latency": "0" }, "ResponseBody": [] }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup?api-version=7.2", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "100", + "Content-Length": "95", "Content-Type": "application/json", - "traceparent": "00-e39306f30e58974fa9b95ddf0f79621d-9ed189798ec8bc42-00", + "traceparent": "00-2bf753a79d621542ab5bc380920381bd-50dac38d6597fc4d-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "a31b12c5087751e6b491e811244f78e0", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "storageResourceUri": "https://heathskeyvaultprim.blob.core.windows.net/backup", + "storageResourceUri": "https://heathskv1prim.blob.core.windows.net/backup", "token": "Sanitized" }, "StatusCode": 202, "ResponseHeaders": { - "azure-asyncoperation": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/8b46d2b31fdc494182049928e387f822/pending", + "azure-asyncoperation": "https://heathskv1hsm.managedhsm.azure.net/backup/77f8d1fc55324fe5a96e34890956734c/pending", "Cache-Control": "no-cache", "Content-Length": "216", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:29:39 GMT", + "Date": "Wed, 21 Apr 2021 23:32:25 GMT", "Retry-After": "0", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "816" + "x-ms-request-id": "d383844a-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2370" }, "ResponseBody": { "status": "InProgress", @@ -130,21 +130,21 @@ "message": null, "innererror": null }, - "startTime": 1604024979, + "startTime": 1619047946, "endTime": null, - "jobId": "8b46d2b31fdc494182049928e387f822", + "jobId": "77f8d1fc55324fe5a96e34890956734c", "azureStorageBlobContainerUri": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/8b46d2b31fdc494182049928e387f822/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup/77f8d1fc55324fe5a96e34890956734c/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "a89d4c3801ce1674df9dc41018b48107", "x-ms-return-client-request-id": "true" @@ -156,16 +156,16 @@ "Content-Length": "216", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:29:40 GMT", + "Date": "Wed, 21 Apr 2021 23:32:28 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "649" + "x-ms-request-id": "d4f7f162-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2242" }, "ResponseBody": { "azureStorageBlobContainerUri": null, @@ -175,21 +175,21 @@ "innererror": null, "message": null }, - "jobId": "8b46d2b31fdc494182049928e387f822", - "startTime": 1604024979, + "jobId": "77f8d1fc55324fe5a96e34890956734c", + "startTime": 1619047946, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/backup/8b46d2b31fdc494182049928e387f822/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/backup/77f8d1fc55324fe5a96e34890956734c/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "4d23dbdc674ac815887f0abbc3aaac08", "x-ms-return-client-request-id": "true" @@ -198,70 +198,70 @@ "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "272", + "Content-Length": "262", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:29:51 GMT", + "Date": "Wed, 21 Apr 2021 23:32:40 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "2232" + "x-ms-request-id": "dc505e2c-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2230" }, "ResponseBody": { - "azureStorageBlobContainerUri": "https://heathskeyvaultprim.blob.core.windows.net/backup/mhsm-heathskeyvaulthsm-2020103002293949", - "endTime": 1604024988, + "azureStorageBlobContainerUri": "https://heathskv1prim.blob.core.windows.net/backup/mhsm-heathskv1hsm-2021042123322663", + "endTime": 1619047956, "error": null, - "jobId": "8b46d2b31fdc494182049928e387f822", - "startTime": 1604024979, + "jobId": "77f8d1fc55324fe5a96e34890956734c", + "startTime": 1619047946, "status": "Succeeded", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/keys/1405127309/restore?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/keys/1405127309/restore?api-version=7.2", "RequestMethod": "PUT", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "174", + "Content-Length": "164", "Content-Type": "application/json", - "traceparent": "00-13ce93027b5f054aa87fa013ae3ea4c8-02977294effb474e-00", + "traceparent": "00-2ace566f433e144dafa2534e38863bc4-c7a7510bc8c3c24e-00", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "b07bb9fc8ce6c3329d05c3da43d53800", "x-ms-return-client-request-id": "true" }, "RequestBody": { "sasTokenParameters": { - "storageResourceUri": "https://heathskeyvaultprim.blob.core.windows.net/backup", + "storageResourceUri": "https://heathskv1prim.blob.core.windows.net/backup", "token": "Sanitized" }, - "folder": "mhsm-heathskeyvaulthsm-2020103002293949" + "folder": "mhsm-heathskv1hsm-2021042123322663" }, "StatusCode": 202, "ResponseHeaders": { - "azure-asyncoperation": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/4369c49da1da4811a0451167c06103c0/pending", + "azure-asyncoperation": "https://heathskv1hsm.managedhsm.azure.net/restore/857b01b1bf584b21858d4ce1062f2523/pending", "Cache-Control": "no-cache", "Content-Length": "180", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:29:56 GMT", + "Date": "Wed, 21 Apr 2021 23:32:45 GMT", "Retry-After": "0", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "2701" + "x-ms-request-id": "dee61686-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2341" }, "ResponseBody": { "endTime": null, @@ -270,21 +270,21 @@ "innererror": null, "message": null }, - "jobId": "4369c49da1da4811a0451167c06103c0", - "startTime": 1604024996, + "jobId": "857b01b1bf584b21858d4ce1062f2523", + "startTime": 1619047965, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/4369c49da1da4811a0451167c06103c0/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/857b01b1bf584b21858d4ce1062f2523/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "4935e10f2a2bd09536d41f4ff7b95335", "x-ms-return-client-request-id": "true" @@ -296,16 +296,16 @@ "Content-Length": "180", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:29:56 GMT", + "Date": "Wed, 21 Apr 2021 23:32:47 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "679" + "x-ms-request-id": "e056c6f0-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2223" }, "ResponseBody": { "endTime": null, @@ -314,57 +314,101 @@ "innererror": null, "message": null }, - "jobId": "4369c49da1da4811a0451167c06103c0", - "startTime": 1604024996, + "jobId": "857b01b1bf584b21858d4ce1062f2523", + "startTime": 1619047965, "status": "InProgress", "statusDetails": null } }, { - "RequestUri": "https://heathskeyvaulthsm.managedhsm.azure.net/restore/4369c49da1da4811a0451167c06103c0/pending?api-version=7.2-preview", + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/857b01b1bf584b21858d4ce1062f2523/pending?api-version=7.2", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20201029.1", - "(.NET Core 4.6.29321.03; Microsoft Windows 10.0.19042 )" + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" ], "x-ms-client-request-id": "5f13bbf0d1384f21a960af45a43a85b2", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "180", + "Content-Security-Policy": "default-src \u0027self\u0027", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 21 Apr 2021 23:33:00 GMT", + "Server": "Kestrel", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", + "x-ms-keyvault-region": "southcentralus", + "x-ms-request-id": "e7acd156-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2147" + }, + "ResponseBody": { + "endTime": null, + "error": { + "code": null, + "innererror": null, + "message": null + }, + "jobId": "857b01b1bf584b21858d4ce1062f2523", + "startTime": 1619047965, + "status": "InProgress", + "statusDetails": null + } + }, + { + "RequestUri": "https://heathskv1hsm.managedhsm.azure.net/restore/857b01b1bf584b21858d4ce1062f2523/pending?api-version=7.2", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Security.KeyVault.Administration/4.0.0-alpha.20210421.1", + "(.NET Core 4.6.29916.01; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e2ab0a466375d1dd23ab79116ce3cce4", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", "Content-Length": "233", "Content-Security-Policy": "default-src \u0027self\u0027", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 30 Oct 2020 02:30:08 GMT", + "Date": "Wed, 21 Apr 2021 23:33:13 GMT", "Server": "Kestrel", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "SAMEORIGIN", - "x-ms-build-version": "1.0.20200917-2-1617fc9c-develop", - "x-ms-keyvault-network-info": "addr=67.171.12.239", + "x-ms-build-version": "1.0.20210407-3-27236ed1-develop", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=67.171.12.239;act_addr_fam=Ipv4;", "x-ms-keyvault-region": "southcentralus", - "x-ms-request-id": "956668d6-1a09-11eb-9867-0242ac120008", - "x-ms-server-latency": "672" + "x-ms-request-id": "eef5abae-a2f9-11eb-9d24-000d3aee67b6", + "x-ms-server-latency": "2839" }, "ResponseBody": { - "endTime": 1604025007, + "endTime": 1619047982, "error": null, - "jobId": "4369c49da1da4811a0451167c06103c0", - "startTime": 1604024996, + "jobId": "857b01b1bf584b21858d4ce1062f2523", + "startTime": 1619047965, "status": "Succeeded", "statusDetails": "Number of successful key versions restored: 0, Number of key versions could not overwrite: 2" } } ], "Variables": { - "AZURE_MANAGEDHSM_URL": "https://heathskeyvaulthsm.managedhsm.azure.net/", + "AZURE_MANAGEDHSM_URL": "https://heathskv1hsm.managedhsm.azure.net/", "BLOB_PRIMARY_STORAGE_ACCOUNT_KEY": "Sanitized", - "BLOB_STORAGE_ACCOUNT_NAME": "heathskeyvaultprim", + "BLOB_STORAGE_ACCOUNT_NAME": "heathskv1prim", "RandomSeed": "2036776031" } } \ No newline at end of file diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample1_BackupHelloWorld.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample1_BackupHelloWorld.cs index 0efcd0490541..7ffc29a6f7c1 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample1_BackupHelloWorld.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample1_BackupHelloWorld.cs @@ -41,10 +41,10 @@ public async Task BackupAndRestoreSampleAsync() }; // Start the backup. - BackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); + KeyVaultBackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); // Wait for completion of the BackupOperation. - Response backupResult = await backupOperation.WaitForCompletionAsync(); + Response backupResult = await backupOperation.WaitForCompletionAsync(); // Get the Uri for the location of your backup blob. Uri folderUri = backupResult.Value.FolderUri; @@ -57,10 +57,10 @@ public async Task BackupAndRestoreSampleAsync() #region Snippet:HelloFullRestoreAsync // Start the restore using the backupBlobUri returned from a previous BackupOperation. - RestoreOperation restoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); + KeyVaultRestoreOperation restoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); // Wait for completion of the RestoreOperation. - Response restoreResult = await restoreOperation.WaitForCompletionAsync(); + Response restoreResult = await restoreOperation.WaitForCompletionAsync(); #endregion Assert.That(restoreOperation.HasValue, Is.True); @@ -86,7 +86,7 @@ public async Task BackupAndRestoreSampleSync() }; // Start the backup. - BackupOperation backupOperation = Client.StartBackup(builder.Uri, sasToken); + KeyVaultBackupOperation backupOperation = Client.StartBackup(builder.Uri, sasToken); // Wait for completion of the BackupOperation. while (!backupOperation.HasCompleted) @@ -110,7 +110,7 @@ public async Task BackupAndRestoreSampleSync() #region Snippet:HelloFullRestoreSync // Start the restore using the backupBlobUri returned from a previous BackupOperation. - RestoreOperation restoreOperation = Client.StartRestore(folderUri, sasToken); + KeyVaultRestoreOperation restoreOperation = Client.StartRestore(folderUri, sasToken); // Wait for completion of the RestoreOperation. while (!restoreOperation.HasCompleted) diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample2_SelectiveRestore.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample2_SelectiveRestore.cs index d44941b08f5c..51e887e9cc9d 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample2_SelectiveRestore.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample2_SelectiveRestore.cs @@ -16,7 +16,6 @@ public Sample2_SelectiveRestore(bool isAsync) { } [RecordedTest] - [Ignore("Recording is out of date; requires service attention: https://github.com/Azure/azure-sdk-for-net/issues/18501")] public async Task BackupAndRestoreSampleAsync() { var blobStorageUrl = TestEnvironment.StorageUri; @@ -36,10 +35,10 @@ public async Task BackupAndRestoreSampleAsync() RegisterKeyForCleanup(keyName); // Start the backup. - BackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); + KeyVaultBackupOperation backupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); // Wait for completion of the BackupOperation. - Response backupResult = await backupOperation.WaitForCompletionAsync(); + Response backupResult = await backupOperation.WaitForCompletionAsync(); await WaitForOperationAsync(); @@ -55,10 +54,10 @@ public async Task BackupAndRestoreSampleAsync() #endif // Start the restore for a specific key that was previously backed up using the backupBlobUri returned from a previous BackupOperation. - SelectiveKeyRestoreOperation restoreOperation = await Client.StartSelectiveRestoreAsync(keyName, folderUri, sasToken); + KeyVaultSelectiveKeyRestoreOperation restoreOperation = await Client.StartSelectiveRestoreAsync(keyName, folderUri, sasToken); // Wait for completion of the RestoreOperation. - SelectiveKeyRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); + KeyVaultSelectiveKeyRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); #endregion Assert.That(restoreOperation.HasValue, Is.True); diff --git a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample3_BackRestoreResume.cs b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample3_BackRestoreResume.cs index daa4d1948a0f..e52f2b9edb46 100644 --- a/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample3_BackRestoreResume.cs +++ b/sdk/keyvault/Azure.Security.KeyVault.Administration/tests/samples/Sample3_BackRestoreResume.cs @@ -28,7 +28,7 @@ public async Task ResumeBackupRestore() }; // Start the backup. - BackupOperation originalBackupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); + KeyVaultBackupOperation originalBackupOperation = await Client.StartBackupAsync(builder.Uri, sasToken); var backupOperationId = originalBackupOperation.Id; #region Snippet:ResumeBackupAsync @@ -38,13 +38,13 @@ public async Task ResumeBackupRestore() #endif // Construct a BackupOperation using a KeyVaultBackupClient and the Id from a previously started operation. - BackupOperation backupOperation = new BackupOperation(client, backupOperationId); + KeyVaultBackupOperation backupOperation = new KeyVaultBackupOperation(client, backupOperationId); #if !SNIPPET backupOperation._retryAfterSeconds = (int)PollingInterval.TotalSeconds; #endif // Wait for completion of the BackupOperation. - Response backupResult = await backupOperation.WaitForCompletionAsync(); + Response backupResult = await backupOperation.WaitForCompletionAsync(); // Get the Uri for the location of you backup blob. Uri folderUri = backupResult.Value.FolderUri; @@ -56,7 +56,7 @@ public async Task ResumeBackupRestore() await WaitForOperationAsync(); // Start the restore using the backupBlobUri returned from a previous BackupOperation. - RestoreOperation originalRestoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); + KeyVaultRestoreOperation originalRestoreOperation = await Client.StartRestoreAsync(folderUri, sasToken); var restoreOperationId = originalRestoreOperation.Id; #region Snippet:ResumeRestoreAsync @@ -66,13 +66,13 @@ public async Task ResumeBackupRestore() #endif // Construct a RestoreOperation using a KeyVaultBackupClient and the Id from a previously started operation. - RestoreOperation restoreOperation = new RestoreOperation(client, restoreOperationId); + KeyVaultRestoreOperation restoreOperation = new KeyVaultRestoreOperation(client, restoreOperationId); #if !SNIPPET restoreOperation._operationInternal._retryAfterSeconds = (int)PollingInterval.TotalSeconds; #endif // Wait for completion of the RestoreOperation. - RestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); + KeyVaultRestoreResult restoreResult = await restoreOperation.WaitForCompletionAsync(); #endregion Assert.That(restoreOperation.HasValue, Is.True);