diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml index 180f694a95111..2dc315cbba413 100755 --- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml +++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml @@ -294,10 +294,6 @@ the main ServiceBusClientBuilder. --> - - - - diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClient.java b/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClient.java index 21d77ca75b7a9..d8f5e8eb2d1f4 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClient.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClient.java @@ -384,10 +384,10 @@ Mono> setRoleDefinitionWithResponse(SetRoleDefi options.getRoleDefinitionName(), parameters, context.addData(AZ_TRACING_NAMESPACE_KEY, KEYVAULT_TRACING_NAMESPACE_VALUE)) .doOnRequest(ignored -> - logger.verbose("Creating role assignment - {}", options.getRoleDefinitionName())) - .doOnSuccess(response -> logger.verbose("Created role assignment - {}", response.getValue().getName())) + logger.verbose("Creating role definition - {}", options.getRoleDefinitionName())) + .doOnSuccess(response -> logger.verbose("Created role definition - {}", response.getValue().getName())) .doOnError(error -> - logger.warning("Failed to create role assignment - {}", options.getRoleDefinitionName(), error)) + logger.warning("Failed to create role definition - {}", options.getRoleDefinitionName(), error)) .onErrorMap(KeyVaultAdministrationUtils::mapThrowableToKeyVaultAdministrationException) .map(KeyVaultAccessControlAsyncClient::transformRoleDefinitionResponse); } catch (RuntimeException e) { @@ -471,11 +471,11 @@ Mono> getRoleDefinitionWithResponse(KeyVaultRol return clientImpl.getRoleDefinitions() .getWithResponseAsync(vaultUrl, roleScope.toString(), roleDefinitionName, context.addData(AZ_TRACING_NAMESPACE_KEY, KEYVAULT_TRACING_NAMESPACE_VALUE)) - .doOnRequest(ignored -> logger.verbose("Retrieving role assignment - {}", roleDefinitionName)) + .doOnRequest(ignored -> logger.verbose("Retrieving role definition - {}", roleDefinitionName)) .doOnSuccess(response -> - logger.verbose("Retrieved role assignment - {}", response.getValue().getName())) + logger.verbose("Retrieved role definition - {}", response.getValue().getName())) .doOnError(error -> - logger.warning("Failed to retrieved role assignment - {}", roleDefinitionName, error)) + logger.warning("Failed to retrieved role definition - {}", roleDefinitionName, error)) .onErrorMap(KeyVaultAdministrationUtils::mapThrowableToKeyVaultAdministrationException) .map(KeyVaultAccessControlAsyncClient::transformRoleDefinitionResponse); } catch (RuntimeException e) { @@ -555,9 +555,9 @@ Mono> deleteRoleDefinitionWithResponse(KeyVaultRoleScope roleScop return clientImpl.getRoleDefinitions() .deleteWithResponseAsync(vaultUrl, roleScope.toString(), roleDefinitionName, context.addData(AZ_TRACING_NAMESPACE_KEY, KEYVAULT_TRACING_NAMESPACE_VALUE)) - .doOnRequest(ignored -> logger.verbose("Deleting role assignment - {}", roleDefinitionName)) - .doOnSuccess(response -> logger.verbose("Deleted role assignment - {}", response.getValue().getName())) - .doOnError(error -> logger.warning("Failed to delete role assignment - {}", roleDefinitionName, error)) + .doOnRequest(ignored -> logger.verbose("Deleting role definition - {}", roleDefinitionName)) + .doOnSuccess(response -> logger.verbose("Deleted role definition - {}", response.getValue().getName())) + .doOnError(error -> logger.warning("Failed to delete role definition - {}", roleDefinitionName, error)) .onErrorMap(KeyVaultAdministrationUtils::mapThrowableToKeyVaultAdministrationException) .map(response -> (Response) new SimpleResponse(response, null)) .onErrorResume(KeyVaultAdministrationException.class, e -> @@ -897,7 +897,7 @@ Mono> getRoleAssignmentWithResponse(KeyVaultRol .doOnSuccess(response -> logger.verbose("Retrieved role assignment - {}", response.getValue().getName())) .doOnError(error -> - logger.warning("Failed to retrieved role assignment - {}", roleAssignmentName, error)) + logger.warning("Failed to retrieve role assignment - {}", roleAssignmentName, error)) .onErrorMap(KeyVaultAdministrationUtils::mapThrowableToKeyVaultAdministrationException) .map(KeyVaultAccessControlAsyncClient::transformRoleAssignmentResponse); } catch (RuntimeException e) { diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/KeyVaultCredentialPolicy.java b/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/KeyVaultCredentialPolicy.java index 947721a0cdc4a..25140f45b35d0 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/KeyVaultCredentialPolicy.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/KeyVaultCredentialPolicy.java @@ -1,125 +1,186 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. - package com.azure.security.keyvault.administration.implementation; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; import com.azure.core.http.HttpPipelineCallContext; -import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpRequest; import com.azure.core.http.HttpResponse; -import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.util.CoreUtils; -import com.azure.core.util.logging.ClientLogger; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** - * A policy that authenticates requests with Azure Key Vault service. The content added by this policy is leveraged - * in {@link TokenCredential} to get and set the correct "Authorization" header value. + * A policy that authenticates requests with the Azure Key Vault service. The content added by this policy is + * leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. * * @see TokenCredential */ -public final class KeyVaultCredentialPolicy implements HttpPipelinePolicy { - private final ClientLogger logger = new ClientLogger(KeyVaultCredentialPolicy.class); - private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; +public class KeyVaultCredentialPolicy extends BearerTokenAuthenticationPolicy { private static final String BEARER_TOKEN_PREFIX = "Bearer "; - private static final String AUTHORIZATION = "Authorization"; - private final ScopeTokenCache cache; + private static final String CONTENT_LENGTH_HEADER = "Content-Length"; + private static final String KEY_VAULT_STASHED_CONTENT_KEY = "KeyVaultCredentialPolicyStashedBody"; + private static final String KEY_VAULT_STASHED_CONTENT_LENGTH_KEY = "KeyVaultCredentialPolicyStashedContentLength"; + private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; + private static final ConcurrentMap SCOPE_CACHE = new ConcurrentHashMap<>(); + private String scope; /** - * Creates KeyVaultCredentialPolicy. + * Creates a {@link KeyVaultCredentialPolicy}. * - * @param credential the token credential to authenticate the request + * @param credential The token credential to authenticate the request. */ public KeyVaultCredentialPolicy(TokenCredential credential) { - Objects.requireNonNull(credential); - - this.cache = new ScopeTokenCache(credential::getToken); - } - - /** - * Adds the required header to authenticate a request to Azure Key Vault service. - * - * @param context The request {@link HttpPipelineCallContext context}. - * @param next The next HTTP pipeline policy to process the {@link HttpPipelineCallContext context's} request - * after this policy completes. - * @return A {@link Mono} representing the {@link HttpResponse HTTP response} that will arrive asynchronously. - */ - @Override - public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { - if (!context.getHttpRequest().getUrl().getProtocol().startsWith("https")) { - return Mono.error(new RuntimeException("Token credentials require a URL using the HTTPS protocol scheme")); - } - - return next.clone().process() - .doOnNext(httpResponse -> { - // KV follows challenge based auth. Currently every service - // call hit the endpoint for challenge and then resend the - // request with token. The challenge response body is not - // consumed, not draining/closing the body will result in leak. - // Ref: https://github.com/Azure/azure-sdk-for-java/issues/7934 - // https://github.com/Azure/azure-sdk-for-java/issues/10467 - try { - httpResponse.getBody().subscribe().dispose(); - } catch (RuntimeException ignored) { - logger.logExceptionAsWarning(ignored); - } - // The ReactorNettyHttpResponse::close() should be sufficient - // and should take care similar body disposal but looks like that - // is not happening, need to re-visit the close() method. - }) - .map(res -> res.getHeaderValue(WWW_AUTHENTICATE)) - .map(header -> extractChallenge(header, BEARER_TOKEN_PREFIX)) - .flatMap(map -> { - cache.setTokenRequest(new TokenRequestContext().addScopes(map.get("resource") + "/.default")); - return cache.getToken(); - }) - .flatMap(token -> { - context.getHttpRequest().setHeader(AUTHORIZATION, BEARER_TOKEN_PREFIX + token.getToken()); - return next.process(); - }); + super(credential); } /** - * Extracts the challenge off the authentication header. + * Extracts attributes off the bearer challenge in the authentication header. * - * @param authenticateHeader The authentication header containing all the challenges. + * @param authenticateHeader The authentication header containing the challenge. * @param authChallengePrefix The authentication challenge name. - * @return A challenge map. + * + * @return A challenge attributes map. */ - private static Map extractChallenge(String authenticateHeader, String authChallengePrefix) { - if (!isValidChallenge(authenticateHeader, authChallengePrefix)) { - return null; + private static Map extractChallengeAttributes(String authenticateHeader, + String authChallengePrefix) { + if (!isBearerChallenge(authenticateHeader, authChallengePrefix)) { + return Collections.emptyMap(); } authenticateHeader = authenticateHeader.toLowerCase(Locale.ROOT).replace(authChallengePrefix.toLowerCase(Locale.ROOT), ""); - String[] challenges = authenticateHeader.split(", "); - Map challengeMap = new HashMap<>(); + String[] attributes = authenticateHeader.split(", "); + Map attributeMap = new HashMap<>(); - for (String pair : challenges) { + for (String pair : attributes) { String[] keyValue = pair.split("="); - challengeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); + + attributeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); } - return challengeMap; + return attributeMap; } /** * Verifies whether a challenge is bearer or not. * - * @param authenticateHeader The authentication header containing all the challenges. + * @param authenticateHeader The authentication header containing all the challenges. * @param authChallengePrefix The authentication challenge name. - * @return A boolean indicating tha challenge is valid or not. + * @return A boolean indicating if the challenge is a bearer challenge or not. */ - private static boolean isValidChallenge(String authenticateHeader, String authChallengePrefix) { + private static boolean isBearerChallenge(String authenticateHeader, String authChallengePrefix) { return (!CoreUtils.isNullOrEmpty(authenticateHeader) && authenticateHeader.toLowerCase(Locale.ROOT).startsWith(authChallengePrefix.toLowerCase(Locale.ROOT))); } + + @Override + public Mono authorizeRequest(HttpPipelineCallContext context) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + + // If this policy doesn't have an authorityScope cached try to get it from the static challenge cache. + if (this.scope == null) { + String authority = getRequestAuthority(request); + this.scope = SCOPE_CACHE.get(authority); + } + + if (this.scope != null) { + // We fetched the scope from the cache, but we have not initialized the scopes in the base yet. + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext); + } + + // The body is removed from the initial request because Key Vault supports other authentication schemes which + // also protect the body of the request. As a result, before we know the auth scheme we need to avoid sending + // an unprotected body to Key Vault. We don't currently support this enhanced auth scheme in the SDK but we + // still don't want to send any unprotected data to vaults which require it. + + // Do not overwrite previous contents if retrying after initial request failed (e.g. timeout). + if (!context.getData(KEY_VAULT_STASHED_CONTENT_KEY).isPresent()) { + if (request.getBody() != null) { + context.setData(KEY_VAULT_STASHED_CONTENT_KEY, request.getBody()); + context.setData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY, + request.getHeaders().getValue(CONTENT_LENGTH_HEADER)); + request.setHeader(CONTENT_LENGTH_HEADER, "0"); + request.setBody((Flux) null); + } + } + + return Mono.empty(); + }); + } + + @SuppressWarnings("unchecked") + @Override + public Mono authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + Optional contentOptional = context.getData(KEY_VAULT_STASHED_CONTENT_KEY); + Optional contentLengthOptional = context.getData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY); + + if (request.getBody() == null && contentOptional.isPresent() && contentLengthOptional.isPresent()) { + request.setBody((Flux) contentOptional.get()); + request.setHeader(CONTENT_LENGTH_HEADER, (String) contentLengthOptional.get()); + } + + String authority = getRequestAuthority(request); + Map challengeAttributes = + extractChallengeAttributes(response.getHeaderValue(WWW_AUTHENTICATE), BEARER_TOKEN_PREFIX); + String scope = challengeAttributes.get("resource"); + + if (scope != null) { + scope = scope + "/.default"; + } else { + scope = challengeAttributes.get("scope"); + } + + if (scope == null) { + this.scope = SCOPE_CACHE.get(authority); + + if (this.scope == null) { + return Mono.just(false); + } + } else { + this.scope = scope; + + SCOPE_CACHE.put(authority, this.scope); + } + + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext) + .then(Mono.just(true)); + }); + } + + static void clearCache() { + SCOPE_CACHE.clear(); + } + + private static String getRequestAuthority(HttpRequest request) { + URL url = request.getUrl(); + String authority = url.getAuthority(); + int port = url.getPort(); + + if (!authority.contains(":") && port > 0) { + authority = authority + ":" + port; + } + + return authority; + } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/ScopeTokenCache.java b/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/ScopeTokenCache.java deleted file mode 100644 index c7f1aaba7b6da..0000000000000 --- a/sdk/keyvault/azure-security-keyvault-administration/src/main/java/com/azure/security/keyvault/administration/implementation/ScopeTokenCache.java +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.security.keyvault.administration.implementation; - -import com.azure.core.credential.AccessToken; -import com.azure.core.credential.TokenRequestContext; -import reactor.core.publisher.FluxSink; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Function; - -/** - * A token cache that supports caching a token and refreshing it. - */ -class ScopeTokenCache { - private final AtomicBoolean wip; - private AccessToken cache; - private final ReplayProcessor emitterProcessor = ReplayProcessor.create(1); - private final FluxSink sink = emitterProcessor.sink(FluxSink.OverflowStrategy.BUFFER); - private final Function> getNew; - private TokenRequestContext request; - - - /** - * Creates an instance of RefreshableTokenCredential with default scheme "Bearer". - * - * @param getNew a method to get a new token - */ - ScopeTokenCache(Function> getNew) { - this.wip = new AtomicBoolean(false); - this.getNew = getNew; - } - - public void setTokenRequest(TokenRequestContext request) { - this.request = request; - } - - /** - * Asynchronously get a token from either the cache or replenish the cache with a new token. - * @return a Publisher that emits an AccessToken - */ - public Mono getToken() { - if (cache != null && !cache.isExpired()) { - return Mono.just(cache); - } - return Mono.defer(() -> { - if (!wip.getAndSet(true)) { - return getNew.apply(request).doOnNext(ac -> cache = ac) - .doOnNext(sink::next) - .doOnError(sink::error) - .doOnTerminate(() -> wip.set(false)); - } else { - return emitterProcessor.next(); - } - }); - } -} diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClientTest.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClientTest.java index f09fa9df676bd..08359dc33fcee 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlAsyncClientTest.java @@ -15,8 +15,9 @@ import reactor.core.publisher.Mono; import reactor.test.StepVerifier; +import java.time.Duration; + import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -39,8 +40,8 @@ public void listRoleDefinitions(HttpClient httpClient) { assertNotNull(roleDefinition.getRoleName()); assertNotNull(roleDefinition.getDescription()); assertNotNull(roleDefinition.getRoleType()); - assertFalse(roleDefinition.getAssignableScopes().isEmpty()); - assertFalse(roleDefinition.getPermissions().isEmpty()); + assertNotNull(roleDefinition.getAssignableScopes()); + assertNotNull(roleDefinition.getPermissions()); return true; }) @@ -59,7 +60,8 @@ public void setRoleDefinition(HttpClient httpClient) { try { // Create a role definition. - StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName)) + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO)) .assertNext(roleDefinition -> { assertNotNull(roleDefinition.getId()); assertEquals(roleDefinitionName, roleDefinition.getName()); @@ -73,11 +75,7 @@ public void setRoleDefinition(HttpClient httpClient) { .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, null); } } } @@ -94,8 +92,9 @@ public void getRoleDefinition(HttpClient httpClient) { try { // Create a role definition to retrieve, then get the role assignment. StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) - .flatMap(createdRoleDefinition -> Mono.zip(Mono.just(createdRoleDefinition), - asyncClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, createdRoleDefinition.getName())))) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(createdRoleDefinition -> Mono.zip(Mono.just(createdRoleDefinition), + asyncClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, createdRoleDefinition.getName())))) .assertNext(tuple -> { KeyVaultRoleDefinition createdRoleDefinition = tuple.getT1(); KeyVaultRoleDefinition retrievedRoleDefinition = tuple.getT2(); @@ -107,11 +106,7 @@ public void getRoleDefinition(HttpClient httpClient) { .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, null); } } } @@ -125,24 +120,15 @@ public void deleteRoleDefinition(HttpClient httpClient) { asyncClient = getClientBuilder(httpClient, false).buildAsyncClient(); String roleDefinitionName = testResourceNamer.randomUuid(); - try { - // Create a role definition to delete, then delete the role definition. - StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + // Create a role definition to delete, then delete the role definition. + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) .flatMap(createdRoleDefinition -> asyncClient.deleteRoleDefinitionWithResponse(KeyVaultRoleScope.GLOBAL, createdRoleDefinition.getName()))) - .assertNext(deleteResponse -> assertEquals(200, deleteResponse.getStatusCode())) - .expectComplete() - .verify(); - } finally { - if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinitionName).block(); - } - } + .assertNext(deleteResponse -> assertEquals(200, deleteResponse.getStatusCode())) + .expectComplete() + .verify(); } /** @@ -196,16 +182,17 @@ public void listRoleAssignments(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void createRoleAssignment(HttpClient httpClient) { asyncClient = getClientBuilder(httpClient, false).buildAsyncClient(); + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); try { // Create a role assignment to delete. - StepVerifier.create(asyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL) - .filter(roleDefinition -> roleDefinition.getRoleName().equals(ROLE_NAME)) - .take(1) - .flatMap(roleDefinition -> Mono.zip(Mono.just(roleDefinition), - asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), servicePrincipalId, - roleAssignmentName)))) + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleDefinition -> Mono.zip(Mono.just(roleDefinition), + asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), + servicePrincipalId, roleAssignmentName))) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO)) .assertNext(tuple -> { KeyVaultRoleAssignment roleAssignment = tuple.getT2(); @@ -228,11 +215,8 @@ public void createRoleAssignment(HttpClient httpClient) { .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -245,28 +229,26 @@ public void createRoleAssignment(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void createExistingRoleAssignmentThrows(HttpClient httpClient) { asyncClient = getClientBuilder(httpClient, false).buildAsyncClient(); + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); try { // Create a role assignment to delete. - StepVerifier.create(asyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL) - .filter(roleDefinition -> roleDefinition.getRoleName().equals(ROLE_NAME)) - .take(1) - .flatMap(roleDefinition -> - asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName)) - .flatMap(roleAssignment -> - asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, - roleAssignment.getProperties().getRoleDefinitionId(), servicePrincipalId, roleAssignmentName))) + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleDefinition -> + asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), + servicePrincipalId, roleAssignmentName)) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleAssignment -> + asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, + roleAssignment.getProperties().getRoleDefinitionId(), servicePrincipalId, roleAssignmentName))) .expectError(KeyVaultAdministrationException.class) .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -278,18 +260,19 @@ public void createExistingRoleAssignmentThrows(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void getRoleAssignment(HttpClient httpClient) { asyncClient = getClientBuilder(httpClient, false).buildAsyncClient(); + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); try { // Create a role assignment to delete. - StepVerifier.create(asyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL) - .filter(roleDefinition -> roleDefinition.getRoleName().equals(ROLE_NAME)) - .take(1) - .flatMap(roleDefinition -> - asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName)) - .flatMap(roleAssignment -> Mono.zip(Mono.just(roleAssignment), - asyncClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignment.getName())))) + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleDefinition -> + asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), + servicePrincipalId, roleAssignmentName)) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleAssignment -> Mono.zip(Mono.just(roleAssignment), + asyncClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignment.getName())))) .assertNext(tuple -> { KeyVaultRoleAssignment createdRoleAssignment = tuple.getT1(); KeyVaultRoleAssignment retrievedRoleAssignment = tuple.getT2(); @@ -301,11 +284,8 @@ public void getRoleAssignment(HttpClient httpClient) { .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -317,28 +297,26 @@ public void getRoleAssignment(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void deleteRoleAssignment(HttpClient httpClient) { asyncClient = getClientBuilder(httpClient, false).buildAsyncClient(); + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); try { // Create a role assignment to delete. - StepVerifier.create(asyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL) - .filter(roleDefinition -> roleDefinition.getRoleName().equals(ROLE_NAME)) - .take(1) - .flatMap(roleDefinition -> - asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), servicePrincipalId, - roleAssignmentName)) - .flatMap(roleAssignment -> - asyncClient.deleteRoleAssignmentWithResponse(KeyVaultRoleScope.GLOBAL, roleAssignment.getName()))) + StepVerifier.create(asyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleDefinition -> + asyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), servicePrincipalId, + roleAssignmentName)) + .delayElement(!interceptorManager.isPlaybackMode() ? Duration.ofSeconds(5) : Duration.ZERO) + .flatMap(roleAssignment -> + asyncClient.deleteRoleAssignmentWithResponse(KeyVaultRoleScope.GLOBAL, roleAssignment.getName()))) .assertNext(deleteResponse -> assertEquals(200, deleteResponse.getStatusCode())) .expectComplete() .verify(); } finally { if (!interceptorManager.isPlaybackMode()) { - // Clean up the role assignment. - KeyVaultAccessControlAsyncClient cleanupClient = - getClientBuilder(httpClient, true).buildAsyncClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName).block(); + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTest.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTest.java index 0ea6e0583b30d..03a6331f49389 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -43,8 +42,8 @@ public void listRoleDefinitions(HttpClient httpClient) { assertNotNull(roleDefinition.getRoleName()); assertNotNull(roleDefinition.getDescription()); assertNotNull(roleDefinition.getRoleType()); - assertFalse(roleDefinition.getAssignableScopes().isEmpty()); - assertFalse(roleDefinition.getPermissions().isEmpty()); + assertNotNull(roleDefinition.getAssignableScopes()); + assertNotNull(roleDefinition.getPermissions()); } } @@ -56,11 +55,11 @@ public void listRoleDefinitions(HttpClient httpClient) { public void setRoleDefinition(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); String roleDefinitionName = testResourceNamer.randomUuid(); - KeyVaultRoleDefinition roleDefinition = null; try { // Create a role definition. - roleDefinition = client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + KeyVaultRoleDefinition roleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); assertNotNull(roleDefinition); assertNotNull(roleDefinition.getId()); @@ -71,11 +70,8 @@ public void setRoleDefinition(HttpClient httpClient) { assertEquals(KeyVaultRoleType.CUSTOM_ROLE, roleDefinition.getRoleType()); assertEquals(roleDefinitionName, roleDefinition.getRoleName()); } finally { - if (!interceptorManager.isPlaybackMode() && roleDefinition != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, null); } } } @@ -88,11 +84,11 @@ public void setRoleDefinition(HttpClient httpClient) { public void getRoleDefinition(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); String roleDefinitionName = testResourceNamer.randomUuid(); - KeyVaultRoleDefinition createdRoleDefinition = null; try { // Create a role definition to retrieve. - createdRoleDefinition = client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); assertNotNull(createdRoleDefinition); @@ -103,11 +99,8 @@ public void getRoleDefinition(HttpClient httpClient) { assertNotNull(retrievedRoleDefinition); assertRoleDefinitionEquals(createdRoleDefinition, retrievedRoleDefinition); } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleDefinition != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, null); } } } @@ -120,28 +113,19 @@ public void getRoleDefinition(HttpClient httpClient) { public void deleteRoleDefinition(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); String roleDefinitionName = testResourceNamer.randomUuid(); - KeyVaultRoleDefinition createdRoleDefinition = null; - - try { - // Create a role definition to delete. - createdRoleDefinition = client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); - assertNotNull(createdRoleDefinition); + // Create a role definition to delete. + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); - // Delete the role definition. - Response deleteResponse = - client.deleteRoleDefinitionWithResponse(KeyVaultRoleScope.GLOBAL, roleDefinitionName, Context.NONE); + assertNotNull(createdRoleDefinition); - assertNotNull(deleteResponse); - assertEquals(200, deleteResponse.getStatusCode()); - } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleDefinition != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); + // Delete the role definition. + Response deleteResponse = + client.deleteRoleDefinitionWithResponse(KeyVaultRoleScope.GLOBAL, roleDefinitionName, Context.NONE); - cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); - } - } + assertNotNull(deleteResponse); + assertEquals(200, deleteResponse.getStatusCode()); } /** @@ -193,26 +177,18 @@ public void listRoleAssignments(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void createRoleAssignment(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); - PagedIterable roleDefinitions = client.listRoleDefinitions(KeyVaultRoleScope.GLOBAL); - KeyVaultRoleDefinition roleDefinition = null; - - for (KeyVaultRoleDefinition currentRoleDefinition : roleDefinitions) { - if (currentRoleDefinition.getRoleName().equals(ROLE_NAME)) { - roleDefinition = currentRoleDefinition; - - break; - } - } - - assertNotNull(roleDefinition); - + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); - KeyVaultRoleAssignment createdRoleAssignment = null; try { + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + + assertNotNull(createdRoleDefinition); + // Create a role assignment. - createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName); + KeyVaultRoleAssignment createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, + createdRoleDefinition.getId(), servicePrincipalId, roleAssignmentName); assertNotNull(createdRoleAssignment); assertNotNull(createdRoleAssignment.getId()); @@ -223,14 +199,12 @@ public void createRoleAssignment(HttpClient httpClient) { assertNotNull(properties); assertEquals(servicePrincipalId, properties.getPrincipalId()); - assertEquals(roleDefinition.getId(), properties.getRoleDefinitionId()); + assertEquals(createdRoleDefinition.getId(), properties.getRoleDefinitionId()); assertEquals(KeyVaultRoleScope.GLOBAL, properties.getScope()); } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleAssignment != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -243,39 +217,27 @@ public void createRoleAssignment(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void createExistingRoleAssignmentThrows(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); - PagedIterable roleDefinitions = client.listRoleDefinitions(KeyVaultRoleScope.GLOBAL); - KeyVaultRoleDefinition roleDefinition = null; - - for (KeyVaultRoleDefinition currentRoleDefinition : roleDefinitions) { - if (currentRoleDefinition.getRoleName().equals(ROLE_NAME)) { - roleDefinition = currentRoleDefinition; - - break; - } - } - - assertNotNull(roleDefinition); - + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); - KeyVaultRoleAssignment createdRoleAssignment = null; try { - // Create a role assignment. - createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName); + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); - KeyVaultRoleDefinition finalRoleDefinition = roleDefinition; + assertNotNull(createdRoleDefinition); + + // Create a role assignment. + client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, createdRoleDefinition.getId(), servicePrincipalId, + roleAssignmentName); // Attempt to create a role assignment with the same name and scope. assertThrows(KeyVaultAdministrationException.class, - () -> client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, finalRoleDefinition.getId(), + () -> client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, createdRoleDefinition.getId(), servicePrincipalId, roleAssignmentName)); } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleAssignment != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -287,27 +249,18 @@ public void createExistingRoleAssignmentThrows(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void getRoleAssignment(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); - PagedIterable roleDefinitions = - client.listRoleDefinitions(KeyVaultRoleScope.GLOBAL); - KeyVaultRoleDefinition roleDefinition = null; - - for (KeyVaultRoleDefinition currentRoleDefinition : roleDefinitions) { - if (currentRoleDefinition.getRoleName().equals(ROLE_NAME)) { - roleDefinition = currentRoleDefinition; - - break; - } - } - - assertNotNull(roleDefinition); - + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); - KeyVaultRoleAssignment createdRoleAssignment = null; try { + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + + assertNotNull(createdRoleDefinition); + // Create a role assignment to retrieve. - createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName); + KeyVaultRoleAssignment createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, + createdRoleDefinition.getId(), servicePrincipalId, roleAssignmentName); assertNotNull(createdRoleAssignment); @@ -318,11 +271,9 @@ public void getRoleAssignment(HttpClient httpClient) { assertNotNull(retrievedRoleAssignment); assertRoleAssignmentEquals(createdRoleAssignment, retrievedRoleAssignment); } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleAssignment != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } @@ -334,27 +285,18 @@ public void getRoleAssignment(HttpClient httpClient) { @MethodSource("com.azure.security.keyvault.administration.KeyVaultAdministrationClientTestBase#createHttpClients") public void deleteRoleAssignment(HttpClient httpClient) { client = getClientBuilder(httpClient, false).buildClient(); - PagedIterable roleDefinitions = - client.listRoleDefinitions(KeyVaultRoleScope.GLOBAL); - KeyVaultRoleDefinition roleDefinition = null; - - for (KeyVaultRoleDefinition currentRoleDefinition : roleDefinitions) { - if (currentRoleDefinition.getRoleName().equals(ROLE_NAME)) { - roleDefinition = currentRoleDefinition; - - break; - } - } - - assertNotNull(roleDefinition); - + String roleDefinitionName = testResourceNamer.randomUuid(); String roleAssignmentName = testResourceNamer.randomUuid(); - KeyVaultRoleAssignment createdRoleAssignment = null; try { + KeyVaultRoleDefinition createdRoleDefinition = + client.setRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + + assertNotNull(createdRoleDefinition); + // Create a role assignment to delete. - createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinition.getId(), - servicePrincipalId, roleAssignmentName); + KeyVaultRoleAssignment createdRoleAssignment = client.createRoleAssignment(KeyVaultRoleScope.GLOBAL, + createdRoleDefinition.getId(), servicePrincipalId, roleAssignmentName); assertNotNull(createdRoleAssignment); @@ -365,11 +307,9 @@ public void deleteRoleAssignment(HttpClient httpClient) { assertNotNull(deleteResponse); assertEquals(200, deleteResponse.getStatusCode()); } finally { - if (!interceptorManager.isPlaybackMode() && createdRoleAssignment != null) { - // Clean up the role assignment. - KeyVaultAccessControlClient cleanupClient = getClientBuilder(httpClient, true).buildClient(); - - cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName); + if (!interceptorManager.isPlaybackMode()) { + cleanUpResources(getClientBuilder(httpClient, true).buildClient(), roleDefinitionName, + roleAssignmentName); } } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTestBase.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTestBase.java index 16837bb5a05b3..fa271bed502c8 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultAccessControlClientTestBase.java @@ -2,11 +2,14 @@ // Licensed under the MIT License. package com.azure.security.keyvault.administration; +import com.azure.core.exception.HttpResponseException; import com.azure.core.http.HttpClient; import com.azure.core.http.HttpPipeline; import com.azure.core.http.HttpPipelineBuilder; import com.azure.core.http.policy.HttpPipelinePolicy; import com.azure.core.test.TestMode; +import com.azure.core.util.Configuration; +import com.azure.core.util.logging.ClientLogger; import com.azure.security.keyvault.administration.models.KeyVaultPermission; import com.azure.security.keyvault.administration.models.KeyVaultRoleAssignment; import com.azure.security.keyvault.administration.models.KeyVaultRoleAssignmentProperties; @@ -21,8 +24,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public abstract class KeyVaultAccessControlClientTestBase extends KeyVaultAdministrationClientTestBase { - protected static final String ROLE_NAME = "Managed HSM Crypto Officer"; - protected final String servicePrincipalId = "49acc88b-8f9e-4619-9856-16691db66767"; + protected final String servicePrincipalId = + Configuration.getGlobalConfiguration().get("CLIENT_OBJECTID", "49acc88b-8f9e-4619-9856-16691db66767"); + private static final ClientLogger LOGGER = new ClientLogger(KeyVaultAccessControlClientTestBase.class); protected KeyVaultAccessControlClientBuilder getClientBuilder(HttpClient httpClient, boolean forCleanup) { List policies = getPolicies(); @@ -128,4 +132,27 @@ static void assertRoleDefinitionEquals(KeyVaultRoleDefinition roleDefinition1, assertEquals(permissions1.size(), permissions2.size()); } + + static void cleanUpResources(KeyVaultAccessControlClient cleanupClient, String roleDefinitionName, + String roleAssignmentName) { + if (roleDefinitionName != null) { + try { + cleanupClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName); + } catch (HttpResponseException e) { + if (e.getResponse().getStatusCode() == 404) { + LOGGER.info("Ignored 404 produced when trying to delete role definition."); + } + } + } + + if (roleAssignmentName != null) { + try { + cleanupClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName); + } catch (HttpResponseException e) { + if (e.getResponse().getStatusCode() == 404) { + LOGGER.info("Ignored 404 produced when trying to delete role assignment."); + } + } + } + } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupAsyncClientTest.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupAsyncClientTest.java index 4897bc93e7b47..672426127b762 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupAsyncClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupAsyncClientTest.java @@ -22,7 +22,6 @@ import java.time.OffsetDateTime; import java.time.ZoneOffset; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.spy; @@ -68,15 +67,28 @@ public void beginRestore(HttpClient httpClient) { // Create a backup AsyncPollResponse backupPollResponse = - asyncClient.beginBackup(blobStorageUrl, sasToken).blockLast(); + asyncClient.beginBackup(blobStorageUrl, sasToken) + .takeUntil(asyncPollResponse -> + asyncPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) + .blockLast(); - // Restore the backup - String backupFolderUrl = backupPollResponse.getFinalResult().block(); + KeyVaultBackupOperation backupOperation = backupPollResponse.getValue(); + assertNotNull(backupOperation); + // Restore the backup + String backupFolderUrl = backupOperation.getAzureStorageBlobContainerUrl(); AsyncPollResponse restorePollResponse = - asyncClient.beginRestore(backupFolderUrl, sasToken).blockLast(); + asyncClient.beginRestore(backupFolderUrl, sasToken) + .takeUntil(asyncPollResponse -> + asyncPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) + .blockLast(); + + KeyVaultRestoreOperation restoreOperation = restorePollResponse.getValue(); + assertNotNull(restoreOperation); - assertEquals(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED, restorePollResponse.getStatus()); + // For some reason, the service might still think a restore operation is running even after returning a success + // signal. This gives it some time to "clear" the operation. + sleepIfRunningAgainstService(30000); } /** @@ -92,9 +104,7 @@ public void beginSelectiveKeyRestore(HttpClient httpClient) { .pipeline(getPipeline(httpClient, false)) .buildAsyncClient(); - String keyName = interceptorManager.isPlaybackMode() - ? "testKey" - : testResourceNamer.randomName("backupKey", 20); + String keyName = testResourceNamer.randomName("backupKey", 20); CreateRsaKeyOptions rsaKeyOptions = new CreateRsaKeyOptions(keyName) .setExpiresOn(OffsetDateTime.of(2050, 1, 30, 0, 0, 0, 0, ZoneOffset.UTC)) .setNotBefore(OffsetDateTime.of(2000, 1, 30, 12, 59, 59, 0, ZoneOffset.UTC)); @@ -105,13 +115,27 @@ public void beginSelectiveKeyRestore(HttpClient httpClient) { // Create a backup AsyncPollResponse backupPollResponse = - asyncClient.beginBackup(blobStorageUrl, sasToken).blockLast(); + asyncClient.beginBackup(blobStorageUrl, sasToken) + .takeUntil(asyncPollResponse -> + asyncPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) + .blockLast(); - // Restore the backup - String backupFolderUrl = backupPollResponse.getFinalResult().block(); - AsyncPollResponse selectiveKeyRestorePollResponse = - asyncClient.beginSelectiveKeyRestore(createdKey.getName(), backupFolderUrl, sasToken).blockLast(); + KeyVaultBackupOperation backupOperation = backupPollResponse.getValue(); + assertNotNull(backupOperation); - assertEquals(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED, selectiveKeyRestorePollResponse.getStatus()); + // Restore the backup + String backupFolderUrl = backupOperation.getAzureStorageBlobContainerUrl(); + AsyncPollResponse restorePollResponse = + asyncClient.beginSelectiveKeyRestore(createdKey.getName(), backupFolderUrl, sasToken) + .takeUntil(asyncPollResponse -> + asyncPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) + .blockLast(); + + KeyVaultSelectiveKeyRestoreOperation restoreOperation = restorePollResponse.getValue(); + assertNotNull(restoreOperation); + + // For some reason, the service might still think a restore operation is running even after returning a success + // signal. This gives it some time to "clear" the operation. + sleepIfRunningAgainstService(30000); } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTest.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTest.java index f2c5c6a8db5be..9e6fb310f0ec3 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTest.java @@ -83,6 +83,10 @@ public void beginRestore(HttpClient httpClient) { PollResponse restoreResponse = restorePoller.poll(); assertEquals(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED, restoreResponse.getStatus()); + + // For some reason, the service might still think a restore operation is running even after returning a success + // signal. This gives it some time to "clear" the operation. + sleepIfRunningAgainstService(30000); } /** @@ -97,9 +101,7 @@ public void beginSelectiveKeyRestore(HttpClient httpClient) { .pipeline(getPipeline(httpClient, false)) .buildClient(); - String keyName = interceptorManager.isPlaybackMode() - ? "testKey" - : testResourceNamer.randomName("backupKey", 20); + String keyName = testResourceNamer.randomName("backupKey", 20); CreateRsaKeyOptions rsaKeyOptions = new CreateRsaKeyOptions(keyName) .setExpiresOn(OffsetDateTime.of(2050, 1, 30, 0, 0, 0, 0, ZoneOffset.UTC)) .setNotBefore(OffsetDateTime.of(2000, 1, 30, 12, 59, 59, 0, ZoneOffset.UTC)); @@ -123,5 +125,9 @@ public void beginSelectiveKeyRestore(HttpClient httpClient) { PollResponse response = selectiveKeyRestorePoller.poll(); assertEquals(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED, response.getStatus()); + + // For some reason, the service might still think a restore operation is running even after returning a success + // signal. This gives it some time to "clear" the operation. + sleepIfRunningAgainstService(30000); } } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTestBase.java b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTestBase.java index c25fcf2533ad0..9ee261c45701f 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/java/com/azure/security/keyvault/administration/KeyVaultBackupClientTestBase.java @@ -24,7 +24,7 @@ public abstract class KeyVaultBackupClientTestBase extends KeyVaultAdministrationClientTestBase { protected final String blobStorageUrl = IS_MANAGED_HSM_DEPLOYED ? getStorageEndpoint() + Configuration.getGlobalConfiguration().get("BLOB_CONTAINER_NAME") - : "https://testaccount.blob.core.windows.net/backup"; + : "https://azsdk-tests.blob.core.windows.net/backup"; protected final String sasToken = IS_MANAGED_HSM_DEPLOYED ? generateSasToken() : "someSasToken"; protected HttpPipeline getPipeline(HttpClient httpClient, boolean forCleanup) { diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createExistingRoleAssignmentThrows[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createExistingRoleAssignmentThrows[1].json index a883123ce9865..625da5fb9729b 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createExistingRoleAssignmentThrows[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createExistingRoleAssignmentThrows[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/39f32a31-b8b9-42cf-b771-78f46c1c56c4?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6944", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "37", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "a4e41264-aecd-11eb-8eeb-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "57d2af42-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/39f32a31-b8b9-42cf-b771-78f46c1c56c4\",\"name\":\"39f32a31-b8b9-42cf-b771-78f46c1c56c4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"39f32a31-b8b9-42cf-b771-78f46c1c56c4\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/4553f6a9-6796-47cd-b4c9-16158db89f8a?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/ef108f37-c73a-4a4a-8328-91a833571e16?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,20 +36,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "80", + "x-ms-server-latency" : "47", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "a70ffecc-aecd-11eb-a764-000d3a3b7b4c", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/4553f6a9-6796-47cd-b4c9-16158db89f8a\",\"name\":\"4553f6a9-6796-47cd-b4c9-16158db89f8a\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "5adbe2da-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/ef108f37-c73a-4a4a-8328-91a833571e16\",\"name\":\"ef108f37-c73a-4a4a-8328-91a833571e16\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/39f32a31-b8b9-42cf-b771-78f46c1c56c4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/4553f6a9-6796-47cd-b4c9-16158db89f8a?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/ef108f37-c73a-4a4a-8328-91a833571e16?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -63,12 +63,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "400", - "x-ms-request-id" : "a734027c-aecd-11eb-a764-000d3a3b7b4c", - "Body" : "{\"error\":{\"code\":\"RoleAssignmentExists\",\"message\":\"The role assignment already exists. (Activity ID: a734027c-aecd-11eb-a764-000d3a3b7b4c)\"}}", + "x-ms-request-id" : "5de86aac-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleAssignmentExists\",\"message\":\"The role assignment already exists. (Activity ID: 5de86aac-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", "x-ms-server-latency" : "1", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "4553f6a9-6796-47cd-b4c9-16158db89f8a" ] -} + "variables" : [ "39f32a31-b8b9-42cf-b771-78f46c1c56c4", "ef108f37-c73a-4a4a-8328-91a833571e16" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createRoleAssignment[1].json index 38301af6d250c..ecf7b8fa55a79 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.createRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/f23ded7d-3619-4a9a-aa08-08d41b27cb29?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6944", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "0", + "x-ms-server-latency" : "41", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "9a0581de-aecd-11eb-a15d-000d3a59ae40", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "5e631e32-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/f23ded7d-3619-4a9a-aa08-08d41b27cb29\",\"name\":\"f23ded7d-3619-4a9a-aa08-08d41b27cb29\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"f23ded7d-3619-4a9a-aa08-08d41b27cb29\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/50b01e0e-a5af-4ab7-9965-08ec3145e6b1?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/de1560dc-21df-4c57-8839-d12a021121e4?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,17 +36,17 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "66", + "x-ms-server-latency" : "42", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "144c0f46-aec2-11eb-b2e9-000d3a3b7b4c", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/50b01e0e-a5af-4ab7-9965-08ec3145e6b1\",\"name\":\"50b01e0e-a5af-4ab7-9965-08ec3145e6b1\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "616de922-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/de1560dc-21df-4c57-8839-d12a021121e4\",\"name\":\"de1560dc-21df-4c57-8839-d12a021121e4\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/f23ded7d-3619-4a9a-aa08-08d41b27cb29\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "50b01e0e-a5af-4ab7-9965-08ec3145e6b1" ] -} + "variables" : [ "f23ded7d-3619-4a9a-aa08-08d41b27cb29", "de1560dc-21df-4c57-8839-d12a021121e4" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json index ee57e967337c1..c0c4723e59cf8 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json @@ -1,31 +1,7 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", - "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" - }, - "Response" : { - "content-length" : "6944", - "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", - "retry-after" : "0", - "StatusCode" : "200", - "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "0", - "content-security-policy" : "default-src 'self'", - "x-content-type-options" : "nosniff", - "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", - "cache-control" : "no-cache", - "x-ms-request-id" : "c1d8cf22-aecd-11eb-bc09-000d3a3b7b4c", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" - }, - "Exception" : null - }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/ef2f0b3c-66d6-4ce5-bee0-38d7b0b65c65?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/ee67c7cc-b17f-41ef-98e6-ca965ecf4eb0?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -38,12 +14,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "404", - "x-ms-request-id" : "c451257e-aecd-11eb-a15d-000d3a59ae40", - "Body" : "{\"error\":{\"code\":\"RoleAssignmentNotFound\",\"message\":\"Requested role assignment not found (Activity ID: c451257e-aecd-11eb-a15d-000d3a59ae40)\"}}", + "x-ms-request-id" : "4db80976-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleAssignmentNotFound\",\"message\":\"Requested role assignment not found (Activity ID: 4db80976-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", "x-ms-server-latency" : "1", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "ef2f0b3c-66d6-4ce5-bee0-38d7b0b65c65" ] -} + "variables" : [ "ee67c7cc-b17f-41ef-98e6-ca965ecf4eb0" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json index 509a459488ed4..acd49c480033c 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/4c4161e6-8e3e-474d-97a0-cb93cf58a46d?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/153614df-2fb1-4d7c-bc86-380c3224d100?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -14,12 +14,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "404", - "x-ms-request-id" : "7ece1070-aecd-11eb-8fdc-000d3a31c437", - "Body" : "{\"error\":{\"code\":\"RoleDefinitionNotFound\",\"message\":\"Requested role definition not found (Activity ID: 7ece1070-aecd-11eb-8fdc-000d3a31c437)\"}}", - "x-ms-server-latency" : "0", + "x-ms-request-id" : "4714fa98-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleDefinitionNotFound\",\"message\":\"Requested role definition not found (Activity ID: 4714fa98-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", + "x-ms-server-latency" : "2", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "4c4161e6-8e3e-474d-97a0-cb93cf58a46d" ] -} + "variables" : [ "153614df-2fb1-4d7c-bc86-380c3224d100" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleAssignment[1].json index a11f7c1a0efbb..a40df0084ff78 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/31329b8c-2087-4403-baf9-f4e8a59919cb?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6944", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "42", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ba551562-aecd-11eb-8e60-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "64c5bf78-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/31329b8c-2087-4403-baf9-f4e8a59919cb\",\"name\":\"31329b8c-2087-4403-baf9-f4e8a59919cb\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"31329b8c-2087-4403-baf9-f4e8a59919cb\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/8c0bac04-c964-4c64-85ad-92ed0f199ecf?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/1314dd80-f3c7-44b7-a7de-5cf4fe151223?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,20 +36,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "44", + "x-ms-server-latency" : "43", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "bb07fc18-aecd-11eb-a76a-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/8c0bac04-c964-4c64-85ad-92ed0f199ecf\",\"name\":\"8c0bac04-c964-4c64-85ad-92ed0f199ecf\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "67cf7038-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/1314dd80-f3c7-44b7-a7de-5cf4fe151223\",\"name\":\"1314dd80-f3c7-44b7-a7de-5cf4fe151223\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/31329b8c-2087-4403-baf9-f4e8a59919cb\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/8c0bac04-c964-4c64-85ad-92ed0f199ecf?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/1314dd80-f3c7-44b7-a7de-5cf4fe151223?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -59,17 +59,17 @@ "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "55", + "x-ms-server-latency" : "47", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "bb2853f0-aecd-11eb-a76a-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/8c0bac04-c964-4c64-85ad-92ed0f199ecf\",\"name\":\"8c0bac04-c964-4c64-85ad-92ed0f199ecf\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6ad95938-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/1314dd80-f3c7-44b7-a7de-5cf4fe151223\",\"name\":\"1314dd80-f3c7-44b7-a7de-5cf4fe151223\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/31329b8c-2087-4403-baf9-f4e8a59919cb\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "8c0bac04-c964-4c64-85ad-92ed0f199ecf" ] -} + "variables" : [ "31329b8c-2087-4403-baf9-f4e8a59919cb", "1314dd80-f3c7-44b7-a7de-5cf4fe151223" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleDefinition[1].json index 147589b96b07c..e58e90d196dd6 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.deleteRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/b6bea7ea-e108-45ed-8f02-8aa69ea2623f?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/aad6f4c9-e785-49c2-90a5-5d39bb6d0eac?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,20 +12,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "57", + "x-ms-server-latency" : "41", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "663112c4-aecd-11eb-a15d-000d3a59ae40", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"name\":\"b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "513ba404-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"name\":\"aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/b6bea7ea-e108-45ed-8f02-8aa69ea2623f?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/aad6f4c9-e785-49c2-90a5-5d39bb6d0eac?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -35,17 +35,17 @@ "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "44", + "x-ms-server-latency" : "39", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "66964360-aecd-11eb-b0c9-000d3a31c437", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"name\":\"b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"b6bea7ea-e108-45ed-8f02-8aa69ea2623f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "5445b40a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"name\":\"aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"aad6f4c9-e785-49c2-90a5-5d39bb6d0eac\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "b6bea7ea-e108-45ed-8f02-8aa69ea2623f" ] -} + "variables" : [ "aad6f4c9-e785-49c2-90a5-5d39bb6d0eac" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleAssignment[1].json index c2c586bc07eff..02a18191af2c4 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/eff9ee1f-7d92-414e-af56-c7964859cf87?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6944", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "98", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ae761f98-aecd-11eb-8e60-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "4737a390-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/eff9ee1f-7d92-414e-af56-c7964859cf87\",\"name\":\"eff9ee1f-7d92-414e-af56-c7964859cf87\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"eff9ee1f-7d92-414e-af56-c7964859cf87\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/16d210a8-8b3a-45fd-88de-95abb0b63e41?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/81e27bc3-4165-4a71-a682-015fd8543955?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,27 +36,27 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "51", + "x-ms-server-latency" : "41", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b0ff365a-aecd-11eb-8eeb-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/16d210a8-8b3a-45fd-88de-95abb0b63e41\",\"name\":\"16d210a8-8b3a-45fd-88de-95abb0b63e41\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "4a4e9a16-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/81e27bc3-4165-4a71-a682-015fd8543955\",\"name\":\"81e27bc3-4165-4a71-a682-015fd8543955\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/eff9ee1f-7d92-414e-af56-c7964859cf87\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/16d210a8-8b3a-45fd-88de-95abb0b63e41?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/81e27bc3-4165-4a71-a682-015fd8543955?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { "content-length" : "398", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", @@ -64,13 +64,13 @@ "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b11fe7a6-aecd-11eb-8eeb-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/16d210a8-8b3a-45fd-88de-95abb0b63e41\",\"name\":\"16d210a8-8b3a-45fd-88de-95abb0b63e41\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "4d5abe7e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/81e27bc3-4165-4a71-a682-015fd8543955\",\"name\":\"81e27bc3-4165-4a71-a682-015fd8543955\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/eff9ee1f-7d92-414e-af56-c7964859cf87\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "16d210a8-8b3a-45fd-88de-95abb0b63e41" ] -} + "variables" : [ "eff9ee1f-7d92-414e-af56-c7964859cf87", "81e27bc3-4165-4a71-a682-015fd8543955" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleDefinition[1].json index 89e8755063dcf..b277c8d276cc3 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.getRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/be9864ed-e256-488a-b98b-d119f9317afb?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/cf299caf-4c4f-43a1-bf9b-3542fe0d3007?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,41 +12,41 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "65", + "x-ms-server-latency" : "41", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "5aa48ea4-aecd-11eb-a2cd-000d3a31c437", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/be9864ed-e256-488a-b98b-d119f9317afb\",\"name\":\"be9864ed-e256-488a-b98b-d119f9317afb\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"be9864ed-e256-488a-b98b-d119f9317afb\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "547560ba-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"name\":\"cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/be9864ed-e256-488a-b98b-d119f9317afb?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/cf299caf-4c4f-43a1-bf9b-3542fe0d3007?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "0", + "x-ms-server-latency" : "2", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "5b09f834-aecd-11eb-b2e9-000d3a3b7b4c", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/be9864ed-e256-488a-b98b-d119f9317afb\",\"name\":\"be9864ed-e256-488a-b98b-d119f9317afb\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"be9864ed-e256-488a-b98b-d119f9317afb\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "577fdc22-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"name\":\"cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"cf299caf-4c4f-43a1-bf9b-3542fe0d3007\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "be9864ed-e256-488a-b98b-d119f9317afb" ] -} + "variables" : [ "cf299caf-4c4f-43a1-bf9b-3542fe0d3007" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleAssignments[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleAssignments[1].json index f792712a1faa0..eb11c2dd55a80 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleAssignments[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleAssignments[1].json @@ -6,9 +6,9 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "809", + "content-length" : "4001", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", @@ -16,13 +16,13 @@ "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "8cdd315a-aecd-11eb-9509-000d3a59ae40", - "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"name\":\"d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/1ee3281c-3854-46f8-b75a-ecda480081dc\",\"name\":\"1ee3281c-3854-46f8-b75a-ecda480081dc\",\"properties\":{\"principalId\":\"e2a5509f-bad0-4a8c-863d-48942ecf3344\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" + "x-ms-request-id" : "5113d65e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"name\":\"a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/43a74571-2681-46c8-86cb-0aa25e04b4f3\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"name\":\"95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"name\":\"4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/feadc9cb-ad70-4001-80b2-44e789f60e11\",\"name\":\"feadc9cb-ad70-4001-80b2-44e789f60e11\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/2a52da8c-6c36-0139-272c-f80e6cebea00\",\"name\":\"2a52da8c-6c36-0139-272c-f80e6cebea00\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"name\":\"acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/59c1a84b-685f-49c8-b4e8-bdef6440c303\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/86dfb698-73ba-47a0-8727-c9802c2f1893\",\"name\":\"86dfb698-73ba-47a0-8727-c9802c2f1893\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1e4f5588-9d2b-4608-ab42-52a72e92db5e\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"name\":\"a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1642f869-3307-441e-b6d0-4f8c50b6a151\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"name\":\"0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ce09ccbc-c086-4f92-8042-e007397d81c2\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"name\":\"02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/57f7e5ce-3170-481e-9ff9-a23fce52bab0\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" }, "Exception" : null } ], "variables" : [ ] -} +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleDefinitions[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleDefinitions[1].json index 89ea3bbda3245..71eeb8a8cff94 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleDefinitions[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.listRoleDefinitions[1].json @@ -6,23 +6,23 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "6590", + "content-length" : "8418", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "0", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "3be0a3a4-aecd-11eb-8fdc-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "5e3aa5ce-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption User\",\"type\":\"AKVBuiltInRole\"},\"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 User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"name\":\"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\",\"Microsoft.KeyVault/managedHsm/rng/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"name\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"name\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b2033d52-7c41-48fa-a220-e82ba064e60f\",\"name\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"name\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c57cea68-6dde-40ef-b890-292892333538\",\"name\":\"c57cea68-6dde-40ef-b890-292892333538\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c57cea68-6dde-40ef-b890-292892333538\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" }, "Exception" : null } ], "variables" : [ ] -} +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.setRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.setRoleDefinition[1].json index d00169c90f39a..3c397819cf75b 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.setRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlAsyncClientTest.setRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/41424788-d6f0-4218-95b9-b597a3697fe0?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/6eb89778-c2d3-472a-b298-fd26896b16b0?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,17 +12,17 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "110", + "x-ms-server-latency" : "43", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "4f3fccf4-aecd-11eb-9c19-000d3a3b7b4c", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/41424788-d6f0-4218-95b9-b597a3697fe0\",\"name\":\"41424788-d6f0-4218-95b9-b597a3697fe0\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"41424788-d6f0-4218-95b9-b597a3697fe0\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "4dd624e2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/6eb89778-c2d3-472a-b298-fd26896b16b0\",\"name\":\"6eb89778-c2d3-472a-b298-fd26896b16b0\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"6eb89778-c2d3-472a-b298-fd26896b16b0\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "41424788-d6f0-4218-95b9-b597a3697fe0" ] -} + "variables" : [ "6eb89778-c2d3-472a-b298-fd26896b16b0" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createExistingRoleAssignmentThrows[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createExistingRoleAssignmentThrows[1].json index 2663fb83fb63f..e60ec74f7eca1 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createExistingRoleAssignmentThrows[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createExistingRoleAssignmentThrows[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/af8bb3cf-a26b-440c-9c80-2862e356e513?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6590", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "37", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "52f82de2-aec2-11eb-8fdc-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6ccf0bd4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/af8bb3cf-a26b-440c-9c80-2862e356e513\",\"name\":\"af8bb3cf-a26b-440c-9c80-2862e356e513\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"af8bb3cf-a26b-440c-9c80-2862e356e513\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/9412ec53-56f1-4cd8-ab3e-cbbd38253f08?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/8720e34c-cfcc-4fae-a06b-c2b6d39e50cd?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,20 +36,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "70", + "x-ms-server-latency" : "46", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "535b6204-aec2-11eb-b32c-000d3a3b7b4c", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/9412ec53-56f1-4cd8-ab3e-cbbd38253f08\",\"name\":\"9412ec53-56f1-4cd8-ab3e-cbbd38253f08\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6cdce560-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/8720e34c-cfcc-4fae-a06b-c2b6d39e50cd\",\"name\":\"8720e34c-cfcc-4fae-a06b-c2b6d39e50cd\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/af8bb3cf-a26b-440c-9c80-2862e356e513\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/9412ec53-56f1-4cd8-ab3e-cbbd38253f08?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/8720e34c-cfcc-4fae-a06b-c2b6d39e50cd?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -63,12 +63,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "400", - "x-ms-request-id" : "537e9828-aec2-11eb-b32c-000d3a3b7b4c", - "Body" : "{\"error\":{\"code\":\"RoleAssignmentExists\",\"message\":\"The role assignment already exists. (Activity ID: 537e9828-aec2-11eb-b32c-000d3a3b7b4c)\"}}", + "x-ms-request-id" : "6cec129c-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleAssignmentExists\",\"message\":\"The role assignment already exists. (Activity ID: 6cec129c-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", "x-ms-server-latency" : "1", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "9412ec53-56f1-4cd8-ab3e-cbbd38253f08" ] -} + "variables" : [ "af8bb3cf-a26b-440c-9c80-2862e356e513", "8720e34c-cfcc-4fae-a06b-c2b6d39e50cd" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createRoleAssignment[1].json index 453e36747db46..68c57293b503d 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.createRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/43ad7769-e506-45f8-8198-8f7b7ef9c89a?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6590", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "0", + "x-ms-server-latency" : "39", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "13e73b66-aec2-11eb-a7d0-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6d854098-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/43ad7769-e506-45f8-8198-8f7b7ef9c89a\",\"name\":\"43ad7769-e506-45f8-8198-8f7b7ef9c89a\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"43ad7769-e506-45f8-8198-8f7b7ef9c89a\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/d0bedeb4-7431-407d-81cd-278929c98218?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/06920057-9423-4963-96e3-ca3ac33696fd?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,17 +36,17 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "66", + "x-ms-server-latency" : "42", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "144c0f46-aec2-11eb-b2e9-000d3a3b7b4c", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/d0bedeb4-7431-407d-81cd-278929c98218\",\"name\":\"d0bedeb4-7431-407d-81cd-278929c98218\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6d9352dc-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/06920057-9423-4963-96e3-ca3ac33696fd\",\"name\":\"06920057-9423-4963-96e3-ca3ac33696fd\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/43ad7769-e506-45f8-8198-8f7b7ef9c89a\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "d0bedeb4-7431-407d-81cd-278929c98218" ] -} + "variables" : [ "43ad7769-e506-45f8-8198-8f7b7ef9c89a", "06920057-9423-4963-96e3-ca3ac33696fd" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json index 9a43616aac11f..86ea68c84da08 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleAssignmentDoesNotThrow[1].json @@ -1,31 +1,7 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", - "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" - }, - "Response" : { - "content-length" : "6590", - "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", - "retry-after" : "0", - "StatusCode" : "200", - "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", - "content-security-policy" : "default-src 'self'", - "x-content-type-options" : "nosniff", - "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", - "cache-control" : "no-cache", - "x-ms-request-id" : "019a2a62-aec3-11eb-97f3-000d3a59ae40", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" - }, - "Exception" : null - }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/ee830d79-e3dc-4ac5-8581-b6f650aa7831?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/3d1e9302-d67b-45d9-927f-63fef89a019c?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -38,12 +14,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "404", - "x-ms-request-id" : "01f9a85c-aec3-11eb-a430-000d3a59ae40", - "Body" : "{\"error\":{\"code\":\"RoleAssignmentNotFound\",\"message\":\"Requested role assignment not found (Activity ID: 01f9a85c-aec3-11eb-a430-000d3a59ae40)\"}}", - "x-ms-server-latency" : "0", + "x-ms-request-id" : "6bb46be0-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleAssignmentNotFound\",\"message\":\"Requested role assignment not found (Activity ID: 6bb46be0-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", + "x-ms-server-latency" : "1", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "ee830d79-e3dc-4ac5-8581-b6f650aa7831" ] -} + "variables" : [ "3d1e9302-d67b-45d9-927f-63fef89a019c" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json index 61bbad7fe4838..73473f833fcbf 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteNonExistingRoleDefinitionDoesNotThrow[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/475ed505-5835-48ce-b257-cdb8fa153e67?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/9bffd973-faa1-4df6-9af1-9ebf7649bdec?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -14,12 +14,12 @@ "retry-after" : "0", "cache-control" : "no-cache", "StatusCode" : "404", - "x-ms-request-id" : "ae14f644-aec0-11eb-b929-000d3a31c437", - "Body" : "{\"error\":{\"code\":\"RoleDefinitionNotFound\",\"message\":\"Requested role definition not found (Activity ID: ae14f644-aec0-11eb-b929-000d3a31c437)\"}}", + "x-ms-request-id" : "6b2976ca-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"error\":{\"code\":\"RoleDefinitionNotFound\",\"message\":\"Requested role definition not found (Activity ID: 6b2976ca-1dbf-11ec-afdf-000d3a9f7bf5)\"}}", "x-ms-server-latency" : "0", "strict-transport-security" : "max-age=31536000; includeSubDomains" }, "Exception" : null } ], - "variables" : [ "475ed505-5835-48ce-b257-cdb8fa153e67" ] -} + "variables" : [ "9bffd973-faa1-4df6-9af1-9ebf7649bdec" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleAssignment[1].json index 70b8114aa3e59..f159f6b3384ee 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6590", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "38", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ed28fd4c-aec2-11eb-9023-000d3a59ae40", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6df207c8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f\",\"name\":\"0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/33785c35-4196-46b5-9d99-d5bcb2b9ca1d?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/a8a9ab58-e223-4cba-9e5a-58d92cc44327?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,20 +36,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "104", + "x-ms-server-latency" : "40", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ed8e264a-aec2-11eb-9ab0-000d3a59ae40", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/33785c35-4196-46b5-9d99-d5bcb2b9ca1d\",\"name\":\"33785c35-4196-46b5-9d99-d5bcb2b9ca1d\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6e005b84-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a8a9ab58-e223-4cba-9e5a-58d92cc44327\",\"name\":\"a8a9ab58-e223-4cba-9e5a-58d92cc44327\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/33785c35-4196-46b5-9d99-d5bcb2b9ca1d?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/a8a9ab58-e223-4cba-9e5a-58d92cc44327?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -59,17 +59,17 @@ "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "42", + "x-ms-server-latency" : "41", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "edb6454e-aec2-11eb-9ab0-000d3a59ae40", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/33785c35-4196-46b5-9d99-d5bcb2b9ca1d\",\"name\":\"33785c35-4196-46b5-9d99-d5bcb2b9ca1d\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6e0e81d2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a8a9ab58-e223-4cba-9e5a-58d92cc44327\",\"name\":\"a8a9ab58-e223-4cba-9e5a-58d92cc44327\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "33785c35-4196-46b5-9d99-d5bcb2b9ca1d" ] -} + "variables" : [ "0fb1b298-0089-4d6a-b8c6-26cc6bbfe59f", "a8a9ab58-e223-4cba-9e5a-58d92cc44327" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleDefinition[1].json index d71e530d642fd..aa0e1ca030ca5 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.deleteRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/1d169f77-86da-491b-8680-ed73e10e4c06?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,20 +12,20 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "69", + "x-ms-server-latency" : "30", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "70bfd8ae-aec0-11eb-9c19-000d3a3b7b4c", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"name\":\"6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "6c4a3fa8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1d169f77-86da-491b-8680-ed73e10e4c06\",\"name\":\"1d169f77-86da-491b-8680-ed73e10e4c06\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"1d169f77-86da-491b-8680-ed73e10e4c06\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "DELETE", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/1d169f77-86da-491b-8680-ed73e10e4c06?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, @@ -39,13 +39,13 @@ "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "713eadf0-aec0-11eb-a750-000d3a59ae40", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"name\":\"6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "6c56d1aa-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1d169f77-86da-491b-8680-ed73e10e4c06\",\"name\":\"1d169f77-86da-491b-8680-ed73e10e4c06\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"1d169f77-86da-491b-8680-ed73e10e4c06\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "6adc4e1b-ff4f-43a7-92ad-6e4ca58d354f" ] -} + "variables" : [ "1d169f77-86da-491b-8680-ed73e10e4c06" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleAssignment[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleAssignment[1].json index c56e62ea11e4f..d15f61114cbdf 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleAssignment[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleAssignment[1].json @@ -1,31 +1,31 @@ { "networkCallRecords" : [ { - "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview", + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" }, "Response" : { - "content-length" : "6590", + "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", "retry-after" : "0", - "StatusCode" : "200", + "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "0", + "x-ms-server-latency" : "95", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "dbd30d12-aec2-11eb-9509-000d3a59ae40", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6b477706-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8\",\"name\":\"c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/658d6c14-98c2-4a53-a523-be8609eb7f8b?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/3c366465-5801-4cb5-8319-c203b0fb70a0?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -36,41 +36,41 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "99", + "x-ms-server-latency" : "39", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "dc35d4c4-aec2-11eb-996c-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/658d6c14-98c2-4a53-a523-be8609eb7f8b\",\"name\":\"658d6c14-98c2-4a53-a523-be8609eb7f8b\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6b5e1cc2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/3c366465-5801-4cb5-8319-c203b0fb70a0\",\"name\":\"3c366465-5801-4cb5-8319-c203b0fb70a0\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/658d6c14-98c2-4a53-a523-be8609eb7f8b?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleAssignments/3c366465-5801-4cb5-8319-c203b0fb70a0?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { "content-length" : "398", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "0", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "dc5d4130-aec2-11eb-996c-000d3a31c437", - "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/658d6c14-98c2-4a53-a523-be8609eb7f8b\",\"name\":\"658d6c14-98c2-4a53-a523-be8609eb7f8b\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" + "x-ms-request-id" : "6b6c2c9a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/3c366465-5801-4cb5-8319-c203b0fb70a0\",\"name\":\"3c366465-5801-4cb5-8319-c203b0fb70a0\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}" }, "Exception" : null } ], - "variables" : [ "658d6c14-98c2-4a53-a523-be8609eb7f8b" ] -} + "variables" : [ "c19d1c0b-fccd-4a2d-90a9-33cd3afbd8d8", "3c366465-5801-4cb5-8319-c203b0fb70a0" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleDefinition[1].json index a346a3cea5752..235eb6f95920d 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.getRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/6be1014b-a26b-4fb9-83d0-a8aff8a1d42d?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,41 +12,41 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "73", + "x-ms-server-latency" : "39", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "4d80ab84-aec0-11eb-8fdc-000d3a31c437", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"name\":\"69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "6c793ea2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"name\":\"6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/6be1014b-a26b-4fb9-83d0-a8aff8a1d42d?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { "content-length" : "353", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "0", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "4de71d56-aec0-11eb-a9c6-000d3a31c437", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"name\":\"69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "6c873c00-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"name\":\"6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"6be1014b-a26b-4fb9-83d0-a8aff8a1d42d\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "69dd1d15-b9c3-4252-be2e-e5ce7cbed1d5" ] -} + "variables" : [ "6be1014b-a26b-4fb9-83d0-a8aff8a1d42d" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleAssignments[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleAssignments[1].json index c1d54efa1a579..1c2724c4e6c86 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleAssignments[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleAssignments[1].json @@ -6,21 +6,21 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "809", + "content-length" : "4001", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "0", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "52123acc-aec1-11eb-8e60-000d3a31c437", - "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"name\":\"d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/1ee3281c-3854-46f8-b75a-ecda480081dc\",\"name\":\"1ee3281c-3854-46f8-b75a-ecda480081dc\",\"properties\":{\"principalId\":\"e2a5509f-bad0-4a8c-863d-48942ecf3344\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" + "x-ms-request-id" : "6c1dc7ac-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"name\":\"a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/43a74571-2681-46c8-86cb-0aa25e04b4f3\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"name\":\"95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"name\":\"4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/feadc9cb-ad70-4001-80b2-44e789f60e11\",\"name\":\"feadc9cb-ad70-4001-80b2-44e789f60e11\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/2a52da8c-6c36-0139-272c-f80e6cebea00\",\"name\":\"2a52da8c-6c36-0139-272c-f80e6cebea00\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"name\":\"acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/59c1a84b-685f-49c8-b4e8-bdef6440c303\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/86dfb698-73ba-47a0-8727-c9802c2f1893\",\"name\":\"86dfb698-73ba-47a0-8727-c9802c2f1893\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1e4f5588-9d2b-4608-ab42-52a72e92db5e\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"name\":\"a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1642f869-3307-441e-b6d0-4f8c50b6a151\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"name\":\"0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ce09ccbc-c086-4f92-8042-e007397d81c2\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"name\":\"02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/57f7e5ce-3170-481e-9ff9-a23fce52bab0\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" }, "Exception" : null }, { @@ -30,9 +30,9 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "809", + "content-length" : "4001", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", @@ -40,13 +40,13 @@ "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "526b94d2-aec1-11eb-a764-000d3a3b7b4c", - "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"name\":\"d11629b0-e3d5-4fe7-01e3-a87029e0ca39\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/1ee3281c-3854-46f8-b75a-ecda480081dc\",\"name\":\"1ee3281c-3854-46f8-b75a-ecda480081dc\",\"properties\":{\"principalId\":\"e2a5509f-bad0-4a8c-863d-48942ecf3344\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" + "x-ms-request-id" : "6c26184e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"name\":\"a22c2d0f-4b22-4d5c-999b-5bba7b4f65dc\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/43a74571-2681-46c8-86cb-0aa25e04b4f3\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"name\":\"95bbdaa8-1dfa-4a6d-9f96-cdc6a7b42bc1\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"name\":\"4dd77f6c-4943-42e3-b510-c57a9cf3ac22\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/feadc9cb-ad70-4001-80b2-44e789f60e11\",\"name\":\"feadc9cb-ad70-4001-80b2-44e789f60e11\",\"properties\":{\"principalId\":\"f84ae8f9-c979-4750-a2fe-b350a00bebff\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/2a52da8c-6c36-0139-272c-f80e6cebea00\",\"name\":\"2a52da8c-6c36-0139-272c-f80e6cebea00\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"name\":\"acbaf07b-b60c-4aec-93be-44b9c434f0da\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/59c1a84b-685f-49c8-b4e8-bdef6440c303\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/86dfb698-73ba-47a0-8727-c9802c2f1893\",\"name\":\"86dfb698-73ba-47a0-8727-c9802c2f1893\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1e4f5588-9d2b-4608-ab42-52a72e92db5e\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"name\":\"a4cde8b5-97f6-4f6d-a439-a1ec3657d4c0\",\"properties\":{\"principalId\":\"a487ddb6-a5c5-48f0-9428-8ecb963852e5\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/1642f869-3307-441e-b6d0-4f8c50b6a151\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"name\":\"0ca11082-b407-4d84-9c02-32c0ebd440b1\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ce09ccbc-c086-4f92-8042-e007397d81c2\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"},{\"id\":\"/providers/Microsoft.Authorization/roleAssignments/02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"name\":\"02ba01a5-eed6-40e1-a6b5-e013fde0181a\",\"properties\":{\"principalId\":\"49acc88b-8f9e-4619-9856-16691db66767\",\"roleDefinitionId\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/57f7e5ce-3170-481e-9ff9-a23fce52bab0\",\"scope\":\"/\"},\"type\":\"Microsoft.Authorization/roleAssignments\"}]}" }, "Exception" : null } ], "variables" : [ ] -} +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleDefinitions[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleDefinitions[1].json index ad6601a724292..a84149cfde1bb 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleDefinitions[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.listRoleDefinitions[1].json @@ -6,21 +6,21 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "6590", + "content-length" : "8418", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1", + "x-ms-server-latency" : "0", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "428c4ac2-aeb5-11eb-aea6-000d3a3b7b4c", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6d45751c-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption User\",\"type\":\"AKVBuiltInRole\"},\"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 User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"name\":\"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\",\"Microsoft.KeyVault/managedHsm/rng/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"name\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"name\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b2033d52-7c41-48fa-a220-e82ba064e60f\",\"name\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"name\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c57cea68-6dde-40ef-b890-292892333538\",\"name\":\"c57cea68-6dde-40ef-b890-292892333538\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c57cea68-6dde-40ef-b890-292892333538\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" }, "Exception" : null }, { @@ -30,9 +30,9 @@ "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "content-length" : "6590", + "content-length" : "8418", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", @@ -40,13 +40,13 @@ "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "42ee172a-aeb5-11eb-8f2a-000d3a3b7b4c", - "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption\",\"type\":\"AKVBuiltInRole\"},\"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\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" + "x-ms-request-id" : "6d4e2f9a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"value\":[{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"name\":\"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/keys/backup/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Backup User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17\",\"name\":\"33413926-3206-4cdd-b39a-83574fe37a17\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/keys/read/action\",\"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Service Encryption User\",\"type\":\"AKVBuiltInRole\"},\"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 User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"name\":\"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Auditor\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"name\":\"4bd23610-cdcf-4971-bdee-bdc562cc28e4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Policy Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b\",\"name\":\"21dbd100-6940-42c2-9190-5d6cb909625b\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"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/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\",\"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\"Microsoft.KeyVault/managedHsm/keys/sign/action\",\"Microsoft.KeyVault/managedHsm/keys/verify/action\",\"Microsoft.KeyVault/managedHsm/rng/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto User\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"name\":\"515eb02d-2335-4d2d-92f2-b1cbdf9c3778\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/export/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Crypto Officer\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4\",\"name\":\"a290e904-7015-4bba-90c8-60543313cdb4\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[{\"actions\":[],\"dataActions\":[\"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/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\",\"Microsoft.KeyVault/managedHsm/backup/start/action\",\"Microsoft.KeyVault/managedHsm/restore/start/action\",\"Microsoft.KeyVault/managedHsm/backup/status/action\",\"Microsoft.KeyVault/managedHsm/restore/status/action\"],\"notActions\":[],\"notDataActions\":[]}],\"roleName\":\"Managed HSM Administrator\",\"type\":\"AKVBuiltInRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"name\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"2e739fcb-2ba8-43be-9f10-29ac1786afd1\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"name\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"ee7e38d0-14a4-4955-8f7e-eebe46a5a7a7\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/b2033d52-7c41-48fa-a220-e82ba064e60f\",\"name\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"b2033d52-7c41-48fa-a220-e82ba064e60f\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"name\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c0be2c69-0c63-4df2-b7dc-b2afc26628ab\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"},{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/c57cea68-6dde-40ef-b890-292892333538\",\"name\":\"c57cea68-6dde-40ef-b890-292892333538\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"c57cea68-6dde-40ef-b890-292892333538\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}]}" }, "Exception" : null } ], "variables" : [ ] -} +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.setRoleDefinition[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.setRoleDefinition[1].json index aa63678cb1a27..466c84146543d 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.setRoleDefinition[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultAccessControlClientTest.setRoleDefinition[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net///providers/Microsoft.Authorization/roleDefinitions/a8d58bc5-69e4-4ae2-b621-6f30cf9c0540?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -12,17 +12,17 @@ "retry-after" : "0", "StatusCode" : "201", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "46", + "x-ms-server-latency" : "42", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-region" : "westus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "88c49cba-aebf-11eb-8b15-000d3a31c437", - "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"name\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"91d62511-feb2-456f-80a0-5b17bbaa50ec\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" + "x-ms-request-id" : "6bd1387e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"id\":\"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a8d58bc5-69e4-4ae2-b621-6f30cf9c0540\",\"name\":\"a8d58bc5-69e4-4ae2-b621-6f30cf9c0540\",\"properties\":{\"assignableScopes\":[\"/\"],\"description\":\"\",\"permissions\":[],\"roleName\":\"a8d58bc5-69e4-4ae2-b621-6f30cf9c0540\",\"type\":\"CustomRole\"},\"type\":\"Microsoft.Authorization/roleDefinitions\"}" }, "Exception" : null } ], - "variables" : [ "91d62511-feb2-456f-80a0-5b17bbaa50ec" ] -} + "variables" : [ "a8d58bc5-69e4-4ae2-b621-6f30cf9c0540" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginBackup[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginBackup[1].json index 67ab546ae54f6..74d66b8210d9b 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginBackup[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginBackup[1].json @@ -7,75 +7,101 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:07 GMT", + "date" : "Sat, 25 Sep 2021 05:14:53 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "4296", + "x-ms-server-latency" : "2664", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ae9333d6-aed6-11eb-9ab0-000d3a59ae40", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":{\"code\":null,\"message\":null,\"innererror\":null},\"startTime\":1620352268,\"endTime\":null,\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending" + "x-ms-request-id" : "82856fcc-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546893,\"endTime\":null,\"jobId\":\"e4435f696ede4c38a9efff88d57fdc43\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/e4435f696ede4c38a9efff88d57fdc43/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4435f696ede4c38a9efff88d57fdc43/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:10 GMT", + "date" : "Sat, 25 Sep 2021 05:14:56 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1336", + "x-ms-server-latency" : "2450", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b21a12fe-aed6-11eb-a2cd-000d3a31c437", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"startTime\":1620352268,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "84bf0370-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"e4435f696ede4c38a9efff88d57fdc43\",\"startTime\":1632546893,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4435f696ede4c38a9efff88d57fdc43/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:15 GMT", + "date" : "Sat, 25 Sep 2021 05:15:00 GMT", "server" : "Kestrel", - "content-length" : "271", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1292", + "x-ms-server-latency" : "2555", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b528dcd2-aed6-11eb-a2cd-000d3a31c437", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021050701510807\",\"endTime\":1620352276,\"error\":null,\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"startTime\":1620352268,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "86d8193a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"e4435f696ede4c38a9efff88d57fdc43\",\"startTime\":1632546893,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4435f696ede4c38a9efff88d57fdc43/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:15:03 GMT", + "server" : "Kestrel", + "content-length" : "270", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2531", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "88fedca8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505145331\",\"endTime\":1632546902,\"error\":null,\"jobId\":\"e4435f696ede4c38a9efff88d57fdc43\",\"startTime\":1632546893,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null } ], diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginRestore[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginRestore[1].json index a2b4c81f252a0..f849d859494e9 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginRestore[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginRestore[1].json @@ -7,75 +7,101 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:21 GMT", + "date" : "Sat, 25 Sep 2021 05:15:45 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "1588", + "x-ms-server-latency" : "3713", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "d64faa20-aed7-11eb-bc0f-000d3a59ae40", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":{\"code\":null,\"message\":null,\"innererror\":null},\"startTime\":1620352761,\"endTime\":null,\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending" + "x-ms-request-id" : "a1536850-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546945,\"endTime\":null,\"jobId\":\"c433d43adafb4b54a1c8816928fac923\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/c433d43adafb4b54a1c8816928fac923/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/c433d43adafb4b54a1c8816928fac923/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:23 GMT", + "date" : "Sat, 25 Sep 2021 05:15:48 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1502", + "x-ms-server-latency" : "2422", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "d8372b6a-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"startTime\":1620352761,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "a42b17e4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"c433d43adafb4b54a1c8816928fac923\",\"startTime\":1632546945,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/c433d43adafb4b54a1c8816928fac923/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:29 GMT", + "date" : "Sat, 25 Sep 2021 05:15:52 GMT", "server" : "Kestrel", - "content-length" : "271", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1296", + "x-ms-server-latency" : "2438", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "db3806e0-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021050701592162\",\"endTime\":1620352769,\"error\":null,\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"startTime\":1620352761,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "a63f5fd6-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"c433d43adafb4b54a1c8816928fac923\",\"startTime\":1632546945,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/c433d43adafb4b54a1c8816928fac923/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:15:55 GMT", + "server" : "Kestrel", + "content-length" : "270", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2460", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "a8561f80-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505154602\",\"endTime\":1632546955,\"error\":null,\"jobId\":\"c433d43adafb4b54a1c8816928fac923\",\"startTime\":1632546945,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null }, { @@ -86,101 +112,179 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:34 GMT", + "date" : "Sat, 25 Sep 2021 05:15:59 GMT", "server" : "Kestrel", - "content-length" : "180", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "4289", + "x-ms-server-latency" : "2600", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "dc1821d0-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"InProgress\",\"statusDetails\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending" + "x-ms-request-id" : "a9d59f8e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:47 GMT", + "date" : "Sat, 25 Sep 2021 05:16:03 GMT", "server" : "Kestrel", - "content-length" : "180", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1211", + "x-ms-server-latency" : "2817", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e6ab9bae-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "ac04c820-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:50 GMT", + "date" : "Sat, 25 Sep 2021 05:16:06 GMT", "server" : "Kestrel", - "content-length" : "143", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "3189", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "ae5382e2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:16:11 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2908", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "b0db42ac-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:16:14 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2447", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "b337ff86-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:16:18 GMT", + "server" : "Kestrel", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1214", + "x-ms-server-latency" : "2519", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e8163bd4-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":1620352789,\"error\":null,\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "b5506c7c-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/f1e77dc88a644ee4acbb68ef2f03b627/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:52 GMT", + "date" : "Sat, 25 Sep 2021 05:16:21 GMT", "server" : "Kestrel", "content-length" : "143", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1160", + "x-ms-server-latency" : "2495", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e8e6117e-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":1620352789,\"error\":null,\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "b7727752-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546981,\"error\":null,\"jobId\":\"f1e77dc88a644ee4acbb68ef2f03b627\",\"startTime\":1632546959,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null } ], diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginSelectiveKeyRestore[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginSelectiveKeyRestore[1].json index a0ca38a2f604a..4d2214ee3ff04 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginSelectiveKeyRestore[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupAsyncClientTest.beginSelectiveKeyRestore[1].json @@ -1,26 +1,26 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/testKey/create?api-version=7.2", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/backupkey872128dc/create?api-version=7.2", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "750", + "content-length" : "759", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "322", + "x-ms-server-latency" : "202", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", "x-ms-keyvault-region" : "centralus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "721775da-cefb-11eb-9c83-000d3a9461a8", - "Body" : "{\"attributes\":{\"created\":1623886491,\"enabled\":true,\"exp\":2527113600,\"exportable\":false,\"nbf\":949237199,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1623886491},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://REDACTED.managedhsm.azure.net/keys/testKey/8b013581f704093e04c95faed6633d18\",\"kty\":\"RSA-HSM\",\"n\":\"pu6mM_Xx_Sws9n4XBCsQNgewtS40Y-vW9DJjoYksxnL2oC55JbKhY7md6UOpfvK7iuUItNhjHB6vrYr3fIAVsTDc5JW5jleZ50WIqaHywDsA4Sp7POHm5LomDsTs0IEvo3debdpeFT5F3Yly4Nv-Rq3y9qTiXowke-C-ZM1kfptOWOwrsxuL31Y1NVuDi9VQHIdZko1Di8YCmWJSO4Ko9d7XuR8HRABoa9YO4vRtTaM-qMCAYcbozcykbnjcgY5QSen1ukchFqrYjph8EwtUeos9O1zU_OHykG6Xsjrmstd1Cm6Yq0zseBfKHEmx45sO5YEaJoUEQrgMziJC9NM26w\"}}" + "x-ms-request-id" : "8a9ccc82-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"attributes\":{\"created\":1632546904,\"enabled\":true,\"exp\":2527113600,\"exportable\":false,\"nbf\":949237199,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632546904},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://azsdk-tests.managedhsm.azure.net/keys/backupkey872128dc/04f25bc3c4750ffebf5c2ffdab86101d\",\"kty\":\"RSA-HSM\",\"n\":\"i_ZZVEFWuZuAxc-yQ3BOggYaMVu61cFSXbutJdRaS53x-M3OxJuXYkxvbWId8qOIUveebGNxdVtCawCr81ICKr25bPJUVm4iIv1-5j3MsDCoLpwWE96Podi1WIqJqhIeTuglvE3BikQ89UVaURueZSUh1F6Neow4sK3mvPCb_gtIehYUsRQ2H2Fvzp0bmsenFTBEHUQ6l2JeBiUKELNulW0U6MKInNzqkx_NE1HpE8vlVTE4gIKieFweXa_vNH7q5HBeVK1lQzfpgZ0qSATGPKUw5kBJs-ljHj8RsjYldWmzMh29BKUGjxfUvW26RLRxyN4AuVEdW_fODvbZ68mx4Q\"}}" }, "Exception" : null }, { @@ -31,182 +31,260 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:34:54 GMT", + "date" : "Sat, 25 Sep 2021 05:15:06 GMT", "server" : "Kestrel", "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "2724", + "x-ms-server-latency" : "2864", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "72feec30-cefb-11eb-9c83-000d3a9461a8", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1623886494,\"endTime\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending" + "x-ms-request-id" : "8ad65506-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546907,\"endTime\":null,\"jobId\":\"326ae18f19f843978fabbba3bb0a32ae\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/326ae18f19f843978fabbba3bb0a32ae/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/326ae18f19f843978fabbba3bb0a32ae/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:34:58 GMT", + "date" : "Sat, 25 Sep 2021 05:15:10 GMT", "server" : "Kestrel", "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1926", + "x-ms-server-latency" : "2653", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "758c5d48-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"startTime\":1623886494,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "8d2d238e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"326ae18f19f843978fabbba3bb0a32ae\",\"startTime\":1632546907,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/326ae18f19f843978fabbba3bb0a32ae/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:07 GMT", + "date" : "Sat, 25 Sep 2021 05:15:14 GMT", + "server" : "Kestrel", + "content-length" : "174", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2621", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "8f64c8f0-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"326ae18f19f843978fabbba3bb0a32ae\",\"startTime\":1632546907,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/326ae18f19f843978fabbba3bb0a32ae/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:15:18 GMT", "server" : "Kestrel", "content-length" : "270", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1908", + "x-ms-server-latency" : "2909", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7b0a8592-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021061623345525\",\"endTime\":1623886506,\"error\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"startTime\":1623886494,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "9196f3f0-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505150744\",\"endTime\":1632546917,\"error\":null,\"jobId\":\"326ae18f19f843978fabbba3bb0a32ae\",\"startTime\":1632546907,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/testKey/restore?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/backupkey872128dc/restore?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:09 GMT", + "date" : "Sat, 25 Sep 2021 05:15:21 GMT", "server" : "Kestrel", "content-length" : "138", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "2176", + "x-ms-server-latency" : "2672", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7c431be0-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"InProgress\",\"statusDetails\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending" + "x-ms-request-id" : "935b140a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"InProgress\",\"statusDetails\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:13 GMT", + "date" : "Sat, 25 Sep 2021 05:15:24 GMT", "server" : "Kestrel", "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "2530", + "x-ms-server-latency" : "2408", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7e40440e-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "959505b4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:28 GMT", + "date" : "Sat, 25 Sep 2021 05:15:30 GMT", "server" : "Kestrel", - "content-length" : "233", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "3923", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "97a6bc08-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:15:33 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2493", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9a9ee070-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:15:36 GMT", + "server" : "Kestrel", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1854", + "x-ms-server-latency" : "2558", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "87a5b90c-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":1623886526,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" + "x-ms-request-id" : "9cbc24c6-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c4e6ff5349704e8a96306d7c673e7184/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:30 GMT", + "date" : "Sat, 25 Sep 2021 05:15:41 GMT", "server" : "Kestrel", "content-length" : "233", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1953", + "x-ms-server-latency" : "3922", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "88d4730e-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":1623886526,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" + "x-ms-request-id" : "9ee55f88-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546937,\"error\":null,\"jobId\":\"c4e6ff5349704e8a96306d7c673e7184\",\"startTime\":1632546921,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" }, "Exception" : null } ], - "variables" : [ ] + "variables" : [ "backupkey872128dc" ] } diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginBackup[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginBackup[1].json index 67ab546ae54f6..39f071ef90b7a 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginBackup[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginBackup[1].json @@ -7,75 +7,101 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:07 GMT", + "date" : "Sat, 25 Sep 2021 05:11:37 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "4296", + "x-ms-server-latency" : "2812", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "ae9333d6-aed6-11eb-9ab0-000d3a59ae40", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":{\"code\":null,\"message\":null,\"innererror\":null},\"startTime\":1620352268,\"endTime\":null,\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending" + "x-ms-request-id" : "0e53d5e4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546698,\"endTime\":null,\"jobId\":\"99bd82f5bbc44f81aa8ae5724da46211\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/99bd82f5bbc44f81aa8ae5724da46211/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/99bd82f5bbc44f81aa8ae5724da46211/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:10 GMT", + "date" : "Sat, 25 Sep 2021 05:11:41 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1336", + "x-ms-server-latency" : "2536", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b21a12fe-aed6-11eb-a2cd-000d3a31c437", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"startTime\":1620352268,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "10a82dae-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"99bd82f5bbc44f81aa8ae5724da46211\",\"startTime\":1632546698,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/8dc2fec887814b6ab5a1807277d81d05/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/99bd82f5bbc44f81aa8ae5724da46211/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:51:15 GMT", + "date" : "Sat, 25 Sep 2021 05:11:44 GMT", "server" : "Kestrel", - "content-length" : "271", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1292", + "x-ms-server-latency" : "2473", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "b528dcd2-aed6-11eb-a2cd-000d3a31c437", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021050701510807\",\"endTime\":1620352276,\"error\":null,\"jobId\":\"8dc2fec887814b6ab5a1807277d81d05\",\"startTime\":1620352268,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "12cc93f4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"99bd82f5bbc44f81aa8ae5724da46211\",\"startTime\":1632546698,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/99bd82f5bbc44f81aa8ae5724da46211/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:11:48 GMT", + "server" : "Kestrel", + "content-length" : "270", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2402", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "14e7a07a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505113851\",\"endTime\":1632546709,\"error\":null,\"jobId\":\"99bd82f5bbc44f81aa8ae5724da46211\",\"startTime\":1632546698,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null } ], diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginRestore[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginRestore[1].json index a2b4c81f252a0..bef1a991d9907 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginRestore[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginRestore[1].json @@ -7,75 +7,101 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:21 GMT", + "date" : "Sat, 25 Sep 2021 05:12:32 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "1588", + "x-ms-server-latency" : "2730", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "d64faa20-aed7-11eb-bc0f-000d3a59ae40", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":{\"code\":null,\"message\":null,\"innererror\":null},\"startTime\":1620352761,\"endTime\":null,\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending" + "x-ms-request-id" : "2ec837e8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546752,\"endTime\":null,\"jobId\":\"583b92da32a34577af8a3a20081bb165\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/583b92da32a34577af8a3a20081bb165/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/583b92da32a34577af8a3a20081bb165/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:23 GMT", + "date" : "Sat, 25 Sep 2021 05:12:35 GMT", "server" : "Kestrel", - "content-length" : "216", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1502", + "x-ms-server-latency" : "2509", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "d8372b6a-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"startTime\":1620352761,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "310aa96e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"583b92da32a34577af8a3a20081bb165\",\"startTime\":1632546752,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/55bb480d6c6b4fd9ae302696f35c3f5e/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/583b92da32a34577af8a3a20081bb165/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:29 GMT", + "date" : "Sat, 25 Sep 2021 05:12:39 GMT", "server" : "Kestrel", - "content-length" : "271", + "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1296", + "x-ms-server-latency" : "2457", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "db3806e0-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021050701592162\",\"endTime\":1620352769,\"error\":null,\"jobId\":\"55bb480d6c6b4fd9ae302696f35c3f5e\",\"startTime\":1620352761,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "332d0b7e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"583b92da32a34577af8a3a20081bb165\",\"startTime\":1632546752,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/583b92da32a34577af8a3a20081bb165/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:43 GMT", + "server" : "Kestrel", + "content-length" : "270", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2363", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "35452ce8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505123288\",\"endTime\":1632546762,\"error\":null,\"jobId\":\"583b92da32a34577af8a3a20081bb165\",\"startTime\":1632546752,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null }, { @@ -86,101 +112,179 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:34 GMT", + "date" : "Sat, 25 Sep 2021 05:12:45 GMT", "server" : "Kestrel", - "content-length" : "180", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "4289", + "x-ms-server-latency" : "2513", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "36b66fe2-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"InProgress\",\"statusDetails\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:48 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2414", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "38d72190-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:54 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "3883", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "3ae8f2ec-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:57 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2622", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "dc1821d0-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"InProgress\",\"statusDetails\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending" + "x-ms-request-id" : "3ddc6362-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:47 GMT", + "date" : "Sat, 25 Sep 2021 05:13:01 GMT", "server" : "Kestrel", - "content-length" : "180", + "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1211", + "x-ms-server-latency" : "2410", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e6ab9bae-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":null,\"error\":{\"code\":null,\"innererror\":null,\"message\":null},\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "400d41ec-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:50 GMT", + "date" : "Sat, 25 Sep 2021 05:13:05 GMT", "server" : "Kestrel", "content-length" : "143", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1214", + "x-ms-server-latency" : "2813", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e8163bd4-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":1620352789,\"error\":null,\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "421f117c-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546783,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/a5ebd32dce1b44308029a0711bd6d5ea/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/c35427fa235140729506c1e3528fef37/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Fri, 07 May 2021 01:59:52 GMT", + "date" : "Sat, 25 Sep 2021 05:13:10 GMT", "server" : "Kestrel", "content-length" : "143", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210407-3-27236ed1-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1160", + "x-ms-server-latency" : "5232", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.114.0;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "e8e6117e-aed7-11eb-a15d-000d3a59ae40", - "Body" : "{\"endTime\":1620352789,\"error\":null,\"jobId\":\"a5ebd32dce1b44308029a0711bd6d5ea\",\"startTime\":1620352771,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "43d46490-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546783,\"error\":null,\"jobId\":\"c35427fa235140729506c1e3528fef37\",\"startTime\":1632546765,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null } ], diff --git a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginSelectiveKeyRestore[1].json b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginSelectiveKeyRestore[1].json index a0ca38a2f604a..1e3795e6a31ee 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginSelectiveKeyRestore[1].json +++ b/sdk/keyvault/azure-security-keyvault-administration/src/test/resources/session-records/KeyVaultBackupClientTest.beginSelectiveKeyRestore[1].json @@ -1,26 +1,26 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/testKey/create?api-version=7.2", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/backupkey88303724/create?api-version=7.2", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "750", + "content-length" : "759", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "322", + "x-ms-server-latency" : "252", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "content-type" : "application/json; charset=utf-8", "x-ms-keyvault-region" : "centralus", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "721775da-cefb-11eb-9c83-000d3a9461a8", - "Body" : "{\"attributes\":{\"created\":1623886491,\"enabled\":true,\"exp\":2527113600,\"exportable\":false,\"nbf\":949237199,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1623886491},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://REDACTED.managedhsm.azure.net/keys/testKey/8b013581f704093e04c95faed6633d18\",\"kty\":\"RSA-HSM\",\"n\":\"pu6mM_Xx_Sws9n4XBCsQNgewtS40Y-vW9DJjoYksxnL2oC55JbKhY7md6UOpfvK7iuUItNhjHB6vrYr3fIAVsTDc5JW5jleZ50WIqaHywDsA4Sp7POHm5LomDsTs0IEvo3debdpeFT5F3Yly4Nv-Rq3y9qTiXowke-C-ZM1kfptOWOwrsxuL31Y1NVuDi9VQHIdZko1Di8YCmWJSO4Ko9d7XuR8HRABoa9YO4vRtTaM-qMCAYcbozcykbnjcgY5QSen1ukchFqrYjph8EwtUeos9O1zU_OHykG6Xsjrmstd1Cm6Yq0zseBfKHEmx45sO5YEaJoUEQrgMziJC9NM26w\"}}" + "x-ms-request-id" : "16851a84-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"attributes\":{\"created\":1632546709,\"enabled\":true,\"exp\":2527113600,\"exportable\":false,\"nbf\":949237199,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632546709},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://azsdk-tests.managedhsm.azure.net/keys/backupkey88303724/f2b98edad0e1039907c293f771825530\",\"kty\":\"RSA-HSM\",\"n\":\"kYwSymWgOqm-u32UjDhrnrUtRL9t0VbIc994Od710xmEcL168MMkGHtCiBa1SMYJlMjT8xrlDvRwMeaG7V1LYBieWIX4EcpvAgS7Y6sB3NIuIde6F-mBRDO2zqfTLhR-KNTcHRp7GJWYQjdA6blOPKxbBtzmjfwygATlvKZOkGx7-ZMOZEoxRJESXykUElMkLFbHA8OzaS9jFtL8DXFwgxpzlvJ4-OjLHyz0m8gMbNH9yMMjoC96NYHOYynh9XBbj40IvLMBWIj4DIOEd7R3lXn8KFkPPBWQf9BvqvI_HF7a2Ge42RHTVxUthxT-ucXMu0IH0LwGqum-25DQa8-Xuw\"}}" }, "Exception" : null }, { @@ -31,182 +31,286 @@ "Content-Type" : "application/json" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:34:54 GMT", + "date" : "Sat, 25 Sep 2021 05:11:51 GMT", "server" : "Kestrel", "content-length" : "174", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "2724", + "x-ms-server-latency" : "2603", "strict-transport-security" : "max-age=31536000; includeSubDomains", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "72feec30-cefb-11eb-9c83-000d3a9461a8", - "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1623886494,\"endTime\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"azureStorageBlobContainerUri\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending" + "x-ms-request-id" : "16d476d8-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"status\":\"InProgress\",\"statusDetails\":null,\"error\":null,\"startTime\":1632546712,\"endTime\":null,\"jobId\":\"93e8cfe4ab7a45e8810022c03e798d6d\",\"azureStorageBlobContainerUri\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/backup/93e8cfe4ab7a45e8810022c03e798d6d/pending" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/93e8cfe4ab7a45e8810022c03e798d6d/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:34:58 GMT", + "date" : "Sat, 25 Sep 2021 05:11:55 GMT", "server" : "Kestrel", "content-length" : "174", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1926", + "x-ms-server-latency" : "2590", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "758c5d48-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"startTime\":1623886494,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "19037774-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"93e8cfe4ab7a45e8810022c03e798d6d\",\"startTime\":1632546712,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/backup/e4d841871df14fbdae8ee119ae27a6cd/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/93e8cfe4ab7a45e8810022c03e798d6d/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:07 GMT", + "date" : "Sat, 25 Sep 2021 05:11:58 GMT", + "server" : "Kestrel", + "content-length" : "174", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2490", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "1b31611e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":null,\"endTime\":null,\"error\":null,\"jobId\":\"93e8cfe4ab7a45e8810022c03e798d6d\",\"startTime\":1632546712,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/backup/93e8cfe4ab7a45e8810022c03e798d6d/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:03 GMT", "server" : "Kestrel", "content-length" : "270", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1908", + "x-ms-server-latency" : "2636", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7b0a8592-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"azureStorageBlobContainerUri\":\"https://testaccount.blob.core.windows.net/backup/REDACTED-2021061623345525\",\"endTime\":1623886506,\"error\":null,\"jobId\":\"e4d841871df14fbdae8ee119ae27a6cd\",\"startTime\":1623886494,\"status\":\"Succeeded\",\"statusDetails\":null}" + "x-ms-request-id" : "1d5049ba-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"azureStorageBlobContainerUri\":\"https://azsdk-tests.blob.core.windows.net/backup/mhsm-azsdk-tests-2021092505115256\",\"endTime\":1632546722,\"error\":null,\"jobId\":\"93e8cfe4ab7a45e8810022c03e798d6d\",\"startTime\":1632546712,\"status\":\"Succeeded\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "PUT", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/testKey/restore?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/backupkey88303724/restore?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:09 GMT", + "date" : "Sat, 25 Sep 2021 05:12:05 GMT", "server" : "Kestrel", "content-length" : "138", "x-frame-options" : "SAMEORIGIN", "retry-after" : "0", "StatusCode" : "202", - "x-ms-server-latency" : "2176", + "x-ms-server-latency" : "3105", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "1eeb70ec-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"InProgress\",\"statusDetails\":null}", + "azure-asyncoperation" : "https://azsdk-tests.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:09 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2818", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "2168435e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:13 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2635", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "x-ms-keyvault-region" : "centralus", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "23b957c4-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"InProgress\",\"statusDetails\":null}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" + }, + "Response" : { + "date" : "Sat, 25 Sep 2021 05:12:17 GMT", + "server" : "Kestrel", + "content-length" : "138", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", + "retry-after" : "0", + "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "2676", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7c431be0-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"InProgress\",\"statusDetails\":null}", - "azure-asyncoperation" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending" + "x-ms-request-id" : "25ec925e-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:13 GMT", + "date" : "Sat, 25 Sep 2021 05:12:21 GMT", "server" : "Kestrel", "content-length" : "138", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "2530", + "x-ms-server-latency" : "2612", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "7e40440e-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"InProgress\",\"statusDetails\":null}" + "x-ms-request-id" : "2828bf84-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":null,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"InProgress\",\"statusDetails\":null}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:28 GMT", + "date" : "Sat, 25 Sep 2021 05:12:24 GMT", "server" : "Kestrel", "content-length" : "233", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1854", + "x-ms-server-latency" : "2718", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "87a5b90c-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":1623886526,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" + "x-ms-request-id" : "2a586480-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546742,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.managedhsm.azure.net/restore/b1e5360fcf0841fe8ec1d74083c10a43/pending?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/restore/189800d232764c3abf1d1eddd0f5459a/pending?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)" }, "Response" : { - "date" : "Wed, 16 Jun 2021 23:35:30 GMT", + "date" : "Sat, 25 Sep 2021 05:12:29 GMT", "server" : "Kestrel", "content-length" : "233", "x-frame-options" : "SAMEORIGIN", - "x-ms-build-version" : "1.0.20210520-1-d6634624-develop", + "x-ms-build-version" : "1.0.20210907-1-d3b7f466-develop", "retry-after" : "0", "StatusCode" : "200", "strict-transport-security" : "max-age=31536000; includeSubDomains", - "x-ms-server-latency" : "1953", + "x-ms-server-latency" : "4387", "content-security-policy" : "default-src 'self'", "x-content-type-options" : "nosniff", "x-ms-keyvault-region" : "centralus", "content-type" : "application/json; charset=utf-8", - "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.106.72;act_addr_fam=Ipv4;", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", "cache-control" : "no-cache", - "x-ms-request-id" : "88d4730e-cefb-11eb-8e90-000d3a9461a8", - "Body" : "{\"endTime\":1623886526,\"error\":null,\"jobId\":\"b1e5360fcf0841fe8ec1d74083c10a43\",\"startTime\":1623886510,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" + "x-ms-request-id" : "2bff2b7a-1dbf-11ec-afdf-000d3a9f7bf5", + "Body" : "{\"endTime\":1632546742,\"error\":null,\"jobId\":\"189800d232764c3abf1d1eddd0f5459a\",\"startTime\":1632546726,\"status\":\"Succeeded\",\"statusDetails\":\"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2\"}" }, "Exception" : null } ], - "variables" : [ ] + "variables" : [ "backupkey88303724" ] } diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/CertificateAsyncClient.java b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/CertificateAsyncClient.java index 34a4f96bbb6c9..215546e37fa65 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/CertificateAsyncClient.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/CertificateAsyncClient.java @@ -76,7 +76,6 @@ public final class CertificateAsyncClient { static final String ACCEPT_LANGUAGE = "en-US"; static final int DEFAULT_MAX_PAGE_RESULTS = 25; static final String CONTENT_TYPE_HEADER_VALUE = "application/json"; - static final String KEY_VAULT_SCOPE = "https://vault.azure.net/.default"; // Please see here // for more information on Azure resource provider namespaces. private static final String KEYVAULT_TRACING_NAMESPACE_VALUE = "Microsoft.KeyVault"; diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/KeyVaultCredentialPolicy.java b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/KeyVaultCredentialPolicy.java index 8552c02c17b97..b6f0ac8d6eeb3 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/KeyVaultCredentialPolicy.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/KeyVaultCredentialPolicy.java @@ -1,91 +1,78 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. - package com.azure.security.keyvault.certificates.implementation; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; import com.azure.core.http.HttpPipelineCallContext; -import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpRequest; import com.azure.core.http.HttpResponse; -import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.util.CoreUtils; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** - * A policy that authenticates requests with Azure Key Vault service. The content added by this policy - * is leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. + * A policy that authenticates requests with the Azure Key Vault service. The content added by this policy is + * leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. * * @see TokenCredential */ -public final class KeyVaultCredentialPolicy implements HttpPipelinePolicy { - private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; +public class KeyVaultCredentialPolicy extends BearerTokenAuthenticationPolicy { private static final String BEARER_TOKEN_PREFIX = "Bearer "; - private static final String AUTHORIZATION = "Authorization"; - private final ScopeTokenCache cache; + private static final String CONTENT_LENGTH_HEADER = "Content-Length"; + private static final String KEY_VAULT_STASHED_CONTENT_KEY = "KeyVaultCredentialPolicyStashedBody"; + private static final String KEY_VAULT_STASHED_CONTENT_LENGTH_KEY = "KeyVaultCredentialPolicyStashedContentLength"; + private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; + private static final ConcurrentMap SCOPE_CACHE = new ConcurrentHashMap<>(); + private String scope; /** - * Creates KeyVaultCredentialPolicy. + * Creates a {@link KeyVaultCredentialPolicy}. * - * @param credential the token credential to authenticate the request + * @param credential The token credential to authenticate the request. */ public KeyVaultCredentialPolicy(TokenCredential credential) { - Objects.requireNonNull(credential, "'credential' cannot be null."); - this.cache = new ScopeTokenCache(credential::getToken); + super(credential); } /** - * Adds the required header to authenticate a request to Azure Key Vault service. + * Extracts attributes off the bearer challenge in the authentication header. * - * @param context The request context - * @param next The next HTTP pipeline policy to process the {@code context's} request after this policy completes. - * @return A {@link Mono} representing the HTTP response that will arrive asynchronously. - */ - @Override - public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { - if ("http".equals(context.getHttpRequest().getUrl().getProtocol())) { - return Mono.error(new RuntimeException("Token credentials require a URL using the HTTPS protocol scheme")); - } - return next.clone().process() - // Ignore body - .doOnNext(HttpResponse::close) - .map(res -> res.getHeaderValue(WWW_AUTHENTICATE)) - .map(header -> extractChallenge(header, BEARER_TOKEN_PREFIX)) - .flatMap(map -> { - cache.setRequest(new TokenRequestContext().addScopes(map.get("resource") + "/.default")); - return cache.getToken(); - }) - .flatMap(token -> { - context.getHttpRequest().setHeader(AUTHORIZATION, BEARER_TOKEN_PREFIX + token.getToken()); - return next.process(); - }); - } - - /** - * Extracts the challenge off the authentication header. - * - * @param authenticateHeader The authentication header containing all the challenges. + * @param authenticateHeader The authentication header containing the challenge. * @param authChallengePrefix The authentication challenge name. - * @return a challenge map. + * + * @return A challenge attributes map. */ - private static Map extractChallenge(String authenticateHeader, String authChallengePrefix) { - if (!isValidChallenge(authenticateHeader, authChallengePrefix)) { - return null; + private static Map extractChallengeAttributes(String authenticateHeader, + String authChallengePrefix) { + if (!isBearerChallenge(authenticateHeader, authChallengePrefix)) { + return Collections.emptyMap(); } - authenticateHeader = authenticateHeader.toLowerCase(Locale.ROOT).replace(authChallengePrefix.toLowerCase(Locale.ROOT), ""); - String[] challenges = authenticateHeader.split(", "); - Map challengeMap = new HashMap<>(); - for (String pair : challenges) { + authenticateHeader = + authenticateHeader.toLowerCase(Locale.ROOT).replace(authChallengePrefix.toLowerCase(Locale.ROOT), ""); + + String[] attributes = authenticateHeader.split(", "); + Map attributeMap = new HashMap<>(); + + for (String pair : attributes) { String[] keyValue = pair.split("="); - challengeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); + + attributeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); } - return challengeMap; + + return attributeMap; } /** @@ -93,10 +80,107 @@ private static Map extractChallenge(String authenticateHeader, S * * @param authenticateHeader The authentication header containing all the challenges. * @param authChallengePrefix The authentication challenge name. - * @return A boolean indicating tha challenge is valid or not. + * @return A boolean indicating if the challenge is a bearer challenge or not. */ - private static boolean isValidChallenge(String authenticateHeader, String authChallengePrefix) { + private static boolean isBearerChallenge(String authenticateHeader, String authChallengePrefix) { return (!CoreUtils.isNullOrEmpty(authenticateHeader) && authenticateHeader.toLowerCase(Locale.ROOT).startsWith(authChallengePrefix.toLowerCase(Locale.ROOT))); } + + @Override + public Mono authorizeRequest(HttpPipelineCallContext context) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + + // If this policy doesn't have an authorityScope cached try to get it from the static challenge cache. + if (this.scope == null) { + String authority = getRequestAuthority(request); + this.scope = SCOPE_CACHE.get(authority); + } + + if (this.scope != null) { + // We fetched the scope from the cache, but we have not initialized the scopes in the base yet. + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext); + } + + // The body is removed from the initial request because Key Vault supports other authentication schemes which + // also protect the body of the request. As a result, before we know the auth scheme we need to avoid sending + // an unprotected body to Key Vault. We don't currently support this enhanced auth scheme in the SDK but we + // still don't want to send any unprotected data to vaults which require it. + + // Do not overwrite previous contents if retrying after initial request failed (e.g. timeout). + if (!context.getData(KEY_VAULT_STASHED_CONTENT_KEY).isPresent()) { + if (request.getBody() != null) { + context.setData(KEY_VAULT_STASHED_CONTENT_KEY, request.getBody()); + context.setData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY, + request.getHeaders().getValue(CONTENT_LENGTH_HEADER)); + request.setHeader(CONTENT_LENGTH_HEADER, "0"); + request.setBody((Flux) null); + } + } + + return Mono.empty(); + }); + } + + @SuppressWarnings("unchecked") + @Override + public Mono authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + Optional contentOptional = context.getData(KEY_VAULT_STASHED_CONTENT_KEY); + Optional contentLengthOptional = context.getData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY); + + if (request.getBody() == null && contentOptional.isPresent() && contentLengthOptional.isPresent()) { + request.setBody((Flux) contentOptional.get()); + request.setHeader(CONTENT_LENGTH_HEADER, (String) contentLengthOptional.get()); + } + + String authority = getRequestAuthority(request); + Map challengeAttributes = + extractChallengeAttributes(response.getHeaderValue(WWW_AUTHENTICATE), BEARER_TOKEN_PREFIX); + String scope = challengeAttributes.get("resource"); + + if (scope != null) { + scope = scope + "/.default"; + } else { + scope = challengeAttributes.get("scope"); + } + + if (scope == null) { + this.scope = SCOPE_CACHE.get(authority); + + if (this.scope == null) { + return Mono.just(false); + } + } else { + this.scope = scope; + + SCOPE_CACHE.put(authority, this.scope); + } + + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext) + .then(Mono.just(true)); + }); + } + + static void clearCache() { + SCOPE_CACHE.clear(); + } + + private static String getRequestAuthority(HttpRequest request) { + URL url = request.getUrl(); + String authority = url.getAuthority(); + int port = url.getPort(); + + if (!authority.contains(":") && port > 0) { + authority = authority + ":" + port; + } + + return authority; + } } diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/ScopeTokenCache.java b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/ScopeTokenCache.java deleted file mode 100644 index 42de6b85c5b34..0000000000000 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/ScopeTokenCache.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.security.keyvault.certificates.implementation; - -import com.azure.core.credential.AccessToken; -import com.azure.core.credential.TokenRequestContext; -import reactor.core.publisher.FluxSink; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Function; - -/** - * A token cache that supports caching a token and refreshing it. - */ -class ScopeTokenCache { - private static final int REFRESH_TIMEOUT_SECONDS = 30; - - private final AtomicBoolean wip; - private AccessToken cache; - private final ReplayProcessor emitterProcessor = ReplayProcessor.create(1); - private final FluxSink sink = emitterProcessor.sink(FluxSink.OverflowStrategy.BUFFER); - private final Function> getNew; - private TokenRequestContext request; - - /** - * Creates an instance of RefreshableTokenCredential with default scheme "Bearer". - * - * @param getNew a method to get a new token - */ - ScopeTokenCache(Function> getNew) { - this.wip = new AtomicBoolean(false); - this.getNew = getNew; - } - - void setRequest(TokenRequestContext request) { - this.request = request; - } - - /** - * Asynchronously get a token from either the cache or replenish the cache with a new token. - * @return a Publisher that emits an AccessToken - */ - Mono getToken() { - if (cache != null && !cache.isExpired()) { - return Mono.just(cache); - } - return Mono.defer(() -> { - if (!wip.getAndSet(true)) { - return getNew.apply(request).doOnNext(ac -> cache = ac) - .doOnNext(sink::next) - .doOnError(sink::error) - .doOnTerminate(() -> wip.set(false)); - } else { - return emitterProcessor.next(); - } - }); - } -} diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTest.java b/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTest.java index be99344ecd019..4058f9550699f 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTest.java @@ -51,9 +51,8 @@ protected void beforeTest() { beforeTestSetup(); } - private void createCertificateClient(HttpClient httpClient, - CertificateServiceVersion serviceVersion) { - HttpPipeline httpPipeline = getHttpPipeline(httpClient, serviceVersion); + private void createCertificateClient(HttpClient httpClient, CertificateServiceVersion serviceVersion) { + HttpPipeline httpPipeline = getHttpPipeline(httpClient); CertificateAsyncClient asyncClient = spy(new CertificateClientBuilder() .vaultUrl(getEndpoint()) .pipeline(httpPipeline) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTestBase.java b/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTestBase.java index 1c447993dd55d..05b58567a57b7 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/test/java/com/azure/security/keyvault/certificates/CertificateClientTestBase.java @@ -12,7 +12,6 @@ import com.azure.core.http.policy.HttpPipelinePolicy; import com.azure.core.http.policy.HttpPolicyProviders; import com.azure.core.http.policy.RetryPolicy; -import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.http.policy.HttpLoggingPolicy; import com.azure.core.http.policy.HttpLogOptions; import com.azure.core.http.policy.HttpLogDetailLevel; @@ -29,6 +28,7 @@ import java.time.Duration; import java.util.stream.Stream; +import com.azure.security.keyvault.certificates.implementation.KeyVaultCredentialPolicy; import com.azure.security.keyvault.certificates.models.CertificateContact; import com.azure.security.keyvault.certificates.models.CertificateIssuer; import com.azure.security.keyvault.certificates.models.CertificateContentType; @@ -83,7 +83,7 @@ protected String getTestName() { void beforeTestSetup() { } - HttpPipeline getHttpPipeline(HttpClient httpClient, CertificateServiceVersion serviceVersion) { + HttpPipeline getHttpPipeline(HttpClient httpClient) { TokenCredential credential = null; if (!interceptorManager.isPlaybackMode()) { @@ -102,13 +102,13 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, CertificateServiceVersion se // Closest to API goes first, closest to wire goes last. final List policies = new ArrayList<>(); - policies.add(new UserAgentPolicy(SDK_NAME, SDK_VERSION, - Configuration.getGlobalConfiguration().clone(), serviceVersion)); + policies.add( + new UserAgentPolicy(null, SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone())); HttpPolicyProviders.addBeforeRetryPolicies(policies); RetryStrategy strategy = new ExponentialBackoff(5, Duration.ofSeconds(2), Duration.ofSeconds(16)); policies.add(new RetryPolicy(strategy)); if (credential != null) { - policies.add(new BearerTokenAuthenticationPolicy(credential, CertificateAsyncClient.KEY_VAULT_SCOPE)); + policies.add(new KeyVaultCredentialPolicy(credential)); } HttpPolicyProviders.addAfterRetryPolicies(policies); policies.add(new HttpLoggingPolicy(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))); @@ -571,7 +571,7 @@ static void assertRestException(Runnable exceptionThrower, Class expectedExceptionType, int expectedStatusCode) { + static void assertRestException(HttpResponseException exception, + Class expectedExceptionType, + int expectedStatusCode) { assertEquals(expectedExceptionType, exception.getClass()); - assertEquals(expectedStatusCode, ((HttpResponseException) exception).getResponse().getStatusCode()); + assertEquals(expectedStatusCode, exception.getResponse().getStatusCode()); } /** diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyAsyncClient.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyAsyncClient.java index 7923f5047e188..27cf24cb12340 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyAsyncClient.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyAsyncClient.java @@ -71,8 +71,6 @@ public final class KeyAsyncClient { static final String ACCEPT_LANGUAGE = "en-US"; static final int DEFAULT_MAX_PAGE_RESULTS = 25; static final String CONTENT_TYPE_HEADER_VALUE = "application/json"; - static final String KEY_VAULT_SCOPE = "https://vault.azure.net/.default"; - static final String MHSM_SCOPE = "https://managedhsm.azure.net/.default"; // Please see here // for more information on Azure resource provider namespaces. private static final String KEYVAULT_TRACING_NAMESPACE_VALUE = "Microsoft.KeyVault"; diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyClientBuilder.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyClientBuilder.java index 0267c7a1b7ead..90917e359cbcd 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyClientBuilder.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/KeyClientBuilder.java @@ -178,7 +178,6 @@ public KeyAsyncClient buildAsyncClient() { policies.add(retryPolicy == null ? new RetryPolicy() : retryPolicy); policies.add(new KeyVaultCredentialPolicy(credential)); - // Add per retry additional policies. policies.addAll(perRetryPolicies); diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/cryptography/CryptographyAsyncClient.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/cryptography/CryptographyAsyncClient.java index 96641bc2acdb6..9ce8c54fb2da4 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/cryptography/CryptographyAsyncClient.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/cryptography/CryptographyAsyncClient.java @@ -60,8 +60,6 @@ */ @ServiceClient(builder = CryptographyClientBuilder.class, isAsync = true, serviceInterfaces = CryptographyService.class) public class CryptographyAsyncClient { - static final String KEY_VAULT_SCOPE = "https://vault.azure.net/.default"; - static final String MHSM_SCOPE = "https://managedhsm.azure.net/.default"; static final String SECRETS_COLLECTION = "secrets"; // Please see here // for more information on Azure resource provider namespaces. diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyVaultCredentialPolicy.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyVaultCredentialPolicy.java index 74987672d905f..df33c82db80f3 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyVaultCredentialPolicy.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyVaultCredentialPolicy.java @@ -1,93 +1,78 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. - package com.azure.security.keyvault.keys.implementation; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; import com.azure.core.http.HttpPipelineCallContext; -import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpRequest; import com.azure.core.http.HttpResponse; -import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.util.CoreUtils; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** - * A policy that authenticates requests with Azure Key Vault service. The content added by this policy - * is leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. + * A policy that authenticates requests with the Azure Key Vault service. The content added by this policy is + * leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. * * @see TokenCredential */ -public final class KeyVaultCredentialPolicy implements HttpPipelinePolicy { - private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; +public class KeyVaultCredentialPolicy extends BearerTokenAuthenticationPolicy { private static final String BEARER_TOKEN_PREFIX = "Bearer "; - private static final String AUTHORIZATION = "Authorization"; - private final ScopeTokenCache cache; + private static final String CONTENT_LENGTH_HEADER = "Content-Length"; + private static final String KEY_VAULT_STASHED_CONTENT_KEY = "KeyVaultCredentialPolicyStashedBody"; + private static final String KEY_VAULT_STASHED_CONTENT_LENGTH_KEY = "KeyVaultCredentialPolicyStashedContentLength"; + private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; + private static final ConcurrentMap SCOPE_CACHE = new ConcurrentHashMap<>(); + private String scope; /** - * Creates KeyVaultCredentialPolicy. + * Creates a {@link KeyVaultCredentialPolicy}. * - * @param credential the token credential to authenticate the request + * @param credential The token credential to authenticate the request. */ public KeyVaultCredentialPolicy(TokenCredential credential) { - Objects.requireNonNull(credential, "'credential' cannot be null."); - this.cache = new ScopeTokenCache((request) -> credential.getToken(request)); + super(credential); } /** - * Adds the required header to authenticate a request to Azure Key Vault service. + * Extracts attributes off the bearer challenge in the authentication header. * - * @param context The request context - * @param next The next HTTP pipeline policy to process the {@code context's} request after this policy - * completes. - * @return A {@link Mono} representing the HTTP response that will arrive asynchronously. - */ - @Override - public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { - if ("http".equals(context.getHttpRequest().getUrl().getProtocol())) { - return Mono.error(new RuntimeException("Token credentials require a URL using the HTTPS protocol scheme")); - } - return next.clone().process() - // Ignore body - .doOnNext(HttpResponse::close) - .map(res -> res.getHeaderValue(WWW_AUTHENTICATE)) - .map(header -> extractChallenge(header, BEARER_TOKEN_PREFIX)) - .flatMap(map -> { - cache.setTokenRequest(new TokenRequestContext().addScopes(map.get("resource") + "/.default")); - return cache.getToken(); - }) - .flatMap(token -> { - context.getHttpRequest().setHeader(AUTHORIZATION, BEARER_TOKEN_PREFIX + token.getToken()); - return next.process(); - }); - } - - /** - * Extracts the challenge off the authentication header. - * - * @param authenticateHeader The authentication header containing all the challenges. + * @param authenticateHeader The authentication header containing the challenge. * @param authChallengePrefix The authentication challenge name. - * @return a challenge map. + * + * @return A challenge attributes map. */ - private static Map extractChallenge(String authenticateHeader, String authChallengePrefix) { - if (!isValidChallenge(authenticateHeader, authChallengePrefix)) { - return null; + private static Map extractChallengeAttributes(String authenticateHeader, + String authChallengePrefix) { + if (!isBearerChallenge(authenticateHeader, authChallengePrefix)) { + return Collections.emptyMap(); } + authenticateHeader = authenticateHeader.toLowerCase(Locale.ROOT).replace(authChallengePrefix.toLowerCase(Locale.ROOT), ""); - String[] challenges = authenticateHeader.split(", "); - Map challengeMap = new HashMap<>(); - for (String pair : challenges) { + String[] attributes = authenticateHeader.split(", "); + Map attributeMap = new HashMap<>(); + + for (String pair : attributes) { String[] keyValue = pair.split("="); - challengeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); + + attributeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); } - return challengeMap; + + return attributeMap; } /** @@ -95,10 +80,107 @@ private static Map extractChallenge(String authenticateHeader, S * * @param authenticateHeader The authentication header containing all the challenges. * @param authChallengePrefix The authentication challenge name. - * @return A boolean indicating tha challenge is valid or not. + * @return A boolean indicating if the challenge is a bearer challenge or not. */ - private static boolean isValidChallenge(String authenticateHeader, String authChallengePrefix) { + private static boolean isBearerChallenge(String authenticateHeader, String authChallengePrefix) { return (!CoreUtils.isNullOrEmpty(authenticateHeader) && authenticateHeader.toLowerCase(Locale.ROOT).startsWith(authChallengePrefix.toLowerCase(Locale.ROOT))); } + + @Override + public Mono authorizeRequest(HttpPipelineCallContext context) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + + // If this policy doesn't have an authorityScope cached try to get it from the static challenge cache. + if (this.scope == null) { + String authority = getRequestAuthority(request); + this.scope = SCOPE_CACHE.get(authority); + } + + if (this.scope != null) { + // We fetched the scope from the cache, but we have not initialized the scopes in the base yet. + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext); + } + + // The body is removed from the initial request because Key Vault supports other authentication schemes which + // also protect the body of the request. As a result, before we know the auth scheme we need to avoid sending + // an unprotected body to Key Vault. We don't currently support this enhanced auth scheme in the SDK but we + // still don't want to send any unprotected data to vaults which require it. + + // Do not overwrite previous contents if retrying after initial request failed (e.g. timeout). + if (!context.getData(KEY_VAULT_STASHED_CONTENT_KEY).isPresent()) { + if (request.getBody() != null) { + context.setData(KEY_VAULT_STASHED_CONTENT_KEY, request.getBody()); + context.setData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY, + request.getHeaders().getValue(CONTENT_LENGTH_HEADER)); + request.setHeader(CONTENT_LENGTH_HEADER, "0"); + request.setBody((Flux) null); + } + } + + return Mono.empty(); + }); + } + + @SuppressWarnings("unchecked") + @Override + public Mono authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + Optional contentOptional = context.getData(KEY_VAULT_STASHED_CONTENT_KEY); + Optional contentLengthOptional = context.getData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY); + + if (request.getBody() == null && contentOptional.isPresent() && contentLengthOptional.isPresent()) { + request.setBody((Flux) contentOptional.get()); + request.setHeader(CONTENT_LENGTH_HEADER, (String) contentLengthOptional.get()); + } + + String authority = getRequestAuthority(request); + Map challengeAttributes = + extractChallengeAttributes(response.getHeaderValue(WWW_AUTHENTICATE), BEARER_TOKEN_PREFIX); + String scope = challengeAttributes.get("resource"); + + if (scope != null) { + scope = scope + "/.default"; + } else { + scope = challengeAttributes.get("scope"); + } + + if (scope == null) { + this.scope = SCOPE_CACHE.get(authority); + + if (this.scope == null) { + return Mono.just(false); + } + } else { + this.scope = scope; + + SCOPE_CACHE.put(authority, this.scope); + } + + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext) + .then(Mono.just(true)); + }); + } + + static void clearCache() { + SCOPE_CACHE.clear(); + } + + private static String getRequestAuthority(HttpRequest request) { + URL url = request.getUrl(); + String authority = url.getAuthority(); + int port = url.getPort(); + + if (!authority.contains(":") && port > 0) { + authority = authority + ":" + port; + } + + return authority; + } } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/ScopeTokenCache.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/ScopeTokenCache.java deleted file mode 100644 index c46bcb5127d39..0000000000000 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/ScopeTokenCache.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.security.keyvault.keys.implementation; - -import com.azure.core.credential.AccessToken; -import com.azure.core.credential.TokenRequestContext; -import reactor.core.publisher.FluxSink; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Function; - -/** - * A token cache that supports caching a token and refreshing it. - */ -class ScopeTokenCache { - private static final int REFRESH_TIMEOUT_SECONDS = 30; - - private final AtomicBoolean wip; - private AccessToken cache; - private final ReplayProcessor emitterProcessor = ReplayProcessor.create(1); - private final FluxSink sink = emitterProcessor.sink(FluxSink.OverflowStrategy.BUFFER); - private final Function> getNew; - private TokenRequestContext request; - - /** - * Creates an instance of RefreshableTokenCredential with default scheme "Bearer". - * - * @param getNew a method to get a new token - */ - ScopeTokenCache(Function> getNew) { - this.wip = new AtomicBoolean(false); - this.getNew = getNew; - } - - public void setTokenRequest(TokenRequestContext request) { - this.request = request; - } - - /** - * Asynchronously get a token from either the cache or replenish the cache with a new token. - * @return a Publisher that emits an AccessToken - */ - public Mono getToken() { - if (cache != null && !cache.isExpired()) { - return Mono.just(cache); - } - return Mono.defer(() -> { - if (!wip.getAndSet(true)) { - return getNew.apply(request).doOnNext(ac -> cache = ac) - .doOnNext(sink::next) - .doOnError(sink::error) - .doOnTerminate(() -> wip.set(false)); - } else { - return emitterProcessor.next(); - } - }); - } -} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/samples/java/com/azure/security/keyvault/keys/KeyAsyncClientJavaDocCodeSnippets.java b/sdk/keyvault/azure-security-keyvault-keys/src/samples/java/com/azure/security/keyvault/keys/KeyAsyncClientJavaDocCodeSnippets.java index c9a56623bc66c..24df042033581 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/samples/java/com/azure/security/keyvault/keys/KeyAsyncClientJavaDocCodeSnippets.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/samples/java/com/azure/security/keyvault/keys/KeyAsyncClientJavaDocCodeSnippets.java @@ -10,8 +10,8 @@ import com.azure.core.http.policy.HttpLogDetailLevel; import com.azure.core.http.policy.HttpLogOptions; import com.azure.core.http.policy.RetryPolicy; -import com.azure.security.keyvault.keys.implementation.KeyVaultCredentialPolicy; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.azure.security.keyvault.keys.implementation.KeyVaultCredentialPolicy; import com.azure.security.keyvault.keys.models.CreateEcKeyOptions; import com.azure.security.keyvault.keys.models.CreateKeyOptions; import com.azure.security.keyvault.keys.models.CreateOctKeyOptions; diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyAsyncClientTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyAsyncClientTest.java index e9d667677826c..8ad1a6f8d45d2 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyAsyncClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyAsyncClientTest.java @@ -46,7 +46,7 @@ protected void beforeTest() { } protected void createKeyAsyncClient(HttpClient httpClient, KeyServiceVersion serviceVersion) { - HttpPipeline httpPipeline = getHttpPipeline(httpClient, serviceVersion); + HttpPipeline httpPipeline = getHttpPipeline(httpClient); client = spy(new KeyClientBuilder() .vaultUrl(getEndpoint()) .pipeline(httpPipeline) @@ -516,7 +516,7 @@ public void listKeys(HttpClient httpClient, KeyServiceVersion serviceVersion) { @MethodSource("getTestParameters") public void releaseKey(HttpClient httpClient, KeyServiceVersion serviceVersion) { // TODO: Remove assumption once Key Vault allows for creating exportable keys. - Assumptions.assumeTrue(isManagedHsmTest); + Assumptions.assumeTrue(isManagedHsmTest || getTestMode() == TestMode.PLAYBACK); createKeyAsyncClient(httpClient, serviceVersion); releaseKeyRunner((keyToRelease, attestationUrl) -> { diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTest.java index 15ad735bcbd84..b8443d9a58764 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTest.java @@ -7,8 +7,6 @@ import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.http.HttpClient; import com.azure.core.http.HttpPipeline; -import com.azure.core.http.policy.HttpLogDetailLevel; -import com.azure.core.http.policy.HttpLogOptions; import com.azure.core.test.TestMode; import com.azure.core.util.polling.PollResponse; import com.azure.core.util.polling.SyncPoller; @@ -46,12 +44,11 @@ protected void beforeTest() { } protected void createKeyClient(HttpClient httpClient, KeyServiceVersion serviceVersion) { - HttpPipeline httpPipeline = getHttpPipeline(httpClient, serviceVersion); + HttpPipeline httpPipeline = getHttpPipeline(httpClient); KeyAsyncClient asyncClient = spy(new KeyClientBuilder() .vaultUrl(getEndpoint()) .pipeline(httpPipeline) .serviceVersion(serviceVersion) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) .buildAsyncClient()); if (interceptorManager.isPlaybackMode()) { @@ -469,7 +466,7 @@ public void listKeyVersions(HttpClient httpClient, KeyServiceVersion serviceVers @MethodSource("getTestParameters") public void releaseKey(HttpClient httpClient, KeyServiceVersion serviceVersion) { // TODO: Remove assumption once Key Vault allows for creating exportable keys. - Assumptions.assumeTrue(isManagedHsmTest); + Assumptions.assumeTrue(isManagedHsmTest || getTestMode() == TestMode.PLAYBACK); createKeyClient(httpClient, serviceVersion); releaseKeyRunner((keyToRelease, attestationUrl) -> { diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTestBase.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTestBase.java index d7b878adc623b..b763d7c61c070 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/KeyClientTestBase.java @@ -11,7 +11,6 @@ import com.azure.core.http.HttpPipelineBuilder; import com.azure.core.http.HttpRequest; import com.azure.core.http.HttpResponse; -import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.http.policy.ExponentialBackoff; import com.azure.core.http.policy.HttpLogDetailLevel; import com.azure.core.http.policy.HttpLogOptions; @@ -30,11 +29,23 @@ import com.azure.core.util.serializer.SerializerAdapter; import com.azure.core.util.serializer.SerializerEncoding; import com.azure.identity.ClientSecretCredentialBuilder; +import com.azure.security.keyvault.keys.implementation.KeyVaultCredentialPolicy; +import com.azure.security.keyvault.keys.models.CreateKeyOptions; +import com.azure.security.keyvault.keys.models.CreateOctKeyOptions; +import com.azure.security.keyvault.keys.models.CreateRsaKeyOptions; +import com.azure.security.keyvault.keys.models.KeyReleasePolicy; +import com.azure.security.keyvault.keys.models.KeyType; +import com.azure.security.keyvault.keys.models.KeyVaultKey; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.provider.Arguments; import java.io.IOException; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -42,22 +53,9 @@ import java.util.Map; import java.util.Objects; import java.util.UUID; -import java.util.stream.Stream; - -import com.azure.security.keyvault.keys.models.CreateKeyOptions; -import com.azure.security.keyvault.keys.models.CreateOctKeyOptions; -import com.azure.security.keyvault.keys.models.CreateRsaKeyOptions; -import com.azure.security.keyvault.keys.models.KeyReleasePolicy; -import com.azure.security.keyvault.keys.models.KeyType; -import com.azure.security.keyvault.keys.models.KeyVaultKey; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.junit.jupiter.api.Test; - -import java.time.OffsetDateTime; -import java.time.ZoneOffset; import java.util.function.BiConsumer; import java.util.function.Consumer; -import org.junit.jupiter.params.provider.Arguments; +import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -81,7 +79,7 @@ protected String getTestName() { void beforeTestSetup() { } - HttpPipeline getHttpPipeline(HttpClient httpClient, KeyServiceVersion serviceVersion) { + HttpPipeline getHttpPipeline(HttpClient httpClient) { TokenCredential credential = null; if (!interceptorManager.isPlaybackMode()) { @@ -100,15 +98,14 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, KeyServiceVersion serviceVer // Closest to API goes first, closest to wire goes last. final List policies = new ArrayList<>(); - policies.add(new UserAgentPolicy(SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone(), serviceVersion)); + policies.add(new UserAgentPolicy(null, SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone())); HttpPolicyProviders.addBeforeRetryPolicies(policies); RetryStrategy strategy = new ExponentialBackoff(5, Duration.ofSeconds(2), Duration.ofSeconds(16)); policies.add(new RetryPolicy(strategy)); if (credential != null) { - policies.add(new BearerTokenAuthenticationPolicy(credential, - isManagedHsmTest ? KeyAsyncClient.MHSM_SCOPE : KeyAsyncClient.KEY_VAULT_SCOPE)); + policies.add(new KeyVaultCredentialPolicy(credential)); } HttpPolicyProviders.addAfterRetryPolicies(policies); diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientManagedHsmTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientManagedHsmTest.java index df9b24153948a..b144b5bfc52e8 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientManagedHsmTest.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientManagedHsmTest.java @@ -13,7 +13,7 @@ public CryptographyClientManagedHsmTest() { @Override protected void beforeTest() { - Assumptions.assumeTrue(isManagedHsmTest && getTestMode() != TestMode.PLAYBACK); + Assumptions.assumeTrue(isManagedHsmTest || getTestMode() == TestMode.PLAYBACK); super.beforeTest(); } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTest.java index e06ed61f29b7d..915e1fe58be2e 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTest.java @@ -49,15 +49,16 @@ protected void beforeTest() { } private void initializeKeyClient(HttpClient httpClient) { - pipeline = getHttpPipeline(httpClient, KeyServiceVersion.getLatest()); + pipeline = getHttpPipeline(httpClient); client = new KeyClientBuilder() .pipeline(pipeline) .vaultUrl(getEndpoint()) + .serviceVersion(KeyServiceVersion.getLatest()) .buildClient(); } private CryptographyClient initializeCryptographyClient(String keyId, HttpClient httpClient, CryptographyServiceVersion serviceVersion) { - pipeline = getHttpPipeline(httpClient, serviceVersion); + pipeline = getHttpPipeline(httpClient); return new CryptographyClientBuilder() .pipeline(pipeline) .serviceVersion(serviceVersion) diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTestBase.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTestBase.java index 100eab91bd5b1..00da0e6c68dc9 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/CryptographyClientTestBase.java @@ -8,7 +8,6 @@ import com.azure.core.http.HttpClient; import com.azure.core.http.HttpPipeline; import com.azure.core.http.HttpPipelineBuilder; -import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.http.policy.ExponentialBackoff; import com.azure.core.http.policy.HttpLogDetailLevel; import com.azure.core.http.policy.HttpLogOptions; @@ -22,13 +21,13 @@ import com.azure.core.test.TestMode; import com.azure.core.util.Configuration; import com.azure.core.util.Context; -import com.azure.core.util.ServiceVersion; import com.azure.identity.ClientSecretCredentialBuilder; import com.azure.security.keyvault.keys.cryptography.models.DecryptParameters; import com.azure.security.keyvault.keys.cryptography.models.DecryptResult; import com.azure.security.keyvault.keys.cryptography.models.EncryptParameters; import com.azure.security.keyvault.keys.cryptography.models.EncryptResult; import com.azure.security.keyvault.keys.cryptography.models.EncryptionAlgorithm; +import com.azure.security.keyvault.keys.implementation.KeyVaultCredentialPolicy; import com.azure.security.keyvault.keys.models.JsonWebKey; import com.azure.security.keyvault.keys.models.KeyOperation; import org.junit.jupiter.api.Test; @@ -69,7 +68,7 @@ protected String getTestName() { void beforeTestSetup() { } - HttpPipeline getHttpPipeline(HttpClient httpClient, ServiceVersion serviceVersion) { + HttpPipeline getHttpPipeline(HttpClient httpClient) { TokenCredential credential = null; if (!interceptorManager.isPlaybackMode()) { @@ -89,14 +88,13 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, ServiceVersion serviceVersio // Closest to API goes first, closest to wire goes last. final List policies = new ArrayList<>(); - policies.add(new UserAgentPolicy(SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone(), serviceVersion)); + policies.add(new UserAgentPolicy(null, SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone())); HttpPolicyProviders.addBeforeRetryPolicies(policies); RetryStrategy strategy = new ExponentialBackoff(5, Duration.ofSeconds(2), Duration.ofSeconds(16)); policies.add(new RetryPolicy(strategy)); if (credential != null) { - policies.add(new BearerTokenAuthenticationPolicy(credential, - isManagedHsmTest ? CryptographyAsyncClient.MHSM_SCOPE : CryptographyAsyncClient.KEY_VAULT_SCOPE)); + policies.add(new KeyVaultCredentialPolicy(credential)); } HttpPolicyProviders.addAfterRetryPolicies(policies); diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientManagedHsmTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientManagedHsmTest.java new file mode 100644 index 0000000000000..656d475767e82 --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientManagedHsmTest.java @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +package com.azure.security.keyvault.keys.cryptography; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpPipeline; +import com.azure.core.test.TestMode; +import com.azure.core.util.Configuration; +import com.azure.security.keyvault.keys.KeyClient; +import com.azure.security.keyvault.keys.KeyClientBuilder; +import com.azure.security.keyvault.keys.KeyServiceVersion; +import com.azure.security.keyvault.keys.models.JsonWebKey; +import com.azure.security.keyvault.keys.models.KeyOperation; +import com.azure.security.keyvault.keys.models.KeyVaultKey; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; + +import java.util.Arrays; + +import static com.azure.security.keyvault.keys.cryptography.TestHelper.DISPLAY_NAME_WITH_ARGUMENTS; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +public class KeyEncryptionKeyClientManagedHsmTest extends KeyEncryptionKeyClientTest { + private KeyVaultKey keyVaultKey; + + public KeyEncryptionKeyClientManagedHsmTest() { + this.isManagedHsmTest = Configuration.getGlobalConfiguration().get("AZURE_MANAGEDHSM_ENDPOINT") != null; + } + + @Override + protected void beforeTest() { + Assumptions.assumeTrue(isManagedHsmTest || getTestMode() == TestMode.PLAYBACK); + + super.beforeTest(); + } + + private void setupKeyAndClient(JsonWebKey jsonWebKey, HttpClient httpClient, CryptographyServiceVersion serviceVersion) { + HttpPipeline pipeline = getHttpPipeline(httpClient); + + if (keyVaultKey == null) { + KeyClient keyClient = new KeyClientBuilder() + .vaultUrl(getEndpoint()) + .pipeline(pipeline) + .serviceVersion(KeyServiceVersion.valueOf(serviceVersion.name())) + .buildClient(); + keyVaultKey = keyClient.importKey(testResourceNamer.randomName("symmetricKey", 20), jsonWebKey); + keyEncryptionKey = new KeyEncryptionKeyClientBuilder() + .pipeline(pipeline) + .serviceVersion(serviceVersion) + .buildKeyEncryptionKey(keyVaultKey.getId()); + } + } + + @ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS) + @MethodSource("com.azure.security.keyvault.keys.cryptography.TestHelper#getTestParameters") + @Override + public void wrapUnwrapSymmetricAK128(HttpClient httpClient, CryptographyServiceVersion serviceVersion) { + byte[] kek = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F}; + SecretKey secretKeySpec = new SecretKeySpec(kek, "AES"); + JsonWebKey jsonWebKey = + JsonWebKey.fromAes(secretKeySpec, Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)); + + setupKeyAndClient(jsonWebKey, httpClient, serviceVersion); + + byte[] cek = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE, (byte) 0xFF}; + byte[] encrypted = keyEncryptionKey.wrapKey("A128KW", cek); + byte[] ek = {0x1F, (byte) 0xA6, (byte) 0x8B, 0x0A, (byte) 0x81, 0x12, (byte) 0xB4, 0x47, (byte) 0xAE, (byte) 0xF3, 0x4B, (byte) 0xD8, (byte) 0xFB, 0x5A, 0x7B, (byte) 0x82, (byte) 0x9D, 0x3E, (byte) 0x86, 0x23, 0x71, (byte) 0xD2, (byte) 0xCF, (byte) 0xE5}; + + assertArrayEquals(ek, encrypted); + + byte[] dek = keyEncryptionKey.unwrapKey("A128KW", ek); + + assertArrayEquals(dek, cek); + } + + @ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS) + @MethodSource("com.azure.security.keyvault.keys.cryptography.TestHelper#getTestParameters") + @Override + public void wrapUnwrapSymmetricAK192(HttpClient httpClient, CryptographyServiceVersion serviceVersion) { + byte[] kek = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17}; + SecretKey secretKeySpec = new SecretKeySpec(kek, "AES"); + JsonWebKey jsonWebKey = + JsonWebKey.fromAes(secretKeySpec, Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)); + + setupKeyAndClient(jsonWebKey, httpClient, serviceVersion); + + byte[] cek = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE, (byte) 0xFF}; + byte[] encrypted = keyEncryptionKey.wrapKey("A192KW", cek); + byte[] ek = {(byte) 0x96, 0x77, (byte) 0x8B, 0x25, (byte) 0xAE, 0x6C, (byte) 0xA4, 0x35, (byte) 0xF9, 0x2B, 0x5B, (byte) 0x97, (byte) 0xC0, 0x50, (byte) 0xAE, (byte) 0xD2, 0x46, (byte) 0x8A, (byte) 0xB8, (byte) 0xA1, 0x7A, (byte) 0xD8, 0x4E, 0x5D}; + + assertArrayEquals(ek, encrypted); + + byte[] dek = keyEncryptionKey.unwrapKey("A192KW", ek); + + assertArrayEquals(dek, cek); + } +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTest.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTest.java index a7d480c090836..992db23a5a541 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTest.java @@ -22,7 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; public class KeyEncryptionKeyClientTest extends KeyEncryptionKeyClientTestBase { - private KeyEncryptionKey client; + protected KeyEncryptionKey keyEncryptionKey; private SecretKey secretKey; @Override @@ -31,13 +31,14 @@ protected void beforeTest() { } private void setupSecretKeyAndClient(byte[] kek, HttpClient httpClient, CryptographyServiceVersion serviceVersion) { - HttpPipeline pipeline = getHttpPipeline(httpClient, serviceVersion); + HttpPipeline pipeline = getHttpPipeline(httpClient); if (secretKey == null) { CryptographyServiceClient serviceClient = new CryptographyServiceClient(getEndpoint(), - RestProxy.create(CryptographyService.class, pipeline), CryptographyServiceVersion.getLatest()); - secretKey = serviceClient.setSecretKey(new SecretKey("secretKey", Base64.getEncoder().encodeToString(kek)), Context.NONE).block().getValue(); - client = new KeyEncryptionKeyClientBuilder() + RestProxy.create(CryptographyService.class, pipeline), serviceVersion); + secretKey = serviceClient.setSecretKey(new SecretKey(testResourceNamer.randomName("secretKey", 20), + Base64.getEncoder().encodeToString(kek)), Context.NONE).block().getValue(); + keyEncryptionKey = new KeyEncryptionKeyClientBuilder() .pipeline(pipeline) .serviceVersion(serviceVersion) .buildKeyEncryptionKey(secretKey.getId()); @@ -60,12 +61,12 @@ public void wrapUnwrapSymmetricAK128(HttpClient httpClient, CryptographyServiceV setupSecretKeyAndClient(kek, httpClient, serviceVersion); byte[] cek = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE, (byte) 0xFF}; - byte[] encrypted = client.wrapKey("A128KW", cek); + byte[] encrypted = keyEncryptionKey.wrapKey("A128KW", cek); byte[] ek = {0x1F, (byte) 0xA6, (byte) 0x8B, 0x0A, (byte) 0x81, 0x12, (byte) 0xB4, 0x47, (byte) 0xAE, (byte) 0xF3, 0x4B, (byte) 0xD8, (byte) 0xFB, 0x5A, 0x7B, (byte) 0x82, (byte) 0x9D, 0x3E, (byte) 0x86, 0x23, 0x71, (byte) 0xD2, (byte) 0xCF, (byte) 0xE5}; assertArrayEquals(ek, encrypted); - byte[] dek = client.unwrapKey("A128KW", ek); + byte[] dek = keyEncryptionKey.unwrapKey("A128KW", ek); assertArrayEquals(dek, cek); } @@ -93,12 +94,12 @@ public void wrapUnwrapSymmetricAK192(HttpClient httpClient, CryptographyServiceV setupSecretKeyAndClient(kek, httpClient, serviceVersion); byte[] cek = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE, (byte) 0xFF}; - byte[] encrypted = client.wrapKey("A192KW", cek); + byte[] encrypted = keyEncryptionKey.wrapKey("A192KW", cek); byte[] ek = {(byte) 0x96, 0x77, (byte) 0x8B, 0x25, (byte) 0xAE, 0x6C, (byte) 0xA4, 0x35, (byte) 0xF9, 0x2B, 0x5B, (byte) 0x97, (byte) 0xC0, 0x50, (byte) 0xAE, (byte) 0xD2, 0x46, (byte) 0x8A, (byte) 0xB8, (byte) 0xA1, 0x7A, (byte) 0xD8, 0x4E, 0x5D}; assertArrayEquals(ek, encrypted); - byte[] dek = client.unwrapKey("A192KW", ek); + byte[] dek = keyEncryptionKey.unwrapKey("A192KW", ek); assertArrayEquals(dek, cek); } @@ -108,14 +109,14 @@ public void wrapUnwrapSymmetricAK192Local() { byte[] kek = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17}; JsonWebKey localKey = JsonWebKey.fromAes(new SecretKeySpec(kek, "AES"), Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)).setId("testKey"); - client = setupKeyEncryptionKey(localKey); + keyEncryptionKey = setupKeyEncryptionKey(localKey); byte[] cek = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE, (byte) 0xFF}; - byte[] encrypted = client.wrapKey("A192KW", cek); + byte[] encrypted = keyEncryptionKey.wrapKey("A192KW", cek); byte[] ek = {(byte) 0x96, 0x77, (byte) 0x8B, 0x25, (byte) 0xAE, 0x6C, (byte) 0xA4, 0x35, (byte) 0xF9, 0x2B, 0x5B, (byte) 0x97, (byte) 0xC0, 0x50, (byte) 0xAE, (byte) 0xD2, 0x46, (byte) 0x8A, (byte) 0xB8, (byte) 0xA1, 0x7A, (byte) 0xD8, 0x4E, 0x5D}; assertArrayEquals(ek, encrypted); - byte[] dek = client.unwrapKey("A192KW", ek); + byte[] dek = keyEncryptionKey.unwrapKey("A192KW", ek); assertArrayEquals(dek, cek); } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTestBase.java b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTestBase.java index 39178a5ebacf6..a7638d57d63ca 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/java/com/azure/security/keyvault/keys/cryptography/KeyEncryptionKeyClientTestBase.java @@ -8,7 +8,6 @@ import com.azure.core.http.HttpClient; import com.azure.core.http.HttpPipeline; import com.azure.core.http.HttpPipelineBuilder; -import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.http.policy.ExponentialBackoff; import com.azure.core.http.policy.HttpLogDetailLevel; import com.azure.core.http.policy.HttpLogOptions; @@ -22,6 +21,7 @@ import com.azure.core.test.TestMode; import com.azure.core.util.Configuration; import com.azure.identity.ClientSecretCredentialBuilder; +import com.azure.security.keyvault.keys.implementation.KeyVaultCredentialPolicy; import org.junit.jupiter.api.Test; import java.time.Duration; @@ -35,6 +35,7 @@ public abstract class KeyEncryptionKeyClientTestBase extends TestBase { private static final String SDK_NAME = "client_name"; private static final String SDK_VERSION = "client_version"; + protected boolean isManagedHsmTest = false; @Override protected String getTestName() { @@ -44,7 +45,7 @@ protected String getTestName() { void beforeTestSetup() { } - HttpPipeline getHttpPipeline(HttpClient httpClient, CryptographyServiceVersion serviceVersion) { + HttpPipeline getHttpPipeline(HttpClient httpClient) { TokenCredential credential = null; if (!interceptorManager.isPlaybackMode()) { @@ -64,12 +65,12 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, CryptographyServiceVersion s // Closest to API goes first, closest to wire goes last. final List policies = new ArrayList<>(); policies.add( - new UserAgentPolicy(SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone(), serviceVersion)); + new UserAgentPolicy(null, SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone())); HttpPolicyProviders.addBeforeRetryPolicies(policies); RetryStrategy strategy = new ExponentialBackoff(5, Duration.ofSeconds(2), Duration.ofSeconds(16)); policies.add(new RetryPolicy(strategy)); if (credential != null) { - policies.add(new BearerTokenAuthenticationPolicy(credential, CryptographyAsyncClient.KEY_VAULT_SCOPE)); + policies.add(new KeyVaultCredentialPolicy(credential)); } HttpPolicyProviders.addAfterRetryPolicies(policies); policies.add(new HttpLoggingPolicy(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))); @@ -98,8 +99,9 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, CryptographyServiceVersion s public String getEndpoint() { - final String endpoint = - Configuration.getGlobalConfiguration().get("AZURE_KEYVAULT_ENDPOINT", "http://localhost:8080"); + final String endpoint = isManagedHsmTest + ? Configuration.getGlobalConfiguration().get("AZURE_MANAGEDHSM_ENDPOINT", "http://localhost:8080") + : Configuration.getGlobalConfiguration().get("AZURE_KEYVAULT_ENDPOINT", "http://localhost:8080"); Objects.requireNonNull(endpoint); return endpoint; } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientManagedHsmTest.releaseKey[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientManagedHsmTest.releaseKey[1].json new file mode 100644 index 0000000000000..1212946bde0d6 --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientManagedHsmTest.releaseKey[1].json @@ -0,0 +1,52 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease7l4hs7/create?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "972", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "579", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "2580265e-f719-11eb-b2a7-00224843a6b5", + "Body" : "{\"attributes\":{\"created\":1628297294,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628297294},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/keytorelease7l4hs7/44257620186a0c6d13b6423a56f794f4\",\"kty\":\"RSA-HSM\",\"n\":\"wbxoZL_9ebOXQhLi8F3RcwhvkesbGx4is4E6i2IFJN4FOSbKqDB7bYBBx-azNNm2OxV42YdTVdM9HaUluULQBeBXkxYPpJchRQB7CYbcBVaCYDHIFeLiAvtU5jhFwgbDRDBZz7pcDs29KSglQGScDlkWbSbv4ZhPx8SRG4VSM2Y1QAd-V82Gg94P1RyTdxjtVAXEeFxGcfyj9W-YU1aeLPCUBZvXM6euleEAi0fK9rDAsaFdnkDeFCmQayyeqg4RGOfNprjT440Y_dRGhrZCpskwkGOm500cejCCBK9L8WKP4wjEP2wIVnXnIP51_ZqU3laVcORXAlGpkE5XITqBlw\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease7l4hs7//release?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "14286", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "425", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "2674dc30-f719-11eb-b2a7-00224843a6b5", + "Body" : "{\"value\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Ijd5eFFPdjhsTjREajQtWVZtVWtkdTR2X0FPMVV0d2hnTG1WYVBFVUhiWVkiLCJ4NWMiOlsiTUlJSkVUQ0NCdm1nQXdJQkFnSVRNd0FYZXgxUGZvTDlpMDhoL1FBQUFCZDdIVEFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EWXdIaGNOTWpFd09EQTJNak15TVRNeldoY05Nakl3T0RBeE1qTXlNVE16V2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1MmFXTnZiR2x1WVcxb2MyMW9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNNMkVqNXMrUkh5bU9PTUl1NHB6OFA0VHVFaUpQOW5NUnk0ZTB3NmJnY0ZXL2hFV0grZVZGMmRXNFRKV2hzSGErcU9FVFNva3VEcXdueEhxZ09YUTd0VkFydFFsdVhteXZuYnVra3BGZUlaSUNqNEFrS2lHQUM4VWRiZnhmdVBTRDB6OGJOS25ERUZpWWVCc1pNaC9SQ3M2WnlIUm9BZTdXdDl6d1NlVlpUTEJaaWMralFuM2crbDRVaXZyQS92YzhEY3VMbC9aU05YSXA4TXhWU05nSEVkZnlsS2RySXVNd2gzajlZeEdybW1jQjBtdWlTK1VHb2tqTnljUEZnaGpmcTBsSFZUd0Z2SEwvMVhDTXVMWmtvVFBScnRKVDIzRWtZOWwvdE8zbk04VUZaT0N6SGFoOSs5LzZCK2dWT1F6T3hUR3FMaVZaVkpUTS9PSkYrQTd3WkFnTUJBQUdqZ2dTc01JSUVxRENDQWZZR0Npc0dBUVFCMW5rQ0JBSUVnZ0htQklJQjRnSGdBSFlBS1htKzhKNDVPU0h3Vm5PZlk2VjM1YjVYZlp4Z0N2ajVUVjBtWENWZHg0UUFBQUY3SGM3QmVnQUFCQU1BUnpCRkFpRUFnY2REaDl4QlRycE4zYTUwNlIrKzNYV0FuN29kcFFZMXQrK3U5bG1FUGhBQ0lGejZhUlhXWVRWVXFSalByQ2U2UDBPOWdlYXRBQUtIc0VNSS82SUhnRVRWQUhZQTdrdTl0M1hPWUxyaFFta2ZxK0dlWnFNUGZsK3djdGlEQU1SN2lYcW8vY3NBQUFGN0hjN0JTZ0FBQkFNQVJ6QkZBaUVBbHVpdittZmZCZ2E1TjUyMllxUjlMb3p5N1hadWs4dVpaU3pPUUhDQUR3Y0NJQWVJOFlCZG4raUIyMTdtQU5TT3BDZVZTY2pUOEtqNmo2UndYQmd1T2hOWUFIWUFRY2pLc2Q4aVJrb1F4cUU2Q1VLSFhrNHhpeHNENit0THgyandrR0tXQnZZQUFBRjdIYzdCclFBQUJBTUFSekJGQWlFQTNFcWVPQ20rWnZrLzlYS2ZqUGxzS2MxWElyRHJCOUdKVWxTNkVrRzlrNGdDSURhQ1ZkeXdsUFhvWkxVc29rSTFJbjQwV2RiTFhWR1Z5S1dkR1NyMXdvTGJBSFlBVWFPdzlmMEJlWnhXYmJnM2VJOE1wSHJNR3lmTDk1NklRcG9OL3RTTEJlVUFBQUY3SGM3QnhBQUFCQU1BUnpCRkFpQlJORHdOdXQ1WHFOd2ZRTFk0TXhZK2Y3SWk4N0VTVnE3VzQwZWkvejB6YXdJaEFQa3E2UGg2Y085Vmg4YzNrZEYzUTVuMWlQYVdTNGdqWm9JSmwzaHVFeXFVTUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdJd0NnWUlLd1lCQlFVSEF3RXdQQVlKS3dZQkJBR0NOeFVIQkM4d0xRWWxLd1lCQkFHQ054VUloNzNYRzRIbjYwYUNnWjB1anRBTWgvRGFIVjJDaE9WcGd2T25QZ0lCWkFJQkl6Q0JyZ1lJS3dZQkJRVUhBUUVFZ2FFd2daNHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdRWHAxY21VbE1qQlVURk1sTWpCSmMzTjFhVzVuSlRJd1EwRWxNakF3TmlVeU1DMGxNakI0YzJsbmJpNWpjblF3TFFZSUt3WUJCUVVITUFHR0lXaDBkSEE2THk5dmJtVnZZM053TG0xcFkzSnZjMjltZEM1amIyMHZiMk56Y0RBZEJnTlZIUTRFRmdRVUU4eFpVNzBXMm45aDhFMThJeVp2Nk84eU9nb3dEZ1lEVlIwUEFRSC9CQVFEQWdTd01GY0dBMVVkRVFSUU1FNkNKaW91ZG1samIyeHBibUZ0YUhOdGFITnRMbTFoYm1GblpXUm9jMjB1WVhwMWNtVXVibVYwZ2lSMmFXTnZiR2x1WVcxb2MyMW9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd1pBWURWUjBmQkYwd1d6QlpvRmVnVllaVGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdRWHAxY21VbE1qQlVURk1sTWpCSmMzTjFhVzVuSlRJd1EwRWxNakF3Tmk1amNtd3daZ1lEVlIwZ0JGOHdYVEJSQmd3ckJnRUVBWUkzVElOOUFRRXdRVEEvQmdnckJnRUZCUWNDQVJZemFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlFYjJOekwxSmxjRzl6YVhSdmNua3VhSFJ0TUFnR0JtZUJEQUVDQWpBZkJnTlZIU01FR0RBV2dCVFZ3V2M2d3FPZDlIZFNXMWtTT0NubVZXaTdwVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0RRWUpLb1pJaHZjTkFRRU1CUUFEZ2dJQkFCYUtWcUxoL29hbyt4NTJoSWttODlyOWJHa2IyOXZ6ZzQ3M01JMGRDSTJvV1BFelhyQXlZRFh5UWhBcHVPdEE5S1o2aWhoRm5ldDA1OGpJR2FJUXFNOXNDdngzWHNFR1BYaG5CUVppc1lrU0ZyandMMEV6a0JSKzUxaVlCbGZYU1M1MnhhMWp3T0hTcHFCZ1FCTkhKbTJEVkNTMWhZZ2ZtVXJPMFpVSjVBN2MrOVhPVkNpNHdNSFpLbkw1R1Y1QnkrM3FZd1lkU0xHa1IzZ2RmTVJ3ai80NEJ1VUxMNmlQWUFUTGJydWM5UWh5K1RKTFFlNXBYRVhRcy80cUpiM2EvREhDTUNmSjBzZmdhdERkWTJUYWZZZnE1SnZFUkEyZ0d6RGNNUHBRWS8rWUN2YjVuWGZTTGZIWG8vb0hGQ2c0VEJDWDJCZDJKV2UvODllallIdDZmUXNmbE9uMVgxZk1nQ0xQbWk1UUxYL3ZFeDBzVks1cXdDNk90Q0ZoN3doNEJ2Z1EyS09BelhhZXF4WGxuNjZrRk5uemV4OENqeXRWZnB1UnBMN2pqUEJGN3ZUbis0L1JlbUI4SE4yR1FlRDFWUGpuV2JYUkRwdm9GMTliVFZleUIyZkRRQ3JaVCtVMSsvYkNVNnJ0NllBT2t5YnR3NTUzdDJXTHRsM0ZTZzFna2lYRFhKUmplTHBaYTlQZW5ZWXY3aWhVM3FabWluYkp6WW1iS2o4b2hLS2pyOHlUNnV1UTlSK1ltTzI1RE1mNFkrQWgwTXQxNUZhMjljNmlDSmlhZUdGUXRDaUo5Q3JBbVdBdmtnRzZsbTNNZ2xxcmZPd3FraHVzTVBzSWdkTmtFRGNCaEdGQkVWSjR2U0dyN2UzZVBBeUdETS9mcEhuQ1lKU3Ryc3BGelVCbSIsIk1JSUY4ekNDQk51Z0F3SUJBZ0lRQXVlUmNmdUFJZWsvNHRtRGcweFF3REFOQmdrcWhraUc5dzBCQVF3RkFEQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVk1CTUdBMVVFQ2hNTVJHbG5hVU5sY25RZ1NXNWpNUmt3RndZRFZRUUxFeEIzZDNjdVpHbG5hV05sY25RdVkyOXRNU0F3SGdZRFZRUURFeGRFYVdkcFEyVnlkQ0JIYkc5aVlXd2dVbTl2ZENCSE1qQWVGdzB5TURBM01qa3hNak13TURCYUZ3MHlOREEyTWpjeU16VTVOVGxhTUZreEN6QUpCZ05WQkFZVEFsVlRNUjR3SEFZRFZRUUtFeFZOYVdOeWIzTnZablFnUTI5eWNHOXlZWFJwYjI0eEtqQW9CZ05WQkFNVElVMXBZM0p2YzI5bWRDQkJlblZ5WlNCVVRGTWdTWE56ZFdsdVp5QkRRU0F3TmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFZHQVJsNTZieDNLQlVTR3VQYzRINXVvTkZrRkg0ZTdwdlRDeFJpNGovK3orWGJ3akV6KzVDaXBET3FqeDkvaldqc2tMNWRrN1BhUWt6SXRpZHNBQW5EQ1cxbGVaQk9JaTY4TGZmMWJqVGVaZ01ZaXdkUmQzWTM5Yi9sY0dwaXVQMmQyM1c5NVlIa01NVDhJbFdvc1lJWDBmNGtZYjYycnBoeWZuQWpZYi80T2Q5OVRobmhsQXhHdGZ2U2JYY0JWSUtDWWZaZ3FSdlYrNWxSZVVuZDFhTmpSWVZ6UE9vaWZnU3gyZlJ5eTErcE8xVXphTU1ObklPRTcxYlZZVzBBMWhyMTl3N2tPYjBLa0pYb0FMVEREajF1a1VFRHFRdUJmQnhSZUw1bVhpdTFPN1dHMHZsdGcwVlovU1p6Y3RCc2RCbHgxQmttV1lCVzI2MUtaZ0JpdnJxbDVFTFRLS2Q4cWd0SGNMUUE1Zmw2SkIwUWdzNVhEYVdlaE44NkdwczVKVzhBcmpHdGpjV0FJUCtYOENRYVdmYUNudVJtNkJrLzAzUFFXaGdkaTg0cXdBMHNzUmZGSndIVVBUTlNuRThFaUdWazJmcnQwdThQRzFwd1NRc0Z1TkpmY1lJSEV2MXZPelA3dUVPdUR5ZHNtQ2pobHh1b0sybjUvMmFWUjNCTVR1K3A0K2dsOGFsWG9CeWN5TG1qM0ovUFVncUQ4U0w1ZlRDVWVnR3NkaWEvU2E2ME4yb1Y3dlExN3dqTU4rTFhhMnJqai9iNFpsWmdYVm9qRG1BakR3SVJkRFV1alF1MFJWc0pxRkxNelNJSHBwMkNacDdtSW9McnlTYXkyWVlCdTdTaU53TDk1WDZIZTJrUzhlZWZCQkhqendXLzlGeEdxcnk1N2k3MWMyY0RBZ01CQUFHamdnR3RNSUlCcVRBZEJnTlZIUTRFRmdRVTFjRm5Pc0tqbmZSM1VsdFpFamdwNWxWb3U2VXdId1lEVlIwakJCZ3dGb0FVVGlKVUlCaVY1dU51NWcvNitya1M3UVlYanprd0RnWURWUjBQQVFIL0JBUURBZ0dHTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNSFlHQ0NzR0FRVUZCd0VCQkdvd2FEQWtCZ2dyQmdFRkJRY3dBWVlZYUhSMGNEb3ZMMjlqYzNBdVpHbG5hV05sY25RdVkyOXRNRUFHQ0NzR0FRVUZCekFDaGpSb2RIUndPaTh2WTJGalpYSjBjeTVrYVdkcFkyVnlkQzVqYjIwdlJHbG5hVU5sY25SSGJHOWlZV3hTYjI5MFJ6SXVZM0owTUhzR0ExVWRId1IwTUhJd042QTFvRE9HTVdoMGRIQTZMeTlqY213ekxtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dONkExb0RPR01XaDBkSEE2THk5amNtdzBMbVJwWjJsalpYSjBMbU52YlM5RWFXZHBRMlZ5ZEVkc2IySmhiRkp2YjNSSE1pNWpjbXd3SFFZRFZSMGdCQll3RkRBSUJnWm5nUXdCQWdFd0NBWUdaNEVNQVFJQ01CQUdDU3NHQVFRQmdqY1ZBUVFEQWdFQU1BMEdDU3FHU0liM0RRRUJEQVVBQTRJQkFRQjJvV2M5M2ZCOGVzY2kvOGVzaXhqKytOMjJtZWlHRGpnRityQTJMVUs1SU9RT2djVVNUR0tTcUY5bFlmQXhQanJxUGpEQ1VQSENVUnYrMjZhZDVQL0JZdFh0Ym10eEpXdStjUzVCaE1EUFBlRzNvUFp3WFJIQkpGQWtZNE80QUY3UklBQVVXNkV6RGZsVW9ESEt2ODN6T2lQZllHY3BIYzlza3hBSW5DZWRrN1FTZ1h2TUFSampPcWRha29yMjFEVG1OSVVvdHhvOGtIdjVod1JsR2hCSndwczZmRVZpMUJ0MHRycE0vM3dZeGxyNDczV1NQVUZaUGdQMWo1MTlrTHBXT0o4ejA5d3hheStCcjI5aXJQY0JZdjBHTVhsSHFUaHk4eTRtL0h5VFFlSTJJTXZNclFud3FQcFkrckxJWHl2aUkydkxvSSs0eEtFNFJuMzhaWjhtIiwiTUlJRGpqQ0NBbmFnQXdJQkFnSVFBenJ4NXFjUnFhQzdLR1N4SFFuNjVUQU5CZ2txaGtpRzl3MEJBUXNGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHhNekE0TURFeE1qQXdNREJhRncwek9EQXhNVFV4TWpBd01EQmFNR0V4Q3pBSkJnTlZCQVlUQWxWVE1SVXdFd1lEVlFRS0V3eEVhV2RwUTJWeWRDQkpibU14R1RBWEJnTlZCQXNURUhkM2R5NWthV2RwWTJWeWRDNWpiMjB4SURBZUJnTlZCQU1URjBScFoybERaWEowSUVkc2IySmhiQ0JTYjI5MElFY3lNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXV6Zk5OTng3YThteWFKQ3RTblgvUnJvaENnaU45UmxVeWZ1STIvT3U4anFKa1R4NjVxc0dHbXZQckMzb1hna2tSTHBpbW43V282aCs0RlIxSUFXc1VMZWNZeHBzTU56YUh4bXgxeDdlL2RmZ3k1U0RONjdzSDBOTzNYc3MwcjB1cFMva3FiaXRPdFNacExZbDZadHJBR0NTWVA5UElVa1k5MmVRcTJFR25JL3l1dW0wNlpJeWE3WHpWK2hkRzgyTUhhdVZCSlZKOHpVdGx1TkpiZDEzNC90SlM3U3NWUWVwajVXenRDTzdURzFGOFBhcHNwVXd0UDFNVll3blNsY1VmSUtkelhPUzB4WktCZ3lNVU5HUEhnbStGNkhtSWNyOWcrVVF2SU9sQ3NSbktQWnpGQlE5Um5iRGh4U0pJVFJOcnc5RkRLWkpvYnE3bk1XeE00TXBoUUlEQVFBQm8wSXdRREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTRHQTFVZER3RUIvd1FFQXdJQmhqQWRCZ05WSFE0RUZnUVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUdCbktKUnZEa2hqNnpIZDZtY1kxWWw5UE1XTFNuL3B2dHNyRjkrd1gzTjNLaklUT1lGblFvUWo4a1ZuTmV5SXYvaVBzR0VNTktTdUlFeUV4dHY0TmVGMjJkK21RcnZIUkFpR2Z6WjBKRnJhYkEwVVdUVzk4a25kdGgvSnN3MUhLajJaTDd0Y3U3WFVJT0daWDFOR0ZkdG9tL0R6TU5VK01lS05oSjdqaXRyYWxqNDFFNlZmOFBsd1VIQkhRUkZYR1U3QWo2NEd4SlVURnk4YkpaOTE4ckdPbWFGdkU3RkJjZjZJS3NoUEVDQlYxL01VUmVYZ1JQVHFoNVV5a3c3K1UwYjZMSjMvaXlLNVM5a0pSYVRlcExpYVdOMGJmVktmamxsRGlJR2tuaWJWYjYzZERjWTNmZTBEa2h2bGQxOTI3anlOeEYxV1c2TFpabTZ6TlRmbE1yWT0iXSwieDV0I1MyNTYiOiI3eXhRT3Y4bE40RGo0LVlWbVVrZHU0dl9BTzFVdHdoZ0xtVmFQRVVIYllZIn0.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vdmljb2xpbmFtaHNtaHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMva2V5dG9yZWxlYXNlMDY3OTViIn0sInJlc3BvbnNlIjp7ImtleSI6eyJhdHRyaWJ1dGVzIjp7ImNyZWF0ZWQiOjE2MjgyOTcyOTQsImVuYWJsZWQiOnRydWUsImV4cG9ydGFibGUiOnRydWUsInJlY292ZXJhYmxlRGF5cyI6OTAsInJlY292ZXJ5TGV2ZWwiOiJSZWNvdmVyYWJsZStQdXJnZWFibGUiLCJ1cGRhdGVkIjoxNjI4Mjk3Mjk0fSwia2V5Ijp7ImUiOiJBUUFCIiwia2V5X2hzbSI6ImV5SmphWEJvWlhKMFpYaDBJam9pYTJoVlNHaFhaMHBtTFVGTGNsSjVlR2x1UkdSS2NVcDBkMGRHTUZoVWVXUkVTVmRJYXpkQ1JHaGlTbEZYTnpOS016Sm1hekJTY0VORWRFSlBMWFJ6VjFKdWNTMXFhblJ1T0MxcWFIZEdZMDB4V1hwQkxTMVJVVTl1YzFaV1FWUXpka05LVTFGeE0zZzJiMDVuYkZNM09ITjFVR1JwZDNsV2VISk5RMlZaTTNWSU4zUnpUR1pIVkdGU1ppMW5XbkZ0VjNNNVNIUkNaM2hDVG10NVRqVjVUa1p3UzJkTk1EaHBTSEpCV0ZNMlJ6TlNUSEZyYVdsNloxY3llbGxMY2w5eVN6aFljR1pMUzFFNWFGOWFaVEk0T1hwNmJXcFBNVmwzY1Y5ZlMzVmpha05PZGtKaFNqQTFTelJNUkVGMU5GRm1RVmRtUlRSUlpYazJSbTl1Y25VeFFqRTBjM1JQZEdOWU4wRlRaVTVoWWpFeGRsTnZSMDF1UWpjeVFuUndXRFJyUzA1WmVHcENTMXBEV1RseWFtNUhWM2RRTXpnMGVEZEtjbnBMTmxjMFRVNVhTMEkyYldoME1HSTNNVkJ6VEZreVdXdDViREZzZWtvMFUyeFJOakYxTUZoc2FERk5lbmc1T0ZaM1VFaExkR1ExUXpsVGMyTkVSMEkzV0VvM1QzVnVOM2hIYldNNWFHTkVXVlpFZFRORFVFWmxRVjlvYTFacE5tdHliMjFRTTFwVmFuVlBibEpDZVhGVlUzUkZTRkpxUzNka1oyZHVaSGRZZGxwRWJ6VlFTM0kzY3prNVRXRmFja1pQVkRZM2NUZFFSMUZEVGtwelltNWFSMnRMTlhCRGNFaHlNSGhZUjBRdFRqVlVSa013ZEVaUGFVZGFSR3RSYTJWSVdGQnhSV1Z1VGw5M09GOXJaUzA1WVZGcGRrZE1YMEpvVUV4aFpGZHhTa1puYkVsRlgyOU5URmx1TVd0MFJVZHpPRFl0VjNrMGRHTlVSbEZhVkdwR2VIZEhTM0V5U1VjeFVISkliVXQwYVVFMVMzaGtlbmh0UjE4elJtSndRVVl0WDFFMU1USkRZbnBOYzFwVldGOUxaMnM0ZUVsRWMybGxNM05sVlhSVGNUYzFXRFkwWDBOblVUQlZXWEkyVWtOMVpVMTZiMDB5VldrMlF6UmtlVEp5TjFGS1dUWlVPRmhmVTFkRVdtdGhURzVqT0ZKbmMwNHdaM0pZVjFjMlgxSjNSMnhQVFZKeU1sRmtUV0ZWV0ZGQ1kybFpiVmhrTW1oTlZHOW9WbXBhTUZObGFsbERVbFV4U0dOV1VHUlhWR0pJYWxJMVpsa3pNbmhSVWtndGQxUlNOVnBqV1RKMU9WUmpMWFpDZGkxeVR5MVZYekpOVjI5alQzVXhjR1ZmU1ZwS1UwNTBUVTFXYUROQ1FWaEpjMUZPT1U1Rk9HSlNWQzFPYzI5d1VVWjRaR2xrTUc5RGRsRmxhMU5zYW14d1RFOHlWM0pWT1Rka01FTnJMUzFaTkRWamVGQm1RVUZXZGxWS1ltWkhjMUJRVURSc1NGaDNhalZXY1RKeWNUQlVVMnRxYjFsQlVFa3pZa2RVZGxSZk4xaG1kelZqZFVkc1NIcFZiazFmUmxkM1MzTkVWR3MyT0ZodGMwaHVhVVZDUVZwTFlXZEtkMHhuTFd3MVVHVldiVXBmUkZCblZHZFBlamhCTUY5NFFtNHpSVlZJTnpCMVNYcDNWRXBDV0dsVmJUUlRlVzlWZFRWNU1YWXdaR2g0Y0ZScE5taFVXbEpIYlhGSmFrTlBjVkZRZGt3MWRWY3lSVWt0TVY5RlNEWlBhbVZWZDI5dVFYZEZUblk0Ym5sbk56TmhRM1ZWV0RkSGFUWjJWbU5UVkhsMVNHRllRa0pFUjNSb2NVbHBNbDh5YlZwQmJsbGxkVzkxVWxKRlZuaHZRbTB0VkdkVVpWbGhYemhUZVVaUE9GVXhVazk1YzJ0elJqSjFjRTA1V2xOR2VVMW9OV3BVWDI5dGVqUTJNVE0zVFdGR1ZUSXdOemgzYldSSVRWbFBVWGg0T0c0eVIyNTRkWE5TVkhBeWVubDRWMUp5VG1JMFEyVmFhMjh3YlhKMGFIa3dlbGR4UkVsck5rUlJObUY2Vkd4NVRqYzBNRzFPZGtGVldqZElhMHRrV1RGMExWWkVjRXhLYlRnM1FVZzRhM0JEVTFwaFptOVFZMHd4UVcxM1lXdExTMFJGWlZsRlZXOWlhM2RQTUVaa2VuaHNNM2xzV2tscVFrZzJhWGgwV1hsVWQyeDRRMlZDUjNkelZYVXpiVk0yT1Zkc2JrWlVjRkJQWlV4d2RsWTVlV3RNUldSeE1ESnBXRzluUmsxTmVqZEJUVkZYVGs5cE1XbFlXalYzVjBSTFVISlVWRVZ5WlZOaVEzaG1NSEZKV2psRFRFaGhXRVJ0UzJaeGNGQldaMXB1WTBaUFNsRndiR3QzU1c4MFpGTnZOM1prUWtaaWNVaDNhMGd6Ykc1c1owVkxVSG81U0VGVVlUaFFjRTVJYlhkWlYzaDJiRE5pYjNKMk0wWmpiVTE2Y1dOaVFVRmxTVkZOTXpWNloxTjFTMDlaTm1GRVZuUkViMDVVYlc5Wk5rRlplVWhQZUhKUE1EVnBhWEJuZURsWmJtZzJTVXR1ZEVGWVptSjBaR0pvY0RoNGFsaHdRMk5KY2tvMU0waHFVamQyWDFNeFIzaG1RV1pEY2psak9IRkVRMUUzUVRCSFdWRTFNemcwUWtOS2RtWnZibU5QUldsRVJXbDZVa1ZJV1haVmJXVjNlbloyVDE5MmFHODFhV2RhYkZkck1GVXhibEZrVmxRMVNuRjBhRnAwYTFOa1MyNURUelJPVFZGUmRHbGtlVk16Vm14RFRISnlZM3BqVDE4M2VrcEJjbU4xY0MxM1IxVm5UR3hQU20wdE1XRnRaR3BwTFU5cFJIRkJUMTl6TVZoUlFsTnplWHBsVDFwRVpFZG5aa3hrVFRsR2VrWmhVemd6TW5sWGFISjRRbVExTUdGeVVqWmhaVWRaVnpWUk1XdENSVU5LY0V4aGMwcEtVVFZUY0d0alNtUk9XRmRMUWxSRVdYSk5kVEJPUjFOSFdqSndiMlpZUkVkZk5UZEhOR1ZQTURCZlZYUTJOSFpNTFhkV1NGazRiVzFoUkdkSVUzZEVNelZKV0VGWmMwbHNWa3RWY2pSTlNYSTNjMnA0VmtaaFkwZElObEUxVjJkUWVEUmliVlpDYUVKVFQzRnNTbFEyU25CV016bFlaVzlDY0dGSVIxaG5VRTVDTlZrNVJVdEhRUzE2YzNJNE9VUldXRk14ZW5aRFpVdEJVRzV2ZUdRME1YVkJNWEpSWlRCeldFWlFhVmx2YTI1elRGcGZabEF0YkV0c2RtVk9abEF4TjFCQ1IxUmxPRUpXU0hsRVVWWkdWVTFFYjNaTGRVczNPVEpXUVY5amRHMUllVVpCUjJSaWNEWnNhVUZJUWtJMFpWRjFPVnA2WTNOV1RDSXNJbWhsWVdSbGNpSTZleUpoYkdjaU9pSmthWElpTENKbGJtTWlPaUpEUzAxZlVsTkJYMEZGVTE5TFJWbGZWMUpCVUNJc0ltdHBaQ0k2SW1aaGEyVXRjbVZzWldGelpTMXJaWGtpZlN3aWMyTm9aVzFoWDNabGNuTnBiMjRpT2lJeExqQWlmUSIsImtleV9vcHMiOlsid3JhcEtleSIsImRlY3J5cHQiLCJlbmNyeXB0IiwidW53cmFwS2V5Iiwic2lnbiIsInZlcmlmeSJdLCJraWQiOiJodHRwczovL3ZpY29saW5hbWhzbWhzbS5tYW5hZ2VkaHNtLmF6dXJlLm5ldC9rZXlzL2tleXRvcmVsZWFzZTA2Nzk1Yi80NDI1NzYyMDE4NmEwYzZkMTNiNjQyM2E1NmY3OTRmNCIsImt0eSI6IlJTQSIsIm4iOiJ3YnhvWkxfOWViT1hRaExpOEYzUmN3aHZrZXNiR3g0aXM0RTZpMklGSk40Rk9TYktxREI3YllCQngtYXpOTm0yT3hWNDJZZFRWZE05SGFVbHVVTFFCZUJYa3hZUHBKY2hSUUI3Q1liY0JWYUNZREhJRmVMaUF2dFU1amhGd2diRFJEQlp6N3BjRHMyOUtTZ2xRR1NjRGxrV2JTYnY0WmhQeDhTUkc0VlNNMlkxUUFkLVY4MkdnOTRQMVJ5VGR4anRWQVhFZUZ4R2NmeWo5Vy1ZVTFhZUxQQ1VCWnZYTTZldWxlRUFpMGZLOXJEQXNhRmRua0RlRkNtUWF5eWVxZzRSR09mTnByalQ0NDBZX2RSR2hyWkNwc2t3a0dPbTUwMGNlakNDQks5TDhXS1A0d2pFUDJ3SVZuWG5JUDUxX1pxVTNsYVZjT1JYQWxHcGtFNVhJVHFCbHcifSwicmVsZWFzZV9wb2xpY3kiOnsiY29udGVudFR5cGUiOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IiwiZGF0YSI6ImV5SmhibmxQWmlJNlczc2lZVzU1VDJZaU9sdDdJbU5zWVdsdElqb2ljMlJyTFhSbGMzUWlMQ0psY1hWaGJITWlPaUowY25WbEluMWRMQ0poZFhSb2IzSnBkSGtpT2lKb2RIUndjem92TDNOcmNtRjBkR1Z6ZEdGMGFXOXVMbUY2ZFhKbGQyVmljMmwwWlhNdWJtVjBMeUo5WFN3aWRtVnljMmx2YmlJNklqRXVNQzR3SW4wIn19fX0.eFUjCBDpkuWbRwBxJ23cBJtWnpe-n_4AKSpFNJGKwat7s8Ni8rZumtI8fQEYLDvCbNrDG2lGtTJYRjeNxvK0R11DhgBPJiNu-JJffnviTfG8usUAHX5awcWQ5BkENe-fCIi00YyWSKAdGqhq86gI7uzdYnKR8RxSbJzg6FQspfo7SNm5caaHN1t3oY6eJgWr3UN0-8MLVeuYPMP-Jz2OmVNpXwkyQ461k0aV7AzDszEuFvJ3kP-oGTfS8KuMU_xI-zAh8U83dWK0NHM21eRdXUvERdBSxjPxpLBkIjsBN9JOaemFp9LRdvxk6I5_To73o9292goc9BXD8_L_t3Rc2A\"}" + }, + "Exception" : null + } ], + "variables" : [ "keytorelease7l4hs7" ] +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientTest.releaseKey[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientTest.releaseKey[1].json index ea9eaa44b545a..86744649f7138 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientTest.releaseKey[1].json +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyAsyncClientTest.releaseKey[1].json @@ -20,7 +20,7 @@ "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", "cache-control" : "no-cache", "x-ms-request-id" : "2580265e-f719-11eb-b2a7-00224843a6b5", - "Body" : "{\"attributes\":{\"created\":1628297294,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628297294},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/keytorelease06795b/44257620186a0c6d13b6423a56f794f4\",\"kty\":\"RSA-HSM\",\"n\":\"wbxoZL_9ebOXQhLi8F3RcwhvkesbGx4is4E6i2IFJN4FOSbKqDB7bYBBx-azNNm2OxV42YdTVdM9HaUluULQBeBXkxYPpJchRQB7CYbcBVaCYDHIFeLiAvtU5jhFwgbDRDBZz7pcDs29KSglQGScDlkWbSbv4ZhPx8SRG4VSM2Y1QAd-V82Gg94P1RyTdxjtVAXEeFxGcfyj9W-YU1aeLPCUBZvXM6euleEAi0fK9rDAsaFdnkDeFCmQayyeqg4RGOfNprjT440Y_dRGhrZCpskwkGOm500cejCCBK9L8WKP4wjEP2wIVnXnIP51_ZqU3laVcORXAlGpkE5XITqBlw\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" + "Body" : "{\"attributes\":{\"created\":1628297294,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628297294},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/keytorelease06795b/44257620186a0c6d13b6423a56f794f4\",\"kty\":\"RSA\",\"n\":\"wbxoZL_9ebOXQhLi8F3RcwhvkesbGx4is4E6i2IFJN4FOSbKqDB7bYBBx-azNNm2OxV42YdTVdM9HaUluULQBeBXkxYPpJchRQB7CYbcBVaCYDHIFeLiAvtU5jhFwgbDRDBZz7pcDs29KSglQGScDlkWbSbv4ZhPx8SRG4VSM2Y1QAd-V82Gg94P1RyTdxjtVAXEeFxGcfyj9W-YU1aeLPCUBZvXM6euleEAi0fK9rDAsaFdnkDeFCmQayyeqg4RGOfNprjT440Y_dRGhrZCpskwkGOm500cejCCBK9L8WKP4wjEP2wIVnXnIP51_ZqU3laVcORXAlGpkE5XITqBlw\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" }, "Exception" : null }, { @@ -49,4 +49,4 @@ "Exception" : null } ], "variables" : [ "keytorelease06795b" ] -} \ No newline at end of file +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientManagedHsmTest.releaseKey[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientManagedHsmTest.releaseKey[1].json new file mode 100644 index 0000000000000..c73bbf8eab67a --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientManagedHsmTest.releaseKey[1].json @@ -0,0 +1,52 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease92a8js/create?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "1003", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "545", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "4fa0e8e6-f715-11eb-a622-000d3aa6a10f", + "Body" : "{\"attributes\":{\"created\":1628295646,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628295646},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/keytorelease92a8js/8713f6289a2441313075698b8625bf32\",\"kty\":\"RSA-HSM\",\"n\":\"qwmJOrLUYKn5h4NCpuYC1oFFPHms8nXM-z3rHWJK4OYBvqQLwhp6wBOhsm7FPenRxXzsZAZbjOaqUQ_sDkCWNulm_ifa6LsRvjM_4ZeAExP6kabgkeHU1nmAm0vi2aBKqbvgysKjexRsrHCHO9zxOtktOz9W8r4HMrNJZkAou-h5tuBzFfe5DrHsTLNv_BMFwmvwIkX_6Gg1Sahgo-26CZHl2Koi6GQyYS0-nVwvJzqUZXxNPslFFLO0DnCg65izEqx7KnCNJR0nIZ6UhkaiMqdZQ3JaZE1fXCdBrOE9s6MCz6Pk3g51rJ67biefhaaAaUEfTyDvBTiU0zSckh6IsQ\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease92a8js//release?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "14161", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "389", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "50612eee-f715-11eb-a622-000d3aa6a10f", + "Body" : "{\"value\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjFJWjlZQ0gtRWo5OGJxcUZUSnRITHFtZUFXSm5WZkhEdFlUbC1LS0RkRnciLCJ4NWMiOlsiTUlJSW1qQ0NCb0tnQXdJQkFnSVRNd0FZS3BaWmV5L0l3TkxGN1FBQUFCZ3FsakFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EVXdIaGNOTWpFd09EQTJNak15TVRJeldoY05Nakl3T0RBeE1qTXlNVEl6V2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1MmFXTnZiR2x1WVcxb2MyMW9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURMczZzL3RoZ2YzVk10WjBDeHpWVVAxYktReS9SVisvT1Y0MUxOcjdTMWtGYk9KaDJuLzhEZFNyWk5qN2dUbmxDTkJkV2ltWmY4ZHZwaUtMc0VMY2FlK01wQXk1OWhZYm96WGZyWTRuY2R6UVlsTXJGNHVMbUJicjF4MVMwWEtBMlQxTVByb3ZkbldXbDhuVkE4b2pPYklFdmlGN2F6MVppMmwyWmZpSHprQXo2YmhadmltUGNqdVRxTnpyVjJERHlXemdycVBSVzJaWDQyMUtNVUVTWFBObUhHNXZkN05kazYvc3ZpSjhubWVhRC8rSGRMcXpGVmFId3JvZ3lxSFFZNVk1VldSLzZGc1I0aE1wRzg5c2dITU1XSVZLVWVrdVBsNmhXb2haa0grdUN3Z29rdExKZ2EzRWN1VGtlbFJ5VlQ3RFcrSzJwS2sxcExLQ3JYS1I4YkFnTUJBQUdqZ2dRMU1JSUVNVENDQVg4R0Npc0dBUVFCMW5rQ0JBSUVnZ0Z2QklJQmF3RnBBSGNBN2t1OXQzWE9ZTHJoUW1rZnErR2VacU1QZmwrd2N0aURBTVI3aVhxby9jc0FBQUY3SGM2YUZBQUFCQU1BU0RCR0FpRUFuTUlydXp1cGFrK2tmWi84SE8xb0ZETEUvZ2RCS2NBWmZSbjBpMlJaVTBFQ0lRRGtuL2cyNkc4NWM2YmJDaHFnWnRwQjBaU1BZeG1ndUxmVEtyMWZHaXZVdEFCM0FDbDV2dkNlT1RraDhGWnpuMk9sZCtXK1YzMmNZQXI0K1UxZEpsd2xYY2VFQUFBQmV4M09ta1FBQUFRREFFZ3dSZ0loQUlLdUpHTm5YMEdzTWFNR2NHcnAxU3h0dUhiR2pSTUJscURVYkhPeEFHSXRBaUVBNE1DTkFuVVpVME1yNEdrZjB2K3l2TU13VUNBblVaQlZRbDNkZG9ZREtlVUFkUUJCeU1xeDN5SkdTaERHb1RvSlFvZGVUakdMR3dQcjYwdkhhUENRWXBZRzlnQUFBWHNkenBwdUFBQUVBd0JHTUVRQ0lHR1orM2pHNlcxM3ZVN3E0QWNsWU5kZHlVMVpHbzZSamNTK1M3Ui85VUszQWlCM0ZXSEdTNngrQlROR3hlYk1yVHBCbko0Y1ZFNGVyT0VQOEpmZTZOMng5VEFuQmdrckJnRUVBWUkzRlFvRUdqQVlNQW9HQ0NzR0FRVUZCd01DTUFvR0NDc0dBUVVGQndNQk1Ed0dDU3NHQVFRQmdqY1ZCd1F2TUMwR0pTc0dBUVFCZ2pjVkNJZTkxeHVCNSt0R2dvR2RMbzdRRElmdzJoMWRnb1RsYVlMenB6NENBV1FDQVNNd2dhNEdDQ3NHQVFVRkJ3RUJCSUdoTUlHZU1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFVsTWpBdEpUSXdlSE5wWjI0dVkzSjBNQzBHQ0NzR0FRVUZCekFCaGlGb2RIUndPaTh2YjI1bGIyTnpjQzV0YVdOeWIzTnZablF1WTI5dEwyOWpjM0F3SFFZRFZSME9CQllFRk1BRUlpT1JaMC9JbGx0SU80eG5ybWpEVlQ0cE1BNEdBMVVkRHdFQi93UUVBd0lFc0RCWEJnTlZIUkVFVURCT2dpWXFMblpwWTI5c2FXNWhiV2h6YldoemJTNXRZVzVoWjJWa2FITnRMbUY2ZFhKbExtNWxkSUlrZG1samIyeHBibUZ0YUhOdGFITnRMbTFoYm1GblpXUm9jMjB1WVhwMWNtVXVibVYwTUdRR0ExVWRId1JkTUZzd1dhQlhvRldHVTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFV1WTNKc01HWUdBMVVkSUFSZk1GMHdVUVlNS3dZQkJBR0NOMHlEZlFFQk1FRXdQd1lJS3dZQkJRVUhBZ0VXTTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZSRzlqY3k5U1pYQnZjMmwwYjNKNUxtaDBiVEFJQmdabmdRd0JBZ0l3SHdZRFZSMGpCQmd3Rm9BVXg3S2NmeHpqdUZydjZXZ2FxRjJVd1NaU2FtZ3dIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0lHQ0NzR0FRVUZCd01CTUEwR0NTcUdTSWIzRFFFQkRBVUFBNElDQVFDbytOY205MUpSK1ozazg1WUorVmNtVTVjNkJ3ZGR0eTFFR2o4RWM0dmNDcmN1b2lVL1RFUW1PSUcrTWM4WXlYd2FuVHVxeW53UklFZUtsTmJUSXYyREwwbWhrREt1UzczNk5VdDVWMjV0RXFnck5mTWE4bWswT3dickoybjNhQ3hvVTlXNDFYNkJ6WVc0ckpGOXpxZnEzbUdhS3YxaUoyL2V0UmpSRE5XVkRQMVYvYTF3OC9WTndQUTJ3Y2dtOHNtdGwvY09nUWFHRzl2eEpFNGZjV2h3ajBscTRBcVZDYTBIWjJOZVNiTjZJdTNiNFBESVU4czJSeGFlVWFhTXNCWW9FVmQvOXV0TXpBQ25MRUlkSlNyQ2kzZlg1WEtHT0VpQWEwYUY5UXRCZ2JLdzB4ajZaT1R0RWRYZDhrdFhBdmI5TWxtNEFnM3RBRmlVRlRmSlJ4dCtyQVdjYzhOL0pXenUrSFRjdElHQnFldS95N2xmRUc4QWp6c2w3dEdIRGVTclBndWtqN204WGZXZmlleit2SjFXWnhKVTY2LzZIWnZyY25FOUsxb1dOWXZTNnBscG5HZFVaU21PVExVZVAzTEx5ZkNXUFBueDJnUC9IWnBCVldxQ3RXUkh6bm5oMU5mbWY3aEgvK3VERnA0ekZMQ0cwTTdCTXVrVnNBVkZCQ0dzRUJKM29sQ3I4NUdvc01GRFBxYit1VldVcjBWejZjNk1pNjhQVXphcSs1Ly9WWS82WWJwSDdyR24yTE9DRW5jNmlRUU1LN1JDM1NveVB3aG5rWC9LWitJWThBOUp5OUZpSnZBc2wwcUhlSXVrUSt2MGpqZ3N4U25MdGtmMjFNbUJvVU9JMTB1cEt0VDUzSDd0di95dU44cHdJTXQrRDRLaHphUmFDNUZic2c9PSIsIk1JSUY4ekNDQk51Z0F3SUJBZ0lRRFh2dDZYMkNDWlo2VW1NYmk5MFl2VEFOQmdrcWhraUc5dzBCQVF3RkFEQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVk1CTUdBMVVFQ2hNTVJHbG5hVU5sY25RZ1NXNWpNUmt3RndZRFZRUUxFeEIzZDNjdVpHbG5hV05sY25RdVkyOXRNU0F3SGdZRFZRUURFeGRFYVdkcFEyVnlkQ0JIYkc5aVlXd2dVbTl2ZENCSE1qQWVGdzB5TURBM01qa3hNak13TURCYUZ3MHlOREEyTWpjeU16VTVOVGxhTUZreEN6QUpCZ05WQkFZVEFsVlRNUjR3SEFZRFZRUUtFeFZOYVdOeWIzTnZablFnUTI5eWNHOXlZWFJwYjI0eEtqQW9CZ05WQkFNVElVMXBZM0p2YzI5bWRDQkJlblZ5WlNCVVRGTWdTWE56ZFdsdVp5QkRRU0F3TlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3BsRFRtUTlhZndWUFFlbER1dStOa3hOSjA4NENOS25yWjIxQUJld0UrVVU0R0tEbnd5Z1pkSzZhZ05TTXM1VW9jaFVFRHp6OUNwZFY1dGRQekwxNE8vR2VFMmdPNS9hVUZUVU1HOWM2bmV5eGs1dHExV2RLc1BraXRQd3M2VjhNV2E1ZDFML3k0UkZoWkhVc2d4eFV5U2xZbEdwTmNIaGhzeXI3RXZGZWNaR0ExTWZzaXRBV1ZwNmhpV0FOa1dLSU5mUmNkdDNaMkEyM2htTUg5TVJTR0JjY0hpUHV6d3JWc1NtTHd2dDNXbFJEZ09iSmtFNDB0Rll2SjZHWEFRaWFHSENJV1NWT2JnTzN6ajZ4a2RiRUZNbUovenIyV2V0NUtFY1VEdFVCaEE0ZFVVb2FQVno2OXU0NlY1NlZzY3kzbFh1MVlsc2s4NGo1bFVQTGRzQXh0dWx0UDRPUFFvT1Rwblk4a3hXa0g2a2dPNWdUS0UzSFJ2b1ZJalU0eEowSlE3NDZ6eS84R2RRQTM2U2FOaXo0VTN1MTB6RlpnMlJrdjJkTDFMdjU4RVhMMDJyNXE1Qi9uaFZIL00xam9UdnBSdmFlRXBBSmhrSUE5TmtwdmJHRXBTZGNBME9ydE9PZUd0cnNpT3lNQllranBCNW53MGNKWTFRSE9yM25JdkoyT25ZK09LSmJEU3JoRnFXc2s4LzFxNloxV052T056N3RlMXBBdEhlcmRQaTVwQ0hlaVhDTnB2K2ZhZHdQMGs4Y3phZjJWczE5bllzZ1duNXVJeUxRTDhFZWhkQnpDYk9LSnk5c2w4NlM0RnFlNEhHeUF0bXFHbGFXT3NxMkE2Ty9wYU1pM0JTbVdURGJnUExDUEJiUHRlL2JzdUFFRjRhamtQRUVTM0dIUDlBZ01CQUFHamdnR3RNSUlCcVRBZEJnTlZIUTRFRmdRVXg3S2NmeHpqdUZydjZXZ2FxRjJVd1NaU2FtZ3dId1lEVlIwakJCZ3dGb0FVVGlKVUlCaVY1dU51NWcvNitya1M3UVlYanprd0RnWURWUjBQQVFIL0JBUURBZ0dHTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNSFlHQ0NzR0FRVUZCd0VCQkdvd2FEQWtCZ2dyQmdFRkJRY3dBWVlZYUhSMGNEb3ZMMjlqYzNBdVpHbG5hV05sY25RdVkyOXRNRUFHQ0NzR0FRVUZCekFDaGpSb2RIUndPaTh2WTJGalpYSjBjeTVrYVdkcFkyVnlkQzVqYjIwdlJHbG5hVU5sY25SSGJHOWlZV3hTYjI5MFJ6SXVZM0owTUhzR0ExVWRId1IwTUhJd042QTFvRE9HTVdoMGRIQTZMeTlqY213ekxtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dONkExb0RPR01XaDBkSEE2THk5amNtdzBMbVJwWjJsalpYSjBMbU52YlM5RWFXZHBRMlZ5ZEVkc2IySmhiRkp2YjNSSE1pNWpjbXd3SFFZRFZSMGdCQll3RkRBSUJnWm5nUXdCQWdFd0NBWUdaNEVNQVFJQ01CQUdDU3NHQVFRQmdqY1ZBUVFEQWdFQU1BMEdDU3FHU0liM0RRRUJEQVVBQTRJQkFRQWUrRytHMlJGZFd0WXhMSUtNUjVIL2FWTkZqTlA3SmRldStvWmFLYUl1N1UzTmlkeWtGcjk5NGpTeE1CTVY3Njh1a0o1L2hMU0tzdWovU0xqbUFmd1JBWit3MFJHcWkva092UFlVbEJyL3NLT3dyM3RWa2c5Y2NaQmVibkJWRytETEtUcDJPeDArallCQ1B4bGE1Rk8yNTJxcGs3LzZ3dDhTWmszZGlTVTEySm03aWYvampraGtHQi9lOFVkZnJLb0x5dER2cVZlaXdQQTVGUHpxS29TcU43NWJ5TGpzSUtKRWROaTA3U1k0NWhOL1JVbnNtSW9BZjkzcWxhSFIvU0pXVlJocld0M0ptZW9CSjJSREs0OTJ6RjZUR3UxbW9oNGFFNmUwMFlrd1RQV3JldXd2YUxCMjIwdldtdGdaUHMrRFNJYjJkOWhQQmRDSmd2Y2hvMWM3IiwiTUlJRGpqQ0NBbmFnQXdJQkFnSVFBenJ4NXFjUnFhQzdLR1N4SFFuNjVUQU5CZ2txaGtpRzl3MEJBUXNGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHhNekE0TURFeE1qQXdNREJhRncwek9EQXhNVFV4TWpBd01EQmFNR0V4Q3pBSkJnTlZCQVlUQWxWVE1SVXdFd1lEVlFRS0V3eEVhV2RwUTJWeWRDQkpibU14R1RBWEJnTlZCQXNURUhkM2R5NWthV2RwWTJWeWRDNWpiMjB4SURBZUJnTlZCQU1URjBScFoybERaWEowSUVkc2IySmhiQ0JTYjI5MElFY3lNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXV6Zk5OTng3YThteWFKQ3RTblgvUnJvaENnaU45UmxVeWZ1STIvT3U4anFKa1R4NjVxc0dHbXZQckMzb1hna2tSTHBpbW43V282aCs0RlIxSUFXc1VMZWNZeHBzTU56YUh4bXgxeDdlL2RmZ3k1U0RONjdzSDBOTzNYc3MwcjB1cFMva3FiaXRPdFNacExZbDZadHJBR0NTWVA5UElVa1k5MmVRcTJFR25JL3l1dW0wNlpJeWE3WHpWK2hkRzgyTUhhdVZCSlZKOHpVdGx1TkpiZDEzNC90SlM3U3NWUWVwajVXenRDTzdURzFGOFBhcHNwVXd0UDFNVll3blNsY1VmSUtkelhPUzB4WktCZ3lNVU5HUEhnbStGNkhtSWNyOWcrVVF2SU9sQ3NSbktQWnpGQlE5Um5iRGh4U0pJVFJOcnc5RkRLWkpvYnE3bk1XeE00TXBoUUlEQVFBQm8wSXdRREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTRHQTFVZER3RUIvd1FFQXdJQmhqQWRCZ05WSFE0RUZnUVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUdCbktKUnZEa2hqNnpIZDZtY1kxWWw5UE1XTFNuL3B2dHNyRjkrd1gzTjNLaklUT1lGblFvUWo4a1ZuTmV5SXYvaVBzR0VNTktTdUlFeUV4dHY0TmVGMjJkK21RcnZIUkFpR2Z6WjBKRnJhYkEwVVdUVzk4a25kdGgvSnN3MUhLajJaTDd0Y3U3WFVJT0daWDFOR0ZkdG9tL0R6TU5VK01lS05oSjdqaXRyYWxqNDFFNlZmOFBsd1VIQkhRUkZYR1U3QWo2NEd4SlVURnk4YkpaOTE4ckdPbWFGdkU3RkJjZjZJS3NoUEVDQlYxL01VUmVYZ1JQVHFoNVV5a3c3K1UwYjZMSjMvaXlLNVM5a0pSYVRlcExpYVdOMGJmVktmamxsRGlJR2tuaWJWYjYzZERjWTNmZTBEa2h2bGQxOTI3anlOeEYxV1c2TFpabTZ6TlRmbE1yWT0iXSwieDV0I1MyNTYiOiIxSVo5WUNILUVqOThicXFGVEp0SExxbWVBV0puVmZIRHRZVGwtS0tEZEZ3In0.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vdmljb2xpbmFtaHNtaHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvM2E1NTU1YTktMDA1Yi00ZDNiLWFiYjUtMDQ0ODFhNWNkNjExLWtleVRvUmVsZWFzZSJ9LCJyZXNwb25zZSI6eyJrZXkiOnsiYXR0cmlidXRlcyI6eyJjcmVhdGVkIjoxNjI4Mjk1NjQ2LCJlbmFibGVkIjp0cnVlLCJleHBvcnRhYmxlIjp0cnVlLCJyZWNvdmVyYWJsZURheXMiOjkwLCJyZWNvdmVyeUxldmVsIjoiUmVjb3ZlcmFibGUrUHVyZ2VhYmxlIiwidXBkYXRlZCI6MTYyODI5NTY0Nn0sImtleSI6eyJlIjoiQVFBQiIsImtleV9oc20iOiJleUpqYVhCb1pYSjBaWGgwSWpvaVlrMVBTMFJuVm5GTU5XNVRVR0ZvVW1kc2JVeHpiekJRTmpGSWRXRmtSVmRFTUdGbVdqWjFaVTVMVnpKdlRrOHlWelZ2V2xCTk5XRTVSVGxrYkU1NFdYVldYM0JTTTNrNFltTjFSRWRhT1VkbFVWZFdOVjlqTjBKbFNDMUVhME50ZFd4WVJXaHlWVXBSVEdaV1JFWkVPSFF5YjBoMlIyVjJiMjFwWjE5SlJYVkVRblpyWlZOT00xaGtSR1ZIYWs1M01HWmFlUzE1YlVORFdTMDFTRVY2TVU5YVpsUmZabkJCYWpGSU5WTk9RVVZrTFhvdE9HazNUM2hTUVdGQ1YxUTRkV1l4ZWxKWGEzbENaMjkwU1VkclpsSkRWSGxOZVhsbmMwUTRXbU53ZUU1NmRXRk1iVWxDVUVwYVQyaHhTSEUxZEZCUFVtbFFNVnBYYm1WaGMycEpSbUZEZG10YWFsaE5XSGh5WXpsTWMySlNURkZqT0VSWGRWUnlMV1Z6V0ZwaGJYcFROMkpZTFU0eGJsVXpWWGRPVVVkbWVFSktjRUZDUzFsbU5ESlpOM05MZUdoMFltbFVVVEJPTW1wUWNIQTNXbTVpWVRGdFFrc3dVek5qUWtFd1dFZGhaVk5NVTFCRE5DMVdlbTlLTjA1b1pqSkdhRE5EZFMxcU4wTndOSFIzZGxVNWFrdGhibWRhVm5GblgwTm5jMWhLY0ZCVlkzRmhWbVZETjFCTk1uZHFVWFpOUlhGb0xUbE9jbU5CVkc1d01VbG1TMFpMYXpOSmJFcDBhbkYwYm1aSmFtYzBkMjU0VVd4eFZXOVJTVjlIWkZkeFZsSTJNRkJLVDNWWk4yNDFVSGd0YUZSUmExWktTV3REWjI1WFpqaEpXazV2VW1SalZFOUhkWEZhTFdRMmJtNDVPV0ZSZVY5UWVXaHFVRU5GV0ZaT1gwaEtSRWxrY1U5TVp6QjVNM1l4TUROcVgxbE1XRzVpTjJ0UlUwTjVZa1ZrUlU1a1dWbExVMTlDTTBnMk9VOUxUelJNVDNwTWJUWjZRMHhOZG1SaVEzZFJTak5FV0UxSWVsZE9WbHBZYTNOVWFISkRURmM1V1RZek5WVmtiamhxVmpSUVgwOUpNV0YzWm1oU1MyeGZSbmt4WVZseVMya3pjMHhzVTFWTVFqWlBlVXBXVlVkNlpEVlpTWHBCVjFkTVlsUlhjSFYxZW5SNlVuRnBWVmd3UWxKSk1YZzNSalE0Y3pGWlowRmFlakJ3TUVkTlowNUZjMnMxTW1RMFJHNXJaM2QzVVRKb1lYaGhSVGg2Y1RWVmFYWmthRmg1UldkVlpHcERjbEZhTFUxYVZ6Tm9kMWRaVlV4dk0yZGxSbUZWVlRSVVpsQnNVV1pWUlZGblQwSnFkMDlsVG5nME0zZHlUMnR0T0dNMVpIUktjRGhDVFVONWRVUjFRVlEwZDBKUmFVOXlabGN4VW5OWmREbHlXRXczVkhrMVdERldkMGM0WjBSdlZXeERjVWxrUTFaeGFsRkdlR2RRZFhKNGIxUmxaVTFTY1VWVlJsb3piekJqTFVONlFuUnJkRUZZVEc1T2VFdHRVMHRDTm5aWlVsZDBZMDV2V2pkTmRucGhkMEprYzNFM1dFRnZlbkZRWmpsNldVVnFkMVZ5YlVoTlJUbEVNVE15VW5BMVpGZzVVVE5QZGw5Mk16Rk5OVzQxTVc5MmRteGZaV2RaVW0xelpVVmtZMFo2Y0U5cVgzbHpjamg2V1VkWlMyZFJkMGROYUdoMVMyNXlZV0ZWZWpGRlJsTjZVM0JqYm5oTmN6bDJOa1E0YkMxaVgyeEZMVzVtT1U5VmFGUktPVE5KWVRseWFVaFNiMnh2U0VaUVVEVTNOVXhmZHpSNGRtSXRRa3BPVlhOMVdYUmtXbk5XWkZkb2IzUnNOR1pvWkhOd2JUWnVielZzTkZwMFN6aHBOSGxYTTB4dGNWQjVXbEZ4VjBGTFZWOUtUR0pWWWs1elZVaEROSFZ2YWxSVmFGWnNUek5NT0dwaWRVaFBhekpITUhGNU5XSXlNbk52Wm05cVRWVlBOWEZ4ZEVJM2RuWnlaMk5FYW5ZMWNqaDRNRmR3VlRkS1EzaEtOVzV2Tkd3MlNsSkpabkk0U0Rac0xYRm1aekpHTlZocFkyNU9ZVkE1VGw5TVNYcDVZUzFZZGxOQk5XdHdVVEpZUlhnM1JWRlhTMUZLTFdVeE9FOUhVMjB6VmxwdVVFZ3hUVWRLUTJGVU1IcDFVV3MwUXpWSVpFZzBXazFaY21obGNFZENWelpEWm5SUmNHUmZjbUZ5VVVKNWJVOHhRVWMzUlVGNk5EbHNZbXgxY1U1R1pGQkpha04wTUhvMU5VdEVaamR4Tm1oM1FqVmhjMGxTUVhFMldteE9WakptWkZOWVRITlpXREY2VDJGSVNYZG1kM0p3VlV3M1YxaEJRWHBIVTNoUWNGOVFiMWs1UVRaZlJ6UjRZMXBLTUdoQmRFUlZabWR6WDNOelRGWlRabkI2ZEdGc2NXdDNSVzFCVlhKSWNXZzRhbkp0Wlc5bmJGaDJiMUJVZUVOdFgxUlJkM1ZIYnpSNWRuVm9TemRLY3pCTk1VSXdlbGR0UTJkRWFuUkNWVWw2VjJsTVYzRnRSMlZ1U0dreVZqUXdkRFpWTkV4UVRqSnhZVWh6TWpGb1Qya3liVXRGTmpad1FYb3dWM2xUUldSSFUwc3haV3hJWkdvMlpURTJYekJHTlVWSldYTlRia3QxWVRWcWVIaFRkamx5WmpOT2RYSnFVMHR5ZDBOdFRqUmllV1o0TkhkU2JYSXRablo1ZEhoQ04zTjNlamxTT0ZORGNtNVFVbWhLU1hwaVZsTmtkRzlFWVRGVkxUUlFSWFE1Y2psSE4xSm5ZVjlIYzNGQ1gwcDRjeTFVYUdaR2VuTkZka2h4V0c5d1VFTk9aWEJaTkRkeVQxb3hORlZCTlVsdlkxSTNhV1JMYWpKUFZGSm5XWGhRUW5Cek9GVXhSbk5UYjNjeGQwTnNMWEZCYjBSMk1GcFlkVkZ6ZUdONmVGZFZOVmN4WVRkaFQwWmpSSFIwVGpScGIwbHJSMFZLYzIweFpEaGpMVVJ4WjB4ME9YVnJNMU4wVTJsQ1QwRkVOVXBOTjBObU9IbHFkRkF5TlZGbldrNVdNR05JVVdSemJ6VmhlSGxDU2xkelEwdHNOWFZhT1VGdFFuRTViSE5WWVU1WGMxSTRRekpUVlRab01XcEpWVVpETkhRMmFIUmZOR0poV1U1SVNscFlaV2xVUVZkTldIcFpka3hxUTJOZmEwMVVZbTF0VEZwdFJFMUxlamgyZFdkbWJrTnhTV3hLY0ZSaFpHeHpTMGxzVWxCUlNqUXpja3B2WldKS1gzbEhSMG8yTVU5Nk1Ea3lNSFE0U3poNVRUSjBkMlExU1U5UlVIVXhPSFZ3VlU1blRrRkJRbEU0T0ZNeU5tTkxiRlEyVG1WSU9EQnpjREpNVVhNNVVHeEVSRjlXYkd4UmVWRXplaUlzSW1obFlXUmxjaUk2ZXlKaGJHY2lPaUprYVhJaUxDSmxibU1pT2lKRFMwMWZVbE5CWDBGRlUxOUxSVmxmVjFKQlVDSXNJbXRwWkNJNkltWmhhMlV0Y21Wc1pXRnpaUzFyWlhraWZTd2ljMk5vWlcxaFgzWmxjbk5wYjI0aU9pSXhMakFpZlEiLCJrZXlfb3BzIjpbIndyYXBLZXkiLCJkZWNyeXB0IiwiZW5jcnlwdCIsInVud3JhcEtleSIsInNpZ24iLCJ2ZXJpZnkiXSwia2lkIjoiaHR0cHM6Ly92aWNvbGluYW1oc21oc20ubWFuYWdlZGhzbS5henVyZS5uZXQva2V5cy8zYTU1NTVhOS0wMDViLTRkM2ItYWJiNS0wNDQ4MWE1Y2Q2MTEta2V5VG9SZWxlYXNlLzg3MTNmNjI4OWEyNDQxMzEzMDc1Njk4Yjg2MjViZjMyIiwia3R5IjoiUlNBIiwibiI6InF3bUpPckxVWUtuNWg0TkNwdVlDMW9GRlBIbXM4blhNLXozckhXSks0T1lCdnFRTHdocDZ3Qk9oc203RlBlblJ4WHpzWkFaYmpPYXFVUV9zRGtDV051bG1faWZhNkxzUnZqTV80WmVBRXhQNmthYmdrZUhVMW5tQW0wdmkyYUJLcWJ2Z3lzS2pleFJzckhDSE85enhPdGt0T3o5VzhyNEhNck5KWmtBb3UtaDV0dUJ6RmZlNURySHNUTE52X0JNRndtdndJa1hfNkdnMVNhaGdvLTI2Q1pIbDJLb2k2R1F5WVMwLW5Wd3ZKenFVWlh4TlBzbEZGTE8wRG5DZzY1aXpFcXg3S25DTkpSMG5JWjZVaGthaU1xZFpRM0phWkUxZlhDZEJyT0U5czZNQ3o2UGszZzUxcko2N2JpZWZoYWFBYVVFZlR5RHZCVGlVMHpTY2toNklzUSJ9LCJyZWxlYXNlX3BvbGljeSI6eyJjb250ZW50VHlwZSI6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLCJkYXRhIjoiZXlKaGJubFBaaUk2VzNzaVlXNTVUMllpT2x0N0ltTnNZV2x0SWpvaWMyUnJMWFJsYzNRaUxDSmxjWFZoYkhNaU9pSjBjblZsSW4xZExDSmhkWFJvYjNKcGRIa2lPaUpvZEhSd2N6b3ZMM05yY21GMGRHVnpkR0YwYVc5dUxtRjZkWEpsZDJWaWMybDBaWE11Ym1WMEx5SjlYU3dpZG1WeWMybHZiaUk2SWpFdU1DNHdJbjAifX19fQ.Dn7guUG6V0PCU3MbKUTGiVjCi66NiqMhwBLIBB-f8dJ-9jbCK-wSars5lYo4ko0gG-NfC-iXUlt5eZxdaLCRplTbu0mvIxThWuuuBOvKI3kLj7gbvIMjHaoqlCFCrpqp8n9brRzR4j6-ufG6wrYVyJBpAbr3w54jtdCY2ydEPyTvJKDd4Q3ar5COdzab8i_6812CxQYiL1-BUkkKCd1OQ_iiD5TsO-Pt0TK6Anftb7Gr_WpAlH2N1Hj7F-A68mlO7JBdEOW5eA86eSUOtxR8E0Q8-uxaTmyu6UIBfqGZK5DyBfPxFyS8B4WzkcJcnM8sdTf2jFzQOuFuDtcDIzYWZQ\"}" + }, + "Exception" : null + } ], + "variables" : [ "keytorelease92a8js" ] +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientTest.releaseKey[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientTest.releaseKey[1].json index e55a999139b8c..45b6c22594520 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientTest.releaseKey[1].json +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyClientTest.releaseKey[1].json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/3a5555a9-005b-4d3b-abb5-04481a5cd611-keyToRelease/create?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease728ha8/create?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -20,12 +20,12 @@ "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=189.181.107.174;act_addr_fam=Ipv4;", "cache-control" : "no-cache", "x-ms-request-id" : "4fa0e8e6-f715-11eb-a622-000d3aa6a10f", - "Body" : "{\"attributes\":{\"created\":1628295646,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628295646},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/3a5555a9-005b-4d3b-abb5-04481a5cd611-keyToRelease/8713f6289a2441313075698b8625bf32\",\"kty\":\"RSA-HSM\",\"n\":\"qwmJOrLUYKn5h4NCpuYC1oFFPHms8nXM-z3rHWJK4OYBvqQLwhp6wBOhsm7FPenRxXzsZAZbjOaqUQ_sDkCWNulm_ifa6LsRvjM_4ZeAExP6kabgkeHU1nmAm0vi2aBKqbvgysKjexRsrHCHO9zxOtktOz9W8r4HMrNJZkAou-h5tuBzFfe5DrHsTLNv_BMFwmvwIkX_6Gg1Sahgo-26CZHl2Koi6GQyYS0-nVwvJzqUZXxNPslFFLO0DnCg65izEqx7KnCNJR0nIZ6UhkaiMqdZQ3JaZE1fXCdBrOE9s6MCz6Pk3g51rJ67biefhaaAaUEfTyDvBTiU0zSckh6IsQ\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" + "Body" : "{\"attributes\":{\"created\":1628295646,\"enabled\":true,\"exportable\":true,\"recoverableDays\":90,\"recoveryLevel\":\"Recoverable+Purgeable\",\"updated\":1628295646},\"key\":{\"e\":\"AQAB\",\"key_ops\":[\"wrapKey\",\"decrypt\",\"encrypt\",\"unwrapKey\",\"sign\",\"verify\"],\"kid\":\"https://vicolinamhsmhsm.managedhsm.azure.net/keys/keytorelease728ha8/8713f6289a2441313075698b8625bf32\",\"kty\":\"RSA\",\"n\":\"qwmJOrLUYKn5h4NCpuYC1oFFPHms8nXM-z3rHWJK4OYBvqQLwhp6wBOhsm7FPenRxXzsZAZbjOaqUQ_sDkCWNulm_ifa6LsRvjM_4ZeAExP6kabgkeHU1nmAm0vi2aBKqbvgysKjexRsrHCHO9zxOtktOz9W8r4HMrNJZkAou-h5tuBzFfe5DrHsTLNv_BMFwmvwIkX_6Gg1Sahgo-26CZHl2Koi6GQyYS0-nVwvJzqUZXxNPslFFLO0DnCg65izEqx7KnCNJR0nIZ6UhkaiMqdZQ3JaZE1fXCdBrOE9s6MCz6Pk3g51rJ67biefhaaAaUEfTyDvBTiU0zSckh6IsQ\"},\"release_policy\":{\"contentType\":\"application/json; charset=utf-8\",\"data\":\"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOiJ0cnVlIn1dLCJhdXRob3JpdHkiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwidmVyc2lvbiI6IjEuMC4wIn0\"}}" }, "Exception" : null }, { "Method" : "POST", - "Uri" : "https://REDACTED.managedhsm.azure.net/keys/3a5555a9-005b-4d3b-abb5-04481a5cd611-keyToRelease//release?api-version=7.3-preview", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/keytorelease728ha8//release?api-version=7.3-preview", "Headers" : { "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" @@ -48,5 +48,5 @@ }, "Exception" : null } ], - "variables" : [ ] -} \ No newline at end of file + "variables" : [ "keytorelease728ha8" ] +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK128[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK128[1].json new file mode 100644 index 0000000000000..4ab0a1651a6cc --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK128[1].json @@ -0,0 +1,126 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey285768?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "201", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9cd72096-1a63-11ec-b856-000d3a9f7bf5", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"wrapKey\",\"unwrapKey\"],\"kid\":\"https://azure-kv-tests2.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210809-1-5b391b3f-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "52", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d035166-1a63-11ec-b856-000d3a9f7bf5", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"unwrapKey\",\"wrapKey\"],\"kid\":\"https://azure-kv-tests2.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9/wrapkey?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "169", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "52", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d41c16c-1a63-11ec-95c4-000d3a980532", + "Body" : "{\"alg\":\"A128KW\",\"kid\":\"https://azure-kv-tests2.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9\",\"value\":\"H6aLCoEStEeu80vY-1p7gp0-hiNx0s_l\"}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210809-1-5b391b3f-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "62", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d53265a-1a63-11ec-89ae-000d3aa45960", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"unwrapKey\",\"wrapKey\"],\"kid\":\"https://azure-kv-tests2.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9/unwrapkey?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "159", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "0", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d64b7b2-1a63-11ec-b856-000d3a9f7bf5", + "Body" : "{\"alg\":\"A128KW\",\"kid\":\"https://azure-kv-tests2.managedhsm.azure.net/keys/symmetrickey285768/be81850186f10aa0bd313c0f54c3c8c9\",\"value\":\"ABEiM0RVZneImaq7zN3u_w\"}" + }, + "Exception" : null + } ], + "variables" : [ "symmetrickey285768" ] +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK192[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK192[1].json new file mode 100644 index 0000000000000..f671801c7613f --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientManagedHsmTest.wrapUnwrapSymmetricAK192[1].json @@ -0,0 +1,126 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey494480?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "257", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9cd92b66-1a63-11ec-89ae-000d3aa45960", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"wrapKey\",\"unwrapKey\"],\"kid\":\"https://vicolinasep2hsm.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210809-1-5b391b3f-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "52", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d08d848-1a63-11ec-89ae-000d3aa45960", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"unwrapKey\",\"wrapKey\"],\"kid\":\"https://vicolinasep2hsm.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55/wrapkey?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "169", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "62", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d18b506-1a63-11ec-b856-000d3a9f7bf5", + "Body" : "{\"alg\":\"A192KW\",\"kid\":\"https://vicolinasep2hsm.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55\",\"value\":\"lneLJa5spDX5K1uXwFCu0kaKuKF62E5d\"}" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "330", + "x-frame-options" : "SAMEORIGIN", + "x-ms-build-version" : "1.0.20210809-1-5b391b3f-develop", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "0", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d2af446-1a63-11ec-89ae-000d3aa45960", + "Body" : "{\"attributes\":{\"created\":1632177567,\"enabled\":true,\"exportable\":false,\"recoverableDays\":7,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"updated\":1632177567},\"key\":{\"key_ops\":[\"unwrapKey\",\"wrapKey\"],\"kid\":\"https://vicolinasep2hsm.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55\",\"kty\":\"oct-HSM\"}}" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://REDACTED.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55/unwrapkey?api-version=7.3-preview", + "Headers" : { + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "Content-Type" : "application/json" + }, + "Response" : { + "content-length" : "159", + "x-frame-options" : "SAMEORIGIN", + "retry-after" : "0", + "StatusCode" : "200", + "strict-transport-security" : "max-age=31536000; includeSubDomains", + "x-ms-server-latency" : "0", + "content-security-policy" : "default-src 'self'", + "x-content-type-options" : "nosniff", + "content-type" : "application/json; charset=utf-8", + "x-ms-keyvault-region" : "centralus", + "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=Ipv4;", + "cache-control" : "no-cache", + "x-ms-request-id" : "9d3321c0-1a63-11ec-b856-000d3a9f7bf5", + "Body" : "{\"alg\":\"A192KW\",\"kid\":\"https://vicolinasep2hsm.managedhsm.azure.net/keys/symmetrickey494480/4b7443066e9303d11a627dc5d9198c55\",\"value\":\"ABEiM0RVZneImaq7zN3u_w\"}" + }, + "Exception" : null + } ], + "variables" : [ "symmetrickey494480" ] +} \ No newline at end of file diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK128[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK128[1].json index 533318784b32a..dd639133887e4 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK128[1].json +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK128[1].json @@ -1,56 +1,56 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.vault.azure.net/secrets/secretKey?api-version=7.3-preview", + "Uri" : "https://REDACTED.vault.azure.net/secrets/secretkey87617282?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "267", + "content-length" : "281", "X-Content-Type-Options" : "nosniff", "Pragma" : "no-cache", "retry-after" : "0", "StatusCode" : "200", - "Date" : "Fri, 23 Apr 2021 07:48:37 GMT", + "Date" : "Mon, 20 Sep 2021 22:56:41 GMT", "Strict-Transport-Security" : "max-age=31536000;includeSubDomains", "Cache-Control" : "no-cache", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=InterNetwork;", "Expires" : "-1", - "x-ms-request-id" : "0bb4aafb-2891-4091-b44c-07c1057475be", - "x-ms-keyvault-service-version" : "1.2.236.0", - "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODw==\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretKey/fe1b20d906094377b48e6cf74c43bde3\",\"attributes\":{\"enabled\":true,\"created\":1619164118,\"updated\":1619164118,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}", + "x-ms-request-id" : "686a1fdd-6646-42f7-9d60-87fc07b95bc6", + "x-ms-keyvault-service-version" : "1.9.79.2", + "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODw==\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretkey87617282/b1103e3836f449969aee6643ad8574a5\",\"attributes\":{\"enabled\":true,\"created\":1632178602,\"updated\":1632178602,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"recoverableDays\":7}}", "Content-Type" : "application/json; charset=utf-8", "X-Powered-By" : "ASP.NET" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.vault.azure.net/secrets/secretKey/fe1b20d906094377b48e6cf74c43bde3?api-version=7.3-preview", + "Uri" : "https://REDACTED.vault.azure.net/secrets/secretkey87617282/b1103e3836f449969aee6643ad8574a5?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "267", + "content-length" : "281", "X-Content-Type-Options" : "nosniff", "Pragma" : "no-cache", "retry-after" : "0", "StatusCode" : "200", - "Date" : "Fri, 23 Apr 2021 07:48:38 GMT", + "Date" : "Mon, 20 Sep 2021 22:56:41 GMT", "Strict-Transport-Security" : "max-age=31536000;includeSubDomains", "Cache-Control" : "no-cache", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=InterNetwork;", "Expires" : "-1", - "x-ms-request-id" : "3197b304-2e96-4589-bf92-de251afaf090", - "x-ms-keyvault-service-version" : "1.2.236.0", - "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODw==\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretKey/fe1b20d906094377b48e6cf74c43bde3\",\"attributes\":{\"enabled\":true,\"created\":1619164118,\"updated\":1619164118,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}", + "x-ms-request-id" : "a733e06a-0731-4164-92ea-8b4068d33ac1", + "x-ms-keyvault-service-version" : "1.9.79.2", + "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODw==\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretkey87617282/b1103e3836f449969aee6643ad8574a5\",\"attributes\":{\"enabled\":true,\"created\":1632178602,\"updated\":1632178602,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"recoverableDays\":7}}", "Content-Type" : "application/json; charset=utf-8", "X-Powered-By" : "ASP.NET" }, "Exception" : null } ], - "variables" : [ ] + "variables" : [ "secretkey87617282" ] } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK192[1].json b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK192[1].json index 8391e9c05facd..cdfbad59e9da2 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK192[1].json +++ b/sdk/keyvault/azure-security-keyvault-keys/src/test/resources/session-records/KeyEncryptionKeyClientTest.wrapUnwrapSymmetricAK192[1].json @@ -1,56 +1,56 @@ { "networkCallRecords" : [ { "Method" : "PUT", - "Uri" : "https://REDACTED.vault.azure.net/secrets/secretKey?api-version=7.3-preview", + "Uri" : "https://REDACTED.vault.azure.net/secrets/secretkey14694bf4?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "275", + "content-length" : "289", "X-Content-Type-Options" : "nosniff", "Pragma" : "no-cache", "retry-after" : "0", "StatusCode" : "200", - "Date" : "Fri, 23 Apr 2021 07:48:38 GMT", + "Date" : "Mon, 20 Sep 2021 22:56:41 GMT", "Strict-Transport-Security" : "max-age=31536000;includeSubDomains", "Cache-Control" : "no-cache", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=InterNetwork;", "Expires" : "-1", - "x-ms-request-id" : "9028c4c1-dfe2-41c1-9dc5-6770d9b3a49b", - "x-ms-keyvault-service-version" : "1.2.236.0", - "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYX\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretKey/a0a903ed3ded491da68d4618cccc9a9f\",\"attributes\":{\"enabled\":true,\"created\":1619164118,\"updated\":1619164118,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}", + "x-ms-request-id" : "8553b0c1-6071-4f6d-8fe3-5ad2890e2c53", + "x-ms-keyvault-service-version" : "1.9.79.2", + "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYX\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretkey14694bf4/8f01ce961c4d4d7d8591f67741a2c9aa\",\"attributes\":{\"enabled\":true,\"created\":1632178602,\"updated\":1632178602,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"recoverableDays\":7}}", "Content-Type" : "application/json; charset=utf-8", "X-Powered-By" : "ASP.NET" }, "Exception" : null }, { "Method" : "GET", - "Uri" : "https://REDACTED.vault.azure.net/secrets/secretKey/a0a903ed3ded491da68d4618cccc9a9f?api-version=7.3-preview", + "Uri" : "https://REDACTED.vault.azure.net/secrets/secretkey14694bf4/8f01ce961c4d4d7d8591f67741a2c9aa?api-version=7.3-preview", "Headers" : { - "User-Agent" : "azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", + "User-Agent" : "KEKClientTestBase azsdk-java-client_name/client_version (11.0.6; Windows 10; 10.0)", "Content-Type" : "application/json" }, "Response" : { - "content-length" : "275", + "content-length" : "289", "X-Content-Type-Options" : "nosniff", "Pragma" : "no-cache", "retry-after" : "0", "StatusCode" : "200", - "Date" : "Fri, 23 Apr 2021 07:48:38 GMT", + "Date" : "Mon, 20 Sep 2021 22:56:41 GMT", "Strict-Transport-Security" : "max-age=31536000;includeSubDomains", "Cache-Control" : "no-cache", - "x-ms-keyvault-region" : "westus", + "x-ms-keyvault-region" : "centralus", "x-ms-keyvault-network-info" : "conn_type=Ipv4;addr=174.127.169.154;act_addr_fam=InterNetwork;", "Expires" : "-1", - "x-ms-request-id" : "d095c059-55cb-4b95-aca7-1b1d196b1193", - "x-ms-keyvault-service-version" : "1.2.236.0", - "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYX\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretKey/a0a903ed3ded491da68d4618cccc9a9f\",\"attributes\":{\"enabled\":true,\"created\":1619164118,\"updated\":1619164118,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}", + "x-ms-request-id" : "2c13abed-7ffe-478b-9b76-2ed2f017d147", + "x-ms-keyvault-service-version" : "1.9.79.2", + "Body" : "{\"value\":\"AAECAwQFBgcICQoLDA0ODxAREhMUFRYX\",\"id\":\"https://azure-kv-tests2.vault.azure.net/secrets/secretkey14694bf4/8f01ce961c4d4d7d8591f67741a2c9aa\",\"attributes\":{\"enabled\":true,\"created\":1632178602,\"updated\":1632178602,\"recoveryLevel\":\"CustomizedRecoverable+Purgeable\",\"recoverableDays\":7}}", "Content-Type" : "application/json; charset=utf-8", "X-Powered-By" : "ASP.NET" }, "Exception" : null } ], - "variables" : [ ] + "variables" : [ "secretkey14694bf4" ] } diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/SecretAsyncClient.java b/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/SecretAsyncClient.java index 8ab8444ff8304..7c705151dac8e 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/SecretAsyncClient.java +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/SecretAsyncClient.java @@ -58,7 +58,6 @@ public final class SecretAsyncClient { static final String ACCEPT_LANGUAGE = "en-US"; static final int DEFAULT_MAX_PAGE_RESULTS = 25; static final String CONTENT_TYPE_HEADER_VALUE = "application/json"; - static final String KEY_VAULT_SCOPE = "https://vault.azure.net/.default"; // Please see here // for more information on Azure resource provider namespaces. private static final String KEYVAULT_TRACING_NAMESPACE_VALUE = "Microsoft.KeyVault"; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/KeyVaultCredentialPolicy.java b/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/KeyVaultCredentialPolicy.java index ddf4c1c267cff..a57e2e83dbcde 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/KeyVaultCredentialPolicy.java +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/KeyVaultCredentialPolicy.java @@ -1,108 +1,78 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. - package com.azure.security.keyvault.secrets.implementation; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; import com.azure.core.http.HttpPipelineCallContext; -import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpRequest; import com.azure.core.http.HttpResponse; -import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.util.CoreUtils; -import com.azure.core.util.logging.ClientLogger; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** - * A policy that authenticates requests with Azure Key Vault service. The content added by this policy - * is leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. + * A policy that authenticates requests with the Azure Key Vault service. The content added by this policy is + * leveraged in {@link TokenCredential} to get and set the correct "Authorization" header value. * * @see TokenCredential */ -public final class KeyVaultCredentialPolicy implements HttpPipelinePolicy { - private final ClientLogger logger = new ClientLogger(KeyVaultCredentialPolicy.class); - private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; +public class KeyVaultCredentialPolicy extends BearerTokenAuthenticationPolicy { private static final String BEARER_TOKEN_PREFIX = "Bearer "; - private static final String AUTHORIZATION = "Authorization"; - private final ScopeTokenCache cache; + private static final String CONTENT_LENGTH_HEADER = "Content-Length"; + private static final String KEY_VAULT_STASHED_CONTENT_KEY = "KeyVaultCredentialPolicyStashedBody"; + private static final String KEY_VAULT_STASHED_CONTENT_LENGTH_KEY = "KeyVaultCredentialPolicyStashedContentLength"; + private static final String WWW_AUTHENTICATE = "WWW-Authenticate"; + private static final ConcurrentMap SCOPE_CACHE = new ConcurrentHashMap<>(); + private String scope; /** - * Creates KeyVaultCredentialPolicy. + * Creates a {@link KeyVaultCredentialPolicy}. * - * @param credential the token credential to authenticate the request + * @param credential The token credential to authenticate the request. */ public KeyVaultCredentialPolicy(TokenCredential credential) { - Objects.requireNonNull(credential); - this.cache = new ScopeTokenCache((request) -> credential.getToken(request)); - } - - /** - * Adds the required header to authenticate a request to Azure Key Vault service. - * - * @param context The request context - * @param next The next HTTP pipeline policy to process the {@code context's} request after this policy completes. - * @return A {@link Mono} representing the HTTP response that will arrive asynchronously. - */ - @Override - public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { - if ("http".equals(context.getHttpRequest().getUrl().getProtocol())) { - return Mono.error(new RuntimeException("Token credentials require a URL using the HTTPS protocol scheme")); - } - return next.clone().process() - .doOnNext(httpResponse -> { - // KV follows challenge based auth. Currently every service - // call hit the endpoint for challenge and then resend the - // request with token. The challenge response body is not - // consumed, not draining/closing the body will result in leak. - // Ref: https://github.com/Azure/azure-sdk-for-java/issues/7934 - // https://github.com/Azure/azure-sdk-for-java/issues/10467 - try { - httpResponse.getBody().subscribe().dispose(); - } catch (RuntimeException ignored) { - logger.logExceptionAsWarning(ignored); - } - // The ReactorNettyHttpResponse::close() should be sufficient - // and should take care similar body disposal but looks like that - // is not happening, need to re-visit the close() method. - }) - .map(res -> res.getHeaderValue(WWW_AUTHENTICATE)) - .map(header -> extractChallenge(header, BEARER_TOKEN_PREFIX)) - .flatMap(map -> { - cache.setTokenRequest(new TokenRequestContext().addScopes(map.get("resource") + "/.default")); - return cache.getToken(); - }) - .flatMap(token -> { - context.getHttpRequest().setHeader(AUTHORIZATION, BEARER_TOKEN_PREFIX + token.getToken()); - return next.process(); - }); + super(credential); } /** - * Extracts the challenge off the authentication header. + * Extracts attributes off the bearer challenge in the authentication header. * - * @param authenticateHeader The authentication header containing all the challenges. + * @param authenticateHeader The authentication header containing the challenge. * @param authChallengePrefix The authentication challenge name. - * @return a challenge map. + * + * @return A challenge attributes map. */ - private static Map extractChallenge(String authenticateHeader, String authChallengePrefix) { - if (!isValidChallenge(authenticateHeader, authChallengePrefix)) { - return null; + private static Map extractChallengeAttributes(String authenticateHeader, + String authChallengePrefix) { + if (!isBearerChallenge(authenticateHeader, authChallengePrefix)) { + return Collections.emptyMap(); } + authenticateHeader = authenticateHeader.toLowerCase(Locale.ROOT).replace(authChallengePrefix.toLowerCase(Locale.ROOT), ""); - String[] challenges = authenticateHeader.split(", "); - Map challengeMap = new HashMap<>(); - for (String pair : challenges) { + String[] attributes = authenticateHeader.split(", "); + Map attributeMap = new HashMap<>(); + + for (String pair : attributes) { String[] keyValue = pair.split("="); - challengeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); + + attributeMap.put(keyValue[0].replaceAll("\"", ""), keyValue[1].replaceAll("\"", "")); } - return challengeMap; + + return attributeMap; } /** @@ -110,10 +80,107 @@ private static Map extractChallenge(String authenticateHeader, S * * @param authenticateHeader The authentication header containing all the challenges. * @param authChallengePrefix The authentication challenge name. - * @return A boolean indicating tha challenge is valid or not. + * @return A boolean indicating if the challenge is a bearer challenge or not. */ - private static boolean isValidChallenge(String authenticateHeader, String authChallengePrefix) { + private static boolean isBearerChallenge(String authenticateHeader, String authChallengePrefix) { return (!CoreUtils.isNullOrEmpty(authenticateHeader) && authenticateHeader.toLowerCase(Locale.ROOT).startsWith(authChallengePrefix.toLowerCase(Locale.ROOT))); } + + @Override + public Mono authorizeRequest(HttpPipelineCallContext context) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + + // If this policy doesn't have an authorityScope cached try to get it from the static challenge cache. + if (this.scope == null) { + String authority = getRequestAuthority(request); + this.scope = SCOPE_CACHE.get(authority); + } + + if (this.scope != null) { + // We fetched the scope from the cache, but we have not initialized the scopes in the base yet. + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext); + } + + // The body is removed from the initial request because Key Vault supports other authentication schemes which + // also protect the body of the request. As a result, before we know the auth scheme we need to avoid sending + // an unprotected body to Key Vault. We don't currently support this enhanced auth scheme in the SDK but we + // still don't want to send any unprotected data to vaults which require it. + + // Do not overwrite previous contents if retrying after initial request failed (e.g. timeout). + if (!context.getData(KEY_VAULT_STASHED_CONTENT_KEY).isPresent()) { + if (request.getBody() != null) { + context.setData(KEY_VAULT_STASHED_CONTENT_KEY, request.getBody()); + context.setData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY, + request.getHeaders().getValue(CONTENT_LENGTH_HEADER)); + request.setHeader(CONTENT_LENGTH_HEADER, "0"); + request.setBody((Flux) null); + } + } + + return Mono.empty(); + }); + } + + @SuppressWarnings("unchecked") + @Override + public Mono authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response) { + return Mono.defer(() -> { + HttpRequest request = context.getHttpRequest(); + Optional contentOptional = context.getData(KEY_VAULT_STASHED_CONTENT_KEY); + Optional contentLengthOptional = context.getData(KEY_VAULT_STASHED_CONTENT_LENGTH_KEY); + + if (request.getBody() == null && contentOptional.isPresent() && contentLengthOptional.isPresent()) { + request.setBody((Flux) contentOptional.get()); + request.setHeader(CONTENT_LENGTH_HEADER, (String) contentLengthOptional.get()); + } + + String authority = getRequestAuthority(request); + Map challengeAttributes = + extractChallengeAttributes(response.getHeaderValue(WWW_AUTHENTICATE), BEARER_TOKEN_PREFIX); + String scope = challengeAttributes.get("resource"); + + if (scope != null) { + scope = scope + "/.default"; + } else { + scope = challengeAttributes.get("scope"); + } + + if (scope == null) { + this.scope = SCOPE_CACHE.get(authority); + + if (this.scope == null) { + return Mono.just(false); + } + } else { + this.scope = scope; + + SCOPE_CACHE.put(authority, this.scope); + } + + TokenRequestContext tokenRequestContext = new TokenRequestContext().addScopes(this.scope); + + return setAuthorizationHeader(context, tokenRequestContext) + .then(Mono.just(true)); + }); + } + + static void clearCache() { + SCOPE_CACHE.clear(); + } + + private static String getRequestAuthority(HttpRequest request) { + URL url = request.getUrl(); + String authority = url.getAuthority(); + int port = url.getPort(); + + if (!authority.contains(":") && port > 0) { + authority = authority + ":" + port; + } + + return authority; + } } diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/ScopeTokenCache.java b/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/ScopeTokenCache.java deleted file mode 100644 index a46c76cb5247b..0000000000000 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/main/java/com/azure/security/keyvault/secrets/implementation/ScopeTokenCache.java +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.security.keyvault.secrets.implementation; - -import com.azure.core.credential.AccessToken; -import com.azure.core.credential.TokenRequestContext; -import reactor.core.publisher.FluxSink; -import reactor.core.publisher.Mono; -import reactor.core.publisher.ReplayProcessor; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Function; - -/** - * A token cache that supports caching a token and refreshing it. - */ -class ScopeTokenCache { - private final AtomicBoolean wip; - private AccessToken cache; - private final ReplayProcessor emitterProcessor = ReplayProcessor.create(1); - private final FluxSink sink = emitterProcessor.sink(FluxSink.OverflowStrategy.BUFFER); - private final Function> getNew; - private TokenRequestContext request; - - - /** - * Creates an instance of RefreshableTokenCredential with default scheme "Bearer". - * - * @param getNew a method to get a new token - */ - ScopeTokenCache(Function> getNew) { - this.wip = new AtomicBoolean(false); - this.getNew = getNew; - } - - public void setTokenRequest(TokenRequestContext request) { - this.request = request; - } - - /** - * Asynchronously get a token from either the cache or replenish the cache with a new token. - * @return a Publisher that emits an AccessToken - */ - public Mono getToken() { - if (cache != null && !cache.isExpired()) { - return Mono.just(cache); - } - return Mono.defer(() -> { - if (!wip.getAndSet(true)) { - return getNew.apply(request).doOnNext(ac -> cache = ac) - .doOnNext(sink::next) - .doOnError(sink::error) - .doOnTerminate(() -> wip.set(false)); - } else { - return emitterProcessor.next(); - } - }); - } -} diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretAsyncClientTest.java b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretAsyncClientTest.java index c6dd01170111d..b8f933fd45893 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretAsyncClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretAsyncClientTest.java @@ -40,7 +40,7 @@ protected void beforeTest() { private void initializeClient(HttpClient httpClient, SecretServiceVersion serviceVersion) { client = spy(new SecretClientBuilder() - .pipeline(getHttpPipeline(httpClient, serviceVersion)) + .pipeline(getHttpPipeline(httpClient)) .vaultUrl(getEndpoint()) .serviceVersion(serviceVersion) .buildAsyncClient()); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTest.java b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTest.java index e921fd8213895..efa0becc78c6b 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTest.java +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTest.java @@ -37,7 +37,7 @@ protected void beforeTest() { private void initializeClient(HttpClient httpClient, SecretServiceVersion serviceVersion) { SecretAsyncClient asyncClient = spy(new SecretClientBuilder() - .pipeline(getHttpPipeline(httpClient, serviceVersion)) + .pipeline(getHttpPipeline(httpClient)) .vaultUrl(getEndpoint()) .serviceVersion(serviceVersion) .buildAsyncClient()); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTestBase.java b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTestBase.java index f4e1b48a3dde0..c06109fa9995e 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTestBase.java +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/test/java/com/azure/security/keyvault/secrets/SecretClientTestBase.java @@ -8,7 +8,6 @@ import com.azure.core.http.HttpClient; import com.azure.core.http.HttpPipeline; import com.azure.core.http.HttpPipelineBuilder; -import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; import com.azure.core.http.policy.ExponentialBackoff; import com.azure.core.http.policy.HttpLogDetailLevel; import com.azure.core.http.policy.HttpLogOptions; @@ -24,6 +23,7 @@ import com.azure.core.util.Configuration; import com.azure.core.util.CoreUtils; import com.azure.identity.ClientSecretCredentialBuilder; +import com.azure.security.keyvault.secrets.implementation.KeyVaultCredentialPolicy; import com.azure.security.keyvault.secrets.models.KeyVaultSecret; import com.azure.security.keyvault.secrets.models.SecretProperties; @@ -61,7 +61,7 @@ protected String getTestName() { void beforeTestSetup() { } - HttpPipeline getHttpPipeline(HttpClient httpClient, SecretServiceVersion serviceVersion) { + HttpPipeline getHttpPipeline(HttpClient httpClient) { TokenCredential credential = null; if (!interceptorManager.isPlaybackMode()) { @@ -80,12 +80,12 @@ HttpPipeline getHttpPipeline(HttpClient httpClient, SecretServiceVersion service // Closest to API goes first, closest to wire goes last. final List policies = new ArrayList<>(); - policies.add(new UserAgentPolicy(SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone(), serviceVersion)); + policies.add(new UserAgentPolicy(null, SDK_NAME, SDK_VERSION, Configuration.getGlobalConfiguration().clone())); HttpPolicyProviders.addBeforeRetryPolicies(policies); RetryStrategy strategy = new ExponentialBackoff(5, Duration.ofSeconds(2), Duration.ofSeconds(16)); policies.add(new RetryPolicy(strategy)); if (credential != null) { - policies.add(new BearerTokenAuthenticationPolicy(credential, SecretAsyncClient.KEY_VAULT_SCOPE)); + policies.add(new KeyVaultCredentialPolicy(credential)); } HttpPolicyProviders.addAfterRetryPolicies(policies); policies.add(new HttpLoggingPolicy(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))); diff --git a/sdk/keyvault/platform-matrix.json b/sdk/keyvault/platform-matrix.json index 6b17c89b53fb4..740dbaa6dcee9 100644 --- a/sdk/keyvault/platform-matrix.json +++ b/sdk/keyvault/platform-matrix.json @@ -21,12 +21,6 @@ "Pool": "azsdk-pool-mms-ubuntu-2004-general", "TestGoals": "surefire:test", "TestFromSource": true - }, - "windows-2019_am_verify": { - "OSVmImage": "MMS2019", - "Pool": "azsdk-pool-mms-win-2019-general", - "AdditionalOptions": "-am", - "TestGoals": "verify" } }, "ArmTemplateParameters": "@{ enableHsm = $true }",