From 1c3a8d93532ce1ee978aef4cdbdd4e31571bb5c0 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Wed, 18 Mar 2026 23:46:22 +0000 Subject: [PATCH] Configurations: 'specification/keyvault/data-plane/Certificates/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: 'f6bd06be22baf3a18504ffef0f590230850953e5' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6031663 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- .../CHANGELOG.md | 13 +- .../implementation/CertificateClientImpl.java | 178 +++++++++++++++++- .../models/SubjectAlternativeNames.java | 65 +++++++ .../tsp-location.yaml | 9 +- 4 files changed, 247 insertions(+), 18 deletions(-) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/CHANGELOG.md b/sdk/keyvault/azure-security-keyvault-certificates/CHANGELOG.md index ee77ebe4aed9..034014cde9fa 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/CHANGELOG.md +++ b/sdk/keyvault/azure-security-keyvault-certificates/CHANGELOG.md @@ -1,16 +1,15 @@ # Release History -## 4.9.0-beta.1 (Unreleased) +## 4.9.0-beta.1 (2026-03-18) ### Features Added -### Breaking Changes - -### Bugs Fixed +#### `models.SubjectAlternativeNames` was modified -- Fixed an issue where certain `HttpResponseException.getResponse()` calls could cause a `NullPointerException`. ([#47801](https://github.com/Azure/azure-sdk-for-java/issues/47801)) - -### Other Changes +* `setIpAddresses(java.util.List)` was added +* `getIpAddresses()` was added +* `getUniformResourceIdentifiers()` was added +* `setUniformResourceIdentifiers(java.util.List)` was added ## 4.8.5 (2026-01-29) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/CertificateClientImpl.java b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/CertificateClientImpl.java index a6ac254483a3..6934edb665c8 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/CertificateClientImpl.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/implementation/CertificateClientImpl.java @@ -693,7 +693,7 @@ Response getDeletedCertificateSync(@HostParam("vaultBaseUrl") String @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> purgeDeletedCertificate(@HostParam("vaultBaseUrl") String vaultBaseUrl, @QueryParam("api-version") String apiVersion, @PathParam("certificate-name") String certificateName, - @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + RequestOptions requestOptions, Context context); @Delete("/deletedcertificates/{certificate-name}") @ExpectedResponses({ 204 }) @@ -703,7 +703,7 @@ Mono> purgeDeletedCertificate(@HostParam("vaultBaseUrl") String v @UnexpectedResponseExceptionType(HttpResponseException.class) Response purgeDeletedCertificateSync(@HostParam("vaultBaseUrl") String vaultBaseUrl, @QueryParam("api-version") String apiVersion, @PathParam("certificate-name") String certificateName, - @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + RequestOptions requestOptions, Context context); @Post("/deletedcertificates/{certificate-name}/recover") @ExpectedResponses({ 200 }) @@ -1071,6 +1071,12 @@ public PagedIterable getCertificates(RequestOptions requestOptions) * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -1176,6 +1182,12 @@ public Mono> deleteCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2245,6 +2257,12 @@ public Response deleteCertificateIssuerWithResponse(String issuerNam * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2371,6 +2389,12 @@ public Mono> createCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2499,6 +2523,12 @@ public Response createCertificateWithResponse(String certificateName * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2576,6 +2606,12 @@ public Response createCertificateWithResponse(String certificateName * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2681,6 +2717,12 @@ public Mono> importCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -2758,6 +2800,12 @@ public Mono> importCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3071,6 +3119,12 @@ public PagedIterable getCertificateVersions(String certificateName, * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3158,6 +3212,12 @@ public Mono> getCertificatePolicyWithResponseAsync(String c * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3245,6 +3305,12 @@ public Response getCertificatePolicyWithResponse(String certificateN * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3311,6 +3377,12 @@ public Response getCertificatePolicyWithResponse(String certificateN * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3401,6 +3473,12 @@ public Mono> updateCertificatePolicyWithResponseAsync(Strin * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3467,6 +3545,12 @@ public Mono> updateCertificatePolicyWithResponseAsync(Strin * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3557,6 +3641,12 @@ public Response updateCertificatePolicyWithResponse(String certifica * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3633,6 +3723,12 @@ public Response updateCertificatePolicyWithResponse(String certifica * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3734,6 +3830,12 @@ public Mono> updateCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3810,6 +3912,12 @@ public Mono> updateCertificateWithResponseAsync(String cert * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -3912,6 +4020,12 @@ public Response updateCertificateWithResponse(String certificateName * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -4017,6 +4131,12 @@ public Mono> getCertificateWithResponseAsync(String certifi * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -4465,6 +4585,12 @@ public Response deleteCertificateOperationWithResponse(String certif * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -4593,6 +4719,12 @@ public Mono> mergeCertificateWithResponseAsync(String certi * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -4767,6 +4899,12 @@ public Response backupCertificateWithResponse(String certificateName * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -4879,6 +5017,12 @@ public Mono> restoreCertificateWithResponseAsync(BinaryData * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -5215,6 +5359,12 @@ public PagedIterable getDeletedCertificates(RequestOptions requestOp * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -5320,6 +5470,12 @@ public Mono> getDeletedCertificateWithResponseAsync(String * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -5401,9 +5557,8 @@ public Response getDeletedCertificateWithResponse(String certificate @ServiceMethod(returns = ReturnType.SINGLE) public Mono> purgeDeletedCertificateWithResponseAsync(String certificateName, RequestOptions requestOptions) { - final String accept = "application/json"; return FluxUtil.withContext(context -> service.purgeDeletedCertificate(this.getVaultBaseUrl(), - this.getServiceVersion().getVersion(), certificateName, accept, requestOptions, context)); + this.getServiceVersion().getVersion(), certificateName, requestOptions, context)); } /** @@ -5423,9 +5578,8 @@ public Mono> purgeDeletedCertificateWithResponseAsync(String cert */ @ServiceMethod(returns = ReturnType.SINGLE) public Response purgeDeletedCertificateWithResponse(String certificateName, RequestOptions requestOptions) { - final String accept = "application/json"; return service.purgeDeletedCertificateSync(this.getVaultBaseUrl(), this.getServiceVersion().getVersion(), - certificateName, accept, requestOptions, Context.NONE); + certificateName, requestOptions, Context.NONE); } /** @@ -5470,6 +5624,12 @@ public Response purgeDeletedCertificateWithResponse(String certificateName * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) @@ -5572,6 +5732,12 @@ public Mono> recoverDeletedCertificateWithResponseAsync(Str * upns (Optional): [ * String (Optional) * ] + * uris (Optional): [ + * String (Optional) + * ] + * ipAddresses (Optional): [ + * String (Optional) + * ] * } * key_usage (Optional): [ * String(digitalSignature/nonRepudiation/keyEncipherment/dataEncipherment/keyAgreement/keyCertSign/cRLSign/encipherOnly/decipherOnly) (Optional) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/models/SubjectAlternativeNames.java b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/models/SubjectAlternativeNames.java index 659dd3462af7..c8e236f0b497 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/models/SubjectAlternativeNames.java +++ b/sdk/keyvault/azure-security-keyvault-certificates/src/main/java/com/azure/security/keyvault/certificates/models/SubjectAlternativeNames.java @@ -36,6 +36,18 @@ public final class SubjectAlternativeNames implements JsonSerializable userPrincipalNames; + /* + * Uniform Resource Identifiers. + */ + @Generated + private List uniformResourceIdentifiers; + + /* + * IP addresses; supports IPv4 and IPv6. + */ + @Generated + private List ipAddresses; + /** * Creates an instance of SubjectAlternativeNames class. */ @@ -109,6 +121,50 @@ public SubjectAlternativeNames setUserPrincipalNames(List userPrincipalN return this; } + /** + * Get the uniformResourceIdentifiers property: Uniform Resource Identifiers. + * + * @return the uniformResourceIdentifiers value. + */ + @Generated + public List getUniformResourceIdentifiers() { + return this.uniformResourceIdentifiers; + } + + /** + * Set the uniformResourceIdentifiers property: Uniform Resource Identifiers. + * + * @param uniformResourceIdentifiers the uniformResourceIdentifiers value to set. + * @return the SubjectAlternativeNames object itself. + */ + @Generated + public SubjectAlternativeNames setUniformResourceIdentifiers(List uniformResourceIdentifiers) { + this.uniformResourceIdentifiers = uniformResourceIdentifiers; + return this; + } + + /** + * Get the ipAddresses property: IP addresses; supports IPv4 and IPv6. + * + * @return the ipAddresses value. + */ + @Generated + public List getIpAddresses() { + return this.ipAddresses; + } + + /** + * Set the ipAddresses property: IP addresses; supports IPv4 and IPv6. + * + * @param ipAddresses the ipAddresses value to set. + * @return the SubjectAlternativeNames object itself. + */ + @Generated + public SubjectAlternativeNames setIpAddresses(List ipAddresses) { + this.ipAddresses = ipAddresses; + return this; + } + /** * {@inheritDoc} */ @@ -119,6 +175,9 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeArrayField("emails", this.emails, (writer, element) -> writer.writeString(element)); jsonWriter.writeArrayField("dns_names", this.dnsNames, (writer, element) -> writer.writeString(element)); jsonWriter.writeArrayField("upns", this.userPrincipalNames, (writer, element) -> writer.writeString(element)); + jsonWriter.writeArrayField("uris", this.uniformResourceIdentifiers, + (writer, element) -> writer.writeString(element)); + jsonWriter.writeArrayField("ipAddresses", this.ipAddresses, (writer, element) -> writer.writeString(element)); return jsonWriter.writeEndObject(); } @@ -147,6 +206,12 @@ public static SubjectAlternativeNames fromJson(JsonReader jsonReader) throws IOE } else if ("upns".equals(fieldName)) { List userPrincipalNames = reader.readArray(reader1 -> reader1.getString()); deserializedSubjectAlternativeNames.userPrincipalNames = userPrincipalNames; + } else if ("uris".equals(fieldName)) { + List uniformResourceIdentifiers = reader.readArray(reader1 -> reader1.getString()); + deserializedSubjectAlternativeNames.uniformResourceIdentifiers = uniformResourceIdentifiers; + } else if ("ipAddresses".equals(fieldName)) { + List ipAddresses = reader.readArray(reader1 -> reader1.getString()); + deserializedSubjectAlternativeNames.ipAddresses = ipAddresses; } else { reader.skipChildren(); } diff --git a/sdk/keyvault/azure-security-keyvault-certificates/tsp-location.yaml b/sdk/keyvault/azure-security-keyvault-certificates/tsp-location.yaml index 51d3add132dd..f8b2da351f12 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/tsp-location.yaml +++ b/sdk/keyvault/azure-security-keyvault-certificates/tsp-location.yaml @@ -1,6 +1,5 @@ -directory: specification/keyvault/Security.KeyVault.Certificates -commit: 396ab529763b7195ab089f58e2eefb011e1b290d +directory: specification/keyvault/data-plane/Certificates +commit: f6bd06be22baf3a18504ffef0f590230850953e5 repo: Azure/azure-rest-api-specs -cleanup: true -additionalDirectories: -- specification/keyvault/Security.KeyVault.Common/ +additionalDirectories: +- specification/keyvault/data-plane/Certificates/common