From 8bf22843b08ae3487e9d2bbd207a54a17879d288 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Mon, 7 Apr 2025 23:10:00 +0000 Subject: [PATCH] CodeGen from PR 33771 in Azure/azure-rest-api-specs Merge 9a9c7333b2f477bfcf6505d1fb334720c425655e into b65cbab6abfdad4135f411bb1aaaeb76d27e4e70 --- .../azure-security-keyvault-keys/CHANGELOG.md | 469 +++++++++++++++++- .../keys/implementation/KeyClientImpl.java | 447 ++++++++++++++++- .../models/JsonWebKeySignatureAlgorithm.java | 18 + .../implementation/models/KeyAttestation.java | 218 ++++++++ .../implementation/models/KeyAttributes.java | 31 ++ .../tsp-location.yaml | 7 +- 6 files changed, 1176 insertions(+), 14 deletions(-) create mode 100644 sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttestation.java diff --git a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md index 0e2ec443b57a..07996b43563c 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md @@ -2,13 +2,474 @@ ## 4.10.0-beta.1 (Unreleased) -### Features Added - ### Breaking Changes -### Bugs Fixed +#### `implementation.models.KeyListResult` was removed -### Other Changes +#### `implementation.models.KeyExportParameters` was removed + +#### `implementation.models.Error` was removed + +#### `implementation.models.DeletedKeyListResult` was removed + +#### `implementation.models.KeyProperties` was removed + +#### `implementation.models.Attributes` was removed + +#### `implementation.models.KeyVaultError` was removed + +#### `implementation.models.KeyVaultErrorException` was removed + +#### `implementation.models.KeyAttributes` was modified + +* `setEnabled(java.lang.Boolean)` was removed +* `setExpires(java.time.OffsetDateTime)` was removed +* `setNotBefore(java.time.OffsetDateTime)` was removed + +#### `implementation.models.DeletedKeyBundle` was modified + +* `setReleasePolicy(implementation.models.KeyReleasePolicy)` was removed +* `setAttributes(implementation.models.KeyAttributes)` was removed +* `setRecoveryId(java.lang.String)` was removed +* `setKey(implementation.models.JsonWebKey)` was removed +* `setTags(java.util.Map)` was removed + +#### `implementation.models.RandomBytes` was modified + +* `setValue(byte[])` was removed + +#### `implementation.models.KeyItem` was modified + +* `setAttributes(implementation.models.KeyAttributes)` was removed +* `setKid(java.lang.String)` was removed +* `setTags(java.util.Map)` was removed + +#### `implementation.models.KeyImportParameters` was modified + +* `setKey(implementation.models.JsonWebKey)` was removed + +#### `implementation.models.KeyVerifyParameters` was modified + +* `setAlgorithm(implementation.models.JsonWebKeySignatureAlgorithm)` was removed +* `setDigest(byte[])` was removed +* `setSignature(byte[])` was removed + +#### `implementation.models.KeyReleaseParameters` was modified + +* `setTargetAttestationToken(java.lang.String)` was removed + +#### `implementation.models.DeletedKeyItem` was modified + +* `setTags(java.util.Map)` was removed +* `setKid(java.lang.String)` was removed +* `setAttributes(implementation.models.KeyAttributes)` was removed +* `setRecoveryId(java.lang.String)` was removed + +#### `implementation.models.KeyOperationsParameters` was modified + +* `setAlgorithm(implementation.models.JsonWebKeyEncryptionAlgorithm)` was removed +* `setValue(byte[])` was removed + +#### `implementation.KeyVaultKeysUtils` was modified + +* `mapGetKeyException(implementation.models.KeyVaultErrorException)` was removed + +#### `implementation.models.GetRandomBytesRequest` was modified + +* `setCount(int)` was removed + +#### `implementation.models.KeySignParameters` was modified + +* `setAlgorithm(implementation.models.JsonWebKeySignatureAlgorithm)` was removed +* `setValue(byte[])` was removed + +#### `implementation.KeyClientImpl$KeyClientService` was modified + +* `decrypt(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `recoverDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getRandomBytesSync(java.lang.String,java.lang.String,implementation.models.GetRandomBytesRequest,java.lang.String,com.azure.core.util.Context)` was removed +* `unwrapKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `wrapKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyRotationPolicy(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyVersionsSync(java.lang.String,java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyUpdateParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `purgeDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeys(java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKeyRotationPolicy(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy,java.lang.String,com.azure.core.util.Context)` was removed +* `decryptSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `rotateKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `purgeDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `release(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyReleaseParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `backupKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeysNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeysSync(java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `signSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeySignParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyRotationPolicySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKeyRotationPolicySync(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy,java.lang.String,com.azure.core.util.Context)` was removed +* `encryptSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyVersionsNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `unwrapKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `backupKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeysNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `createKeySync(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyCreateParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `verify(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyVerifyParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyVersionsNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `createKey(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyCreateParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `restoreKeySync(java.lang.String,java.lang.String,implementation.models.KeyRestoreParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeysSync(java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `importKey(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyImportParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `verifySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyVerifyParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `restoreKey(java.lang.String,java.lang.String,implementation.models.KeyRestoreParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeysNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `rotateKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `importKeySync(java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyImportParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeysNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `recoverDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `encrypt(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `sign(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeySignParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyUpdateParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `releaseSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyReleaseParameters,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyVersions(java.lang.String,java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeys(java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getRandomBytes(java.lang.String,java.lang.String,implementation.models.GetRandomBytesRequest,java.lang.String,com.azure.core.util.Context)` was removed +* `wrapKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,implementation.models.KeyOperationsParameters,java.lang.String,com.azure.core.util.Context)` was removed + +#### `implementation.models.KeyRestoreParameters` was modified + +* `setKeyBundleBackup(byte[])` was removed + +#### `implementation.KeyClientImpl` was modified + +* `restoreKeyAsync(java.lang.String,byte[])` was removed +* `updateKeyRotationPolicyAsync(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy)` was removed +* `rotateKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getRandomBytesWithResponse(java.lang.String,int,com.azure.core.util.Context)` was removed +* `recoverDeletedKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String)` was removed +* `verifyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[],com.azure.core.util.Context)` was removed +* `getDeletedKeysAsync(java.lang.String,java.lang.Integer)` was removed +* `encryptWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `getKeysNextSinglePageAsync(java.lang.String,java.lang.String)` was removed +* `signWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],com.azure.core.util.Context)` was removed +* `recoverDeletedKeyAsync(java.lang.String,java.lang.String)` was removed +* `getRandomBytes(java.lang.String,int)` was removed +* `decryptWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `backupKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getApiVersion()` was removed +* `getDeletedKeysNextSinglePageAsync(java.lang.String,java.lang.String)` was removed +* `importKeyWithResponse(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `getKeyRotationPolicyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getKeyVersionsSinglePageAsync(java.lang.String,java.lang.String,java.lang.Integer)` was removed +* `getDeletedKeysAsync(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `updateKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `unwrapKeyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `updateKeyRotationPolicyWithResponse(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy,com.azure.core.util.Context)` was removed +* `purgeDeletedKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `encrypt(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `rotateKeyAsync(java.lang.String,java.lang.String)` was removed +* `backupKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `verifyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[],com.azure.core.util.Context)` was removed +* `releaseWithResponse(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm,com.azure.core.util.Context)` was removed +* `updateKey(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `getDeletedKeyAsync(java.lang.String,java.lang.String)` was removed +* `getDeletedKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeysAsync(java.lang.String,java.lang.Integer)` was removed +* `recoverDeletedKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `importKeyWithResponseAsync(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `getKeyRotationPolicyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `encryptAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `purgeDeletedKeyAsync(java.lang.String,java.lang.String)` was removed +* `createKeyAsync(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy)` was removed +* `getKeyVersionsNextSinglePageAsync(java.lang.String,java.lang.String)` was removed +* `rotateKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `purgeDeletedKey(java.lang.String,java.lang.String)` was removed +* `getDeletedKeys(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `wrapKeyWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `getKeyVersionsNextSinglePageAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeyVersionsSinglePage(java.lang.String,java.lang.String,java.lang.Integer)` was removed +* `createKeyWithResponseAsync(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy)` was removed +* `signWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],com.azure.core.util.Context)` was removed +* `rotateKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `unwrapKey(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `getKeyWithResponse(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getDeletedKeysSinglePage(java.lang.String,java.lang.Integer)` was removed +* `restoreKeyWithResponse(java.lang.String,byte[],com.azure.core.util.Context)` was removed +* `backupKey(java.lang.String,java.lang.String)` was removed +* `wrapKeyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `getKeyVersionsAsync(java.lang.String,java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `releaseAsync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm)` was removed +* `unwrapKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `deleteKey(java.lang.String,java.lang.String)` was removed +* `deleteKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKeyRotationPolicyWithResponseAsync(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy,com.azure.core.util.Context)` was removed +* `restoreKeyAsync(java.lang.String,byte[],com.azure.core.util.Context)` was removed +* `updateKeyRotationPolicyAsync(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy,com.azure.core.util.Context)` was removed +* `wrapKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `unwrapKeyWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `recoverDeletedKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getKeyAsync(java.lang.String,java.lang.String,java.lang.String)` was removed +* `purgeDeletedKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getKeysNextSinglePage(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeysNextSinglePageAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `encryptAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `getDeletedKeysSinglePage(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `getKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getDeletedKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKeyAsync(java.lang.String,java.lang.String)` was removed +* `getKeyVersionsNextSinglePage(java.lang.String,java.lang.String)` was removed +* `verifyWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[],com.azure.core.util.Context)` was removed +* `verifyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[])` was removed +* `purgeDeletedKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeysSinglePage(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `restoreKeyWithResponseAsync(java.lang.String,byte[])` was removed +* `getKeyVersionsAsync(java.lang.String,java.lang.String,java.lang.Integer)` was removed +* `getKeyVersionsNextSinglePage(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `restoreKeyWithResponseAsync(java.lang.String,byte[],com.azure.core.util.Context)` was removed +* `decryptAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `wrapKey(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `importKeyAsync(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `importKey(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `backupKeyAsync(java.lang.String,java.lang.String)` was removed +* `updateKeyRotationPolicyWithResponseAsync(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy)` was removed +* `getDeletedKey(java.lang.String,java.lang.String)` was removed +* `decryptWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `getKeyRotationPolicy(java.lang.String,java.lang.String)` was removed +* `getRandomBytesWithResponseAsync(java.lang.String,int,com.azure.core.util.Context)` was removed +* `getKeyVersions(java.lang.String,java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `backupKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getKeyVersionsSinglePageAsync(java.lang.String,java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `releaseAsync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm,com.azure.core.util.Context)` was removed +* `createKey(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy)` was removed +* `updateKeyRotationPolicy(java.lang.String,java.lang.String,implementation.models.KeyRotationPolicy)` was removed +* `getKeysNextSinglePageAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `sign(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[])` was removed +* `getDeletedKeys(java.lang.String,java.lang.Integer)` was removed +* `createKeyWithResponse(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `getDeletedKeysSinglePageAsync(java.lang.String,java.lang.Integer)` was removed +* `recoverDeletedKey(java.lang.String,java.lang.String)` was removed +* `getDeletedKeysNextSinglePage(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `importKeyWithResponseAsync(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `signAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[])` was removed +* `rotateKey(java.lang.String,java.lang.String)` was removed +* `getKeyVersions(java.lang.String,java.lang.String,java.lang.Integer)` was removed +* `importKeyAsync(java.lang.String,java.lang.String,implementation.models.JsonWebKey,java.lang.Boolean,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `getKeysNextSinglePage(java.lang.String,java.lang.String)` was removed +* `getKeys(java.lang.String,java.lang.Integer)` was removed +* `getKeysAsync(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `releaseWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm)` was removed +* `restoreKey(java.lang.String,byte[])` was removed +* `getKeyRotationPolicyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getKeys(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `backupKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `deleteKeyWithResponseAsync(java.lang.String,java.lang.String)` was removed +* `getDeletedKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `signWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[])` was removed +* `unwrapKeyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `wrapKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `decrypt(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `purgeDeletedKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getRandomBytesAsync(java.lang.String,int,com.azure.core.util.Context)` was removed +* `getKeyAsync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `verifyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[])` was removed +* `wrapKeyAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `createKeyWithResponseAsync(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `getDeletedKeysNextSinglePage(java.lang.String,java.lang.String)` was removed +* `getKeyRotationPolicyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `encryptWithResponse(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `rotateKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `getRandomBytesAsync(java.lang.String,int)` was removed +* `recoverDeletedKeyAsync(java.lang.String,java.lang.String,com.azure.core.util.Context)` was removed +* `updateKeyAsync(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy)` was removed +* `getKeyRotationPolicyAsync(java.lang.String,java.lang.String)` was removed +* `getRandomBytesWithResponseAsync(java.lang.String,int)` was removed +* `updateKeyAsync(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `getKeysSinglePage(java.lang.String,java.lang.Integer)` was removed +* `signAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],com.azure.core.util.Context)` was removed +* `unwrapKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[])` was removed +* `decryptWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `updateKeyWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `decryptAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `getKeysSinglePageAsync(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `getKeyVersionsSinglePage(java.lang.String,java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `releaseWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm,com.azure.core.util.Context)` was removed +* `getKeysSinglePageAsync(java.lang.String,java.lang.Integer)` was removed +* `verify(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeySignatureAlgorithm,byte[],byte[])` was removed +* `getKey(java.lang.String,java.lang.String,java.lang.String)` was removed +* `encryptWithResponseAsync(java.lang.String,java.lang.String,java.lang.String,implementation.models.JsonWebKeyEncryptionAlgorithm,byte[],byte[],byte[],byte[],com.azure.core.util.Context)` was removed +* `updateKeyWithResponse(java.lang.String,java.lang.String,java.lang.String,java.util.List,implementation.models.KeyAttributes,java.util.Map,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed +* `release(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,models.KeyExportEncryptionAlgorithm)` was removed +* `getDeletedKeysSinglePageAsync(java.lang.String,java.lang.Integer,com.azure.core.util.Context)` was removed +* `createKeyAsync(java.lang.String,java.lang.String,models.KeyType,java.lang.Integer,java.lang.Integer,java.util.List,implementation.models.KeyAttributes,java.util.Map,models.KeyCurveName,implementation.models.KeyReleasePolicy,com.azure.core.util.Context)` was removed + +#### `implementation.models.KeyBundle` was modified + +* `setTags(java.util.Map)` was removed +* `setAttributes(implementation.models.KeyAttributes)` was removed +* `setReleasePolicy(implementation.models.KeyReleasePolicy)` was removed +* `setKey(implementation.models.JsonWebKey)` was removed + +#### `implementation.models.KeyCreateParameters` was modified + +* `setKty(models.KeyType)` was removed +* `getCrv()` was removed +* `setCrv(models.KeyCurveName)` was removed + +### Features Added + +* `implementation.models.KeyAttestation` was added + +#### `implementation.models.KeyAttributes` was modified + +* `getNotBefore()` was added +* `setAttestation(implementation.models.KeyAttestation)` was added +* `getExpires()` was added +* `getAttestation()` was added +* `isEnabled()` was added + +#### `implementation.models.DeletedKeyBundle` was modified + +* `getTags()` was added +* `getKey()` was added +* `getReleasePolicy()` was added +* `getAttributes()` was added + +#### `implementation.models.DeletedKeyItem` was modified + +* `getAttributes()` was added +* `getKid()` was added +* `getTags()` was added + +#### `implementation.KeyClientImpl$KeyClientService` was modified + +* `decryptSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `recoverDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `sign(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `purgeDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `restoreKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `recoverDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKeysNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `verify(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `backupKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `wrapKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `rotateKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `createKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getRandomBytesSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKeysSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKeys(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `purgeDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyAttestationSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `wrapKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKeysNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `deleteKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `restoreKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `verifySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `importKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `importKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `signSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `release(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeysNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyVersionsNext(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `createKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `decrypt(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyRotationPolicySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeysNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyVersionsSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getDeletedKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `unwrapKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `updateKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `rotateKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `releaseSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeys(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `encryptSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyVersionsNextSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getRandomBytes(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `deleteKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyRotationPolicy(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `updateKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `encrypt(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `updateKeyRotationPolicySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `backupKey(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `updateKeyRotationPolicy(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `unwrapKeySync(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyVersions(java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeysSync(java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added +* `getKeyAttestation(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions,com.azure.core.util.Context)` was added + +#### `implementation.KeyClientImpl` was modified + +* `rotateKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `createKeyWithResponse(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `unwrapKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `encryptWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `restoreKeyWithResponseAsync(com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `unwrapKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `deleteKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getDeletedKeys(com.azure.core.http.rest.RequestOptions)` was added +* `updateKeyRotationPolicyWithResponseAsync(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `signWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getRandomBytesWithResponseAsync(com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `backupKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyAttestationWithResponse(java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `recoverDeletedKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `importKeyWithResponseAsync(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getRandomBytesWithResponse(com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `updateKeyRotationPolicyWithResponse(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `recoverDeletedKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `updateKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `releaseWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyVersionsAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyAttestationWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyRotationPolicyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyVersions(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyRotationPolicyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getVaultBaseUrl()` was added +* `backupKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `releaseWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getKeys(com.azure.core.http.rest.RequestOptions)` was added +* `verifyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `verifyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `restoreKeyWithResponse(com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getDeletedKeysAsync(com.azure.core.http.rest.RequestOptions)` was added +* `purgeDeletedKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `decryptWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `createKeyWithResponseAsync(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getDeletedKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `rotateKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `updateKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `importKeyWithResponse(java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getDeletedKeyWithResponse(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `getKeysAsync(com.azure.core.http.rest.RequestOptions)` was added +* `signWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `wrapKeyWithResponse(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `getServiceVersion()` was added +* `deleteKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `encryptWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `purgeDeletedKeyWithResponseAsync(java.lang.String,com.azure.core.http.rest.RequestOptions)` was added +* `decryptWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added +* `wrapKeyWithResponseAsync(java.lang.String,java.lang.String,com.azure.core.util.BinaryData,com.azure.core.http.rest.RequestOptions)` was added + +#### `KeyAsyncClient` was modified + +* `mapGetKeyException(com.azure.core.exception.HttpResponseException)` was added + +#### `implementation.models.KeyCreateParameters` was modified + +* `getCurve()` was added +* `setCurve(models.KeyCurveName)` was added ## 4.9.4 (2025-03-24) diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyClientImpl.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyClientImpl.java index b7a8d62d50fb..847c7d2ec362 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyClientImpl.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/KeyClientImpl.java @@ -682,6 +682,28 @@ Response getRandomBytesSync(@HostParam("vaultBaseUrl") String vaultB @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData parameters, RequestOptions requestOptions, Context context); + @Get("/keys/{key-name}/{key-version}/attestation") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getKeyAttestation(@HostParam("vaultBaseUrl") String vaultBaseUrl, + @QueryParam("api-version") String apiVersion, @PathParam("key-name") String keyName, + @PathParam("key-version") String keyVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/keys/{key-name}/{key-version}/attestation") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getKeyAttestationSync(@HostParam("vaultBaseUrl") String vaultBaseUrl, + @QueryParam("api-version") String apiVersion, @PathParam("key-name") String keyName, + @PathParam("key-version") String keyVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + @Get("{nextLink}") @ExpectedResponses({ 200 }) @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) @@ -769,6 +791,12 @@ Response getDeletedKeysNextSync(@PathParam(value = "nextLink", encod * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -818,6 +846,12 @@ Response getDeletedKeysNextSync(@PathParam(value = "nextLink", encod * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -879,6 +913,12 @@ public Mono> createKeyWithResponseAsync(String keyName, Bin * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -928,6 +968,12 @@ public Mono> createKeyWithResponseAsync(String keyName, Bin * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1001,6 +1047,12 @@ public Response createKeyWithResponse(String keyName, BinaryData par * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1070,6 +1122,12 @@ public Mono> rotateKeyWithResponseAsync(String keyName, Req * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1140,6 +1198,12 @@ public Response rotateKeyWithResponse(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1188,6 +1252,12 @@ public Response rotateKeyWithResponse(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1263,6 +1333,12 @@ public Mono> importKeyWithResponseAsync(String keyName, Bin * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1311,6 +1387,12 @@ public Mono> importKeyWithResponseAsync(String keyName, Bin * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1385,6 +1467,12 @@ public Response importKeyWithResponse(String keyName, BinaryData par * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1459,6 +1547,12 @@ public Mono> deleteKeyWithResponseAsync(String keyName, Req * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1516,6 +1610,12 @@ public Response deleteKeyWithResponse(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1564,6 +1664,12 @@ public Response deleteKeyWithResponse(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1623,6 +1729,12 @@ public Mono> updateKeyWithResponseAsync(String keyName, Str * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1671,6 +1783,12 @@ public Mono> updateKeyWithResponseAsync(String keyName, Str * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1744,6 +1862,12 @@ public Response updateKeyWithResponse(String keyName, String keyVers * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1819,6 +1943,12 @@ public Mono> getKeyWithResponseAsync(String keyName, String * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1881,6 +2011,12 @@ public Response getKeyWithResponse(String keyName, String keyVersion * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1938,6 +2074,12 @@ private Mono> getKeyVersionsSinglePageAsync(String key * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -1993,6 +2135,12 @@ public PagedFlux getKeyVersionsAsync(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2048,6 +2196,12 @@ private PagedResponse getKeyVersionsSinglePage(String keyName, Reque * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2105,6 +2259,12 @@ public PagedIterable getKeyVersions(String keyName, RequestOptions r * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2162,6 +2322,12 @@ private Mono> getKeysSinglePageAsync(RequestOptions re * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2218,6 +2384,12 @@ public PagedFlux getKeysAsync(RequestOptions requestOptions) { * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2274,6 +2446,12 @@ private PagedResponse getKeysSinglePage(RequestOptions requestOption * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2431,6 +2609,12 @@ public Response backupKeyWithResponse(String keyName, RequestOptions * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2520,6 +2704,12 @@ public Mono> restoreKeyWithResponseAsync(BinaryData paramet * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -2674,7 +2864,7 @@ public Response encryptWithResponse(String keyName, String keyVersio * to asymmetric and symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This * operation requires the keys/decrypt permission. Microsoft recommends not to use CBC algorithms for decryption * without first ensuring the integrity of the ciphertext using an HMAC, for example. See - * https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode for more information. + * https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode for more information. *

Request Body Schema

* *
@@ -2732,7 +2922,7 @@ public Mono> decryptWithResponseAsync(String keyName, Strin
      * to asymmetric and symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This
      * operation requires the keys/decrypt permission. Microsoft recommends not to use CBC algorithms for decryption
      * without first ensuring the integrity of the ciphertext using an HMAC, for example. See
-     * https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode for more information.
+     * https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode for more information.
      * 

Request Body Schema

* *
@@ -2790,7 +2980,7 @@ public Response decryptWithResponse(String keyName, String keyVersio
      * 
      * {@code
      * {
-     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
+     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/HS256/HS384/HS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
      *     value: Base64Url (Required)
      * }
      * }
@@ -2840,7 +3030,7 @@ public Mono> signWithResponseAsync(String keyName, String k
      * 
      * {@code
      * {
-     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
+     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/HS256/HS384/HS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
      *     value: Base64Url (Required)
      * }
      * }
@@ -2891,7 +3081,7 @@ public Response signWithResponse(String keyName, String keyVersion,
      * 
      * {@code
      * {
-     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
+     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/HS256/HS384/HS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
      *     digest: Base64Url (Required)
      *     value: Base64Url (Required)
      * }
@@ -2940,7 +3130,7 @@ public Mono> verifyWithResponseAsync(String keyName, String
      * 
      * {@code
      * {
-     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
+     *     alg: String(PS256/PS384/PS512/RS256/RS384/RS512/HS256/HS384/HS512/RSNULL/ES256/ES384/ES512/ES256K) (Required)
      *     digest: Base64Url (Required)
      *     value: Base64Url (Required)
      * }
@@ -3321,6 +3511,12 @@ public Response releaseWithResponse(String keyName, String keyVersio
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3382,6 +3578,12 @@ private Mono> getDeletedKeysSinglePageAsync(RequestOpt
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3441,6 +3643,12 @@ public PagedFlux getDeletedKeysAsync(RequestOptions requestOptions)
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3500,6 +3708,12 @@ private PagedResponse getDeletedKeysSinglePage(RequestOptions reques
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3569,6 +3783,12 @@ public PagedIterable getDeletedKeys(RequestOptions requestOptions) {
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3645,6 +3865,12 @@ public Mono> getDeletedKeyWithResponseAsync(String keyName,
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3765,6 +3991,12 @@ public Response purgeDeletedKeyWithResponse(String keyName, RequestOptions
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -3838,6 +4070,12 @@ public Mono> recoverDeletedKeyWithResponseAsync(String keyN
      *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
      *         exportable: Boolean (Optional)
      *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
      *     }
      *     tags (Optional): {
      *         String: String (Required)
@@ -4197,6 +4435,167 @@ public Response getRandomBytesWithResponse(BinaryData parameters, Re
             accept, parameters, requestOptions, Context.NONE);
     }
 
+    /**
+     * Gets the public part of a stored key along with its attestation blob.
+     *
+     * The get key attestation operation returns the key along with its attestation blob. This operation requires the
+     * keys/get permission.
+     * 

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     key (Optional): {
+     *         kid: String (Optional)
+     *         kty: String(EC/EC-HSM/RSA/RSA-HSM/oct/oct-HSM) (Optional)
+     *         key_ops (Optional): [
+     *             String (Optional)
+     *         ]
+     *         n: Base64Url (Optional)
+     *         e: Base64Url (Optional)
+     *         d: Base64Url (Optional)
+     *         dp: Base64Url (Optional)
+     *         dq: Base64Url (Optional)
+     *         qi: Base64Url (Optional)
+     *         p: Base64Url (Optional)
+     *         q: Base64Url (Optional)
+     *         k: Base64Url (Optional)
+     *         key_hsm: Base64Url (Optional)
+     *         crv: String(P-256/P-384/P-521/P-256K) (Optional)
+     *         x: Base64Url (Optional)
+     *         y: Base64Url (Optional)
+     *     }
+     *     attributes (Optional): {
+     *         enabled: Boolean (Optional)
+     *         nbf: Long (Optional)
+     *         exp: Long (Optional)
+     *         created: Long (Optional)
+     *         updated: Long (Optional)
+     *         recoverableDays: Integer (Optional)
+     *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
+     *         exportable: Boolean (Optional)
+     *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
+     *     }
+     *     tags (Optional): {
+     *         String: String (Required)
+     *     }
+     *     managed: Boolean (Optional)
+     *     release_policy (Optional): {
+     *         contentType: String (Optional)
+     *         immutable: Boolean (Optional)
+     *         data: Base64Url (Optional)
+     *     }
+     * }
+     * }
+     * 
+ * + * @param keyName The name of the key to retrieve attestation for. + * @param keyVersion Adding the version parameter retrieves attestation blob for specific version of a key. This URI + * fragment is optional. If not specified, the latest version of the key attestation blob is returned. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the public part of a stored key along with its attestation blob. + * + * The get key attestation operation returns the key along with its attestation blob along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getKeyAttestationWithResponseAsync(String keyName, String keyVersion, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getKeyAttestation(this.getVaultBaseUrl(), + this.getServiceVersion().getVersion(), keyName, keyVersion, accept, requestOptions, context)); + } + + /** + * Gets the public part of a stored key along with its attestation blob. + * + * The get key attestation operation returns the key along with its attestation blob. This operation requires the + * keys/get permission. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     key (Optional): {
+     *         kid: String (Optional)
+     *         kty: String(EC/EC-HSM/RSA/RSA-HSM/oct/oct-HSM) (Optional)
+     *         key_ops (Optional): [
+     *             String (Optional)
+     *         ]
+     *         n: Base64Url (Optional)
+     *         e: Base64Url (Optional)
+     *         d: Base64Url (Optional)
+     *         dp: Base64Url (Optional)
+     *         dq: Base64Url (Optional)
+     *         qi: Base64Url (Optional)
+     *         p: Base64Url (Optional)
+     *         q: Base64Url (Optional)
+     *         k: Base64Url (Optional)
+     *         key_hsm: Base64Url (Optional)
+     *         crv: String(P-256/P-384/P-521/P-256K) (Optional)
+     *         x: Base64Url (Optional)
+     *         y: Base64Url (Optional)
+     *     }
+     *     attributes (Optional): {
+     *         enabled: Boolean (Optional)
+     *         nbf: Long (Optional)
+     *         exp: Long (Optional)
+     *         created: Long (Optional)
+     *         updated: Long (Optional)
+     *         recoverableDays: Integer (Optional)
+     *         recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional)
+     *         exportable: Boolean (Optional)
+     *         hsmPlatform: String (Optional)
+     *         attestation (Optional): {
+     *             certificatePemFile: Base64Url (Optional)
+     *             privateKeyAttestation: Base64Url (Optional)
+     *             publicKeyAttestation: Base64Url (Optional)
+     *             version: String (Optional)
+     *         }
+     *     }
+     *     tags (Optional): {
+     *         String: String (Required)
+     *     }
+     *     managed: Boolean (Optional)
+     *     release_policy (Optional): {
+     *         contentType: String (Optional)
+     *         immutable: Boolean (Optional)
+     *         data: Base64Url (Optional)
+     *     }
+     * }
+     * }
+     * 
+ * + * @param keyName The name of the key to retrieve attestation for. + * @param keyVersion Adding the version parameter retrieves attestation blob for specific version of a key. This URI + * fragment is optional. If not specified, the latest version of the key attestation blob is returned. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the public part of a stored key along with its attestation blob. + * + * The get key attestation operation returns the key along with its attestation blob along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getKeyAttestationWithResponse(String keyName, String keyVersion, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getKeyAttestationSync(this.getVaultBaseUrl(), this.getServiceVersion().getVersion(), keyName, + keyVersion, accept, requestOptions, Context.NONE); + } + /** * Retrieves a list of individual key versions with the same key name. * @@ -4217,6 +4616,12 @@ public Response getRandomBytesWithResponse(BinaryData parameters, Re * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -4264,6 +4669,12 @@ private Mono> getKeyVersionsNextSinglePageAsync(String * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -4310,6 +4721,12 @@ private PagedResponse getKeyVersionsNextSinglePage(String nextLink, * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -4357,6 +4774,12 @@ private Mono> getKeysNextSinglePageAsync(String nextLi * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -4403,6 +4826,12 @@ private PagedResponse getKeysNextSinglePage(String nextLink, Request * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) @@ -4454,6 +4883,12 @@ private Mono> getDeletedKeysNextSinglePageAsync(String * recoveryLevel: String(Purgeable/Recoverable+Purgeable/Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable+Purgeable/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription) (Optional) * exportable: Boolean (Optional) * hsmPlatform: String (Optional) + * attestation (Optional): { + * certificatePemFile: Base64Url (Optional) + * privateKeyAttestation: Base64Url (Optional) + * publicKeyAttestation: Base64Url (Optional) + * version: String (Optional) + * } * } * tags (Optional): { * String: String (Required) diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/JsonWebKeySignatureAlgorithm.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/JsonWebKeySignatureAlgorithm.java index 087033aa1aeb..aef7a4bb9d63 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/JsonWebKeySignatureAlgorithm.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/JsonWebKeySignatureAlgorithm.java @@ -109,4 +109,22 @@ public static JsonWebKeySignatureAlgorithm fromString(String name) { public static Collection values() { return values(JsonWebKeySignatureAlgorithm.class); } + + /** + * HMAC using SHA-256, as described in https://tools.ietf.org/html/rfc7518. + */ + @Generated + public static final JsonWebKeySignatureAlgorithm HS256 = fromString("HS256"); + + /** + * HMAC using SHA-384, as described in https://tools.ietf.org/html/rfc7518. + */ + @Generated + public static final JsonWebKeySignatureAlgorithm HS384 = fromString("HS384"); + + /** + * HMAC using SHA-512, as described in https://tools.ietf.org/html/rfc7518. + */ + @Generated + public static final JsonWebKeySignatureAlgorithm HS512 = fromString("HS512"); } diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttestation.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttestation.java new file mode 100644 index 000000000000..4cde2983e8b4 --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttestation.java @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.security.keyvault.keys.implementation.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.Base64Url; +import com.azure.core.util.CoreUtils; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.Objects; + +/** + * The key attestation information. + */ +@Fluent +public final class KeyAttestation implements JsonSerializable { + /* + * A base64url-encoded string containing certificates in PEM format, used for attestation validation. + */ + @Generated + private Base64Url certificatePemFile; + + /* + * The attestation blob bytes encoded as base64url string corresponding to a private key. + */ + @Generated + private Base64Url privateKeyAttestation; + + /* + * The attestation blob bytes encoded as base64url string corresponding to a public key in case of asymmetric key. + */ + @Generated + private Base64Url publicKeyAttestation; + + /* + * The version of the attestation. + */ + @Generated + private String version; + + /** + * Creates an instance of KeyAttestation class. + */ + @Generated + public KeyAttestation() { + } + + /** + * Get the certificatePemFile property: A base64url-encoded string containing certificates in PEM format, used for + * attestation validation. + * + * @return the certificatePemFile value. + */ + @Generated + public byte[] getCertificatePemFile() { + if (this.certificatePemFile == null) { + return null; + } + return this.certificatePemFile.decodedBytes(); + } + + /** + * Set the certificatePemFile property: A base64url-encoded string containing certificates in PEM format, used for + * attestation validation. + * + * @param certificatePemFile the certificatePemFile value to set. + * @return the KeyAttestation object itself. + */ + @Generated + public KeyAttestation setCertificatePemFile(byte[] certificatePemFile) { + if (certificatePemFile == null) { + this.certificatePemFile = null; + } else { + this.certificatePemFile = Base64Url.encode(CoreUtils.clone(certificatePemFile)); + } + return this; + } + + /** + * Get the privateKeyAttestation property: The attestation blob bytes encoded as base64url string corresponding to a + * private key. + * + * @return the privateKeyAttestation value. + */ + @Generated + public byte[] getPrivateKeyAttestation() { + if (this.privateKeyAttestation == null) { + return null; + } + return this.privateKeyAttestation.decodedBytes(); + } + + /** + * Set the privateKeyAttestation property: The attestation blob bytes encoded as base64url string corresponding to a + * private key. + * + * @param privateKeyAttestation the privateKeyAttestation value to set. + * @return the KeyAttestation object itself. + */ + @Generated + public KeyAttestation setPrivateKeyAttestation(byte[] privateKeyAttestation) { + if (privateKeyAttestation == null) { + this.privateKeyAttestation = null; + } else { + this.privateKeyAttestation = Base64Url.encode(CoreUtils.clone(privateKeyAttestation)); + } + return this; + } + + /** + * Get the publicKeyAttestation property: The attestation blob bytes encoded as base64url string corresponding to a + * public key in case of asymmetric key. + * + * @return the publicKeyAttestation value. + */ + @Generated + public byte[] getPublicKeyAttestation() { + if (this.publicKeyAttestation == null) { + return null; + } + return this.publicKeyAttestation.decodedBytes(); + } + + /** + * Set the publicKeyAttestation property: The attestation blob bytes encoded as base64url string corresponding to a + * public key in case of asymmetric key. + * + * @param publicKeyAttestation the publicKeyAttestation value to set. + * @return the KeyAttestation object itself. + */ + @Generated + public KeyAttestation setPublicKeyAttestation(byte[] publicKeyAttestation) { + if (publicKeyAttestation == null) { + this.publicKeyAttestation = null; + } else { + this.publicKeyAttestation = Base64Url.encode(CoreUtils.clone(publicKeyAttestation)); + } + return this; + } + + /** + * Get the version property: The version of the attestation. + * + * @return the version value. + */ + @Generated + public String getVersion() { + return this.version; + } + + /** + * Set the version property: The version of the attestation. + * + * @param version the version value to set. + * @return the KeyAttestation object itself. + */ + @Generated + public KeyAttestation setVersion(String version) { + this.version = version; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("certificatePemFile", Objects.toString(this.certificatePemFile, null)); + jsonWriter.writeStringField("privateKeyAttestation", Objects.toString(this.privateKeyAttestation, null)); + jsonWriter.writeStringField("publicKeyAttestation", Objects.toString(this.publicKeyAttestation, null)); + jsonWriter.writeStringField("version", this.version); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of KeyAttestation from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of KeyAttestation if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the KeyAttestation. + */ + @Generated + public static KeyAttestation fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + KeyAttestation deserializedKeyAttestation = new KeyAttestation(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("certificatePemFile".equals(fieldName)) { + deserializedKeyAttestation.certificatePemFile + = reader.getNullable(nonNullReader -> new Base64Url(nonNullReader.getString())); + } else if ("privateKeyAttestation".equals(fieldName)) { + deserializedKeyAttestation.privateKeyAttestation + = reader.getNullable(nonNullReader -> new Base64Url(nonNullReader.getString())); + } else if ("publicKeyAttestation".equals(fieldName)) { + deserializedKeyAttestation.publicKeyAttestation + = reader.getNullable(nonNullReader -> new Base64Url(nonNullReader.getString())); + } else if ("version".equals(fieldName)) { + deserializedKeyAttestation.version = reader.getString(); + } else { + reader.skipChildren(); + } + } + + return deserializedKeyAttestation; + }); + } +} diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttributes.java b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttributes.java index 585b500dd0fc..459e01142b2c 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttributes.java +++ b/sdk/keyvault/azure-security-keyvault-keys/src/main/java/com/azure/security/keyvault/keys/implementation/models/KeyAttributes.java @@ -258,6 +258,7 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeNumberField("nbf", this.notBefore); jsonWriter.writeNumberField("exp", this.expires); jsonWriter.writeBooleanField("exportable", this.exportable); + jsonWriter.writeJsonField("attestation", this.attestation); return jsonWriter.writeEndObject(); } @@ -294,6 +295,8 @@ public static KeyAttributes fromJson(JsonReader jsonReader) throws IOException { deserializedKeyAttributes.exportable = reader.getNullable(JsonReader::getBoolean); } else if ("hsmPlatform".equals(fieldName)) { deserializedKeyAttributes.hsmPlatform = reader.getString(); + } else if ("attestation".equals(fieldName)) { + deserializedKeyAttributes.attestation = KeyAttestation.fromJson(reader); } else { reader.skipChildren(); } @@ -301,4 +304,32 @@ public static KeyAttributes fromJson(JsonReader jsonReader) throws IOException { return deserializedKeyAttributes; }); } + + /* + * The key or key version attestation information. + */ + @Generated + private KeyAttestation attestation; + + /** + * Get the attestation property: The key or key version attestation information. + * + * @return the attestation value. + */ + @Generated + public KeyAttestation getAttestation() { + return this.attestation; + } + + /** + * Set the attestation property: The key or key version attestation information. + * + * @param attestation the attestation value to set. + * @return the KeyAttributes object itself. + */ + @Generated + public KeyAttributes setAttestation(KeyAttestation attestation) { + this.attestation = attestation; + return this; + } } diff --git a/sdk/keyvault/azure-security-keyvault-keys/tsp-location.yaml b/sdk/keyvault/azure-security-keyvault-keys/tsp-location.yaml index 9e1f9cd44569..0de56449888b 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/tsp-location.yaml +++ b/sdk/keyvault/azure-security-keyvault-keys/tsp-location.yaml @@ -1,6 +1,5 @@ directory: specification/keyvault/Security.KeyVault.Keys -commit: a0eb4f02951e8b7dd80e72e108b9cf7618718bc9 +commit: e5eca2279ea7f0cf8c93e7c543ffc033a18e5f7f repo: Azure/azure-rest-api-specs -cleanup: true -additionalDirectories: -- specification/keyvault/Security.KeyVault.Common/ +additionalDirectories: +- specification/keyvault/Security.KeyVault.Common