Skip to content

Commit e759cb5

Browse files
API Review Changes (Azure#26638)
* API Review Changes * Prepare for 1.0.0 API release for Attestation SDK * Api Review feedback - converted times to OffsetDateTime from Instant. * README markdown style check improvements * Attestation APIs return an AttestationResponse which contains a token, not a Response * Sync admin client returns attestationresponse
1 parent 9ebf84c commit e759cb5

32 files changed

+439
-375
lines changed

eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@ the main ServiceBusClientBuilder. -->
429429
<suppress checks="IllegalImport" files=".*[/\\]src[/\\]test[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationClientTestBase.java"/>
430430
<suppress checks="IllegalImport" files=".*[/\\]src[/\\]test[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationTest.java"/>
431431

432+
<!-- Attestation Client returns AttestationResponse_T_ instead of Response_T_ -->
433+
<suppress checks="ServiceClient" files=".*[/\\]src[/\\]main[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationClient.java"/>
434+
<suppress checks="ServiceClient" files=".*[/\\]src[/\\]main[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationAsyncClient.java"/>
435+
<suppress checks="ServiceClient" files=".*[/\\]src[/\\]main[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationAdministrationClient.java"/>
436+
<suppress checks="ServiceClient" files=".*[/\\]src[/\\]main[/\\]java[/\\]com[/\\]azure[/\\]security[/\\]attestation[/\\]AttestationAdministrationAsyncClient.java"/>
437+
432438
<!-- Suppress checks on AutoRest generated Attestation service code -->
433439
<suppress checks="WhitespaceAround|ThrowFromClientLogger"
434440
files="com.azure.security.attestation.implementation.models.*\.java"/>

eng/versioning/version_client.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ com.azure:azure-perf-test-parent;1.0.0-beta.1;1.0.0-beta.1
116116
com.azure:azure-quantum-jobs;1.0.0-beta.1;1.0.0-beta.2
117117
com.azure:azure-search-documents;11.4.6;11.5.0-beta.6
118118
com.azure:azure-search-perf;1.0.0-beta.1;1.0.0-beta.1
119-
com.azure:azure-security-attestation;1.0.0-beta.1;1.0.0-beta.2
119+
com.azure:azure-security-attestation;1.0.0-beta.1;1.0.0
120120
com.azure:azure-security-confidentialledger;1.0.0-beta.2;1.0.0-beta.3
121121
com.azure:azure-security-keyvault-administration;4.0.6;4.1.0-beta.5
122122
com.azure:azure-security-keyvault-certificates;4.2.6;4.3.0-beta.5

sdk/attestation/azure-security-attestation/CHANGELOG.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Release History
22

3-
## 1.0.0-beta.2 (Unreleased)
4-
### Features Added
5-
3+
## 1.0.0 (2022-02-08)
64
### Breaking Changes
75
* Removed `buildSigningCertificatesClient` and `buildSigningCertificatesAsyncClient` replaced
86
with `getAttestationSigners` and `getAttestationSignersWithResponse` on `AttestationClient`
@@ -26,7 +24,7 @@
2624
factory method:
2725
```java
2826
AttestSgxEnclaveOptions options = AttestSgxEnclaveOptions
29-
.fromQuote(decodedOpenEnclaveReport)
27+
.fromQuote(decodedSgxEnclaveReport)
3028
.setRunTimeData(new byte[] { 1, 2, 3, 4, 5});
3129
```
3230
or
@@ -49,12 +47,11 @@ with the `listPolicyManagementCertificates`, `addPolicyManagementCertificate` a
4947
* Removed `JsonWebKey`, `JsonWebKeySet`, `PolicyCertificatesModificationResult`, `PolicyCertificatesModifyResponse`, and `CertificatesResponse` objects
5048
because they are no longer a part of the public API surface.
5149
* Refactored `AttestationSigningKey` class to require certificate and signing key parameters in constructor.
50+
* listAttestationSigners now returns an `AttestationSignersCollection` object instead of a raw `List<AttestationSigner>`
5251

5352
### Bugs Fixed
5453
* Attestation tests now all pass when run in Live mode.
5554

56-
### Other Changes
57-
5855
## 1.0.0-beta.1 (2021-01-28)
5956

6057
- Initial release. Please see the README and wiki for information on the new design.

sdk/attestation/azure-security-attestation/README.md

Lines changed: 80 additions & 44 deletions
Large diffs are not rendered by default.

sdk/attestation/azure-security-attestation/pom.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<groupId>com.azure</groupId>
1313
<artifactId>azure-security-attestation</artifactId>
14-
<version>1.0.0-beta.2</version> <!-- {x-version-update;com.azure:azure-security-attestation;current} -->
14+
<version>1.0.0</version> <!-- {x-version-update;com.azure:azure-security-attestation;current} -->
1515

1616
<name>Microsoft Azure SDK for Attestation</name>
1717
<description>This package contains Microsoft Azure SDK for the Microsoft Azure Attestation service.</description>
@@ -72,11 +72,13 @@
7272
<groupId>com.azure</groupId>
7373
<artifactId>azure-core-tracing-opentelemetry</artifactId>
7474
<version>1.0.0-beta.19</version> <!-- {x-version-update;com.azure:azure-core-tracing-opentelemetry;dependency} -->
75+
<scope>test</scope>
7576
</dependency>
7677
<dependency>
7778
<groupId>io.opentelemetry</groupId>
7879
<artifactId>opentelemetry-api</artifactId>
7980
<version>1.0.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-api;external_dependency} -->
81+
<scope>test</scope>
8082
</dependency>
8183
<dependency>
8284
<groupId>io.opentelemetry</groupId>

sdk/attestation/azure-security-attestation/src/main/java/com/azure/security/attestation/AttestationAdministrationAsyncClient.java

Lines changed: 34 additions & 32 deletions
Large diffs are not rendered by default.

sdk/attestation/azure-security-attestation/src/main/java/com/azure/security/attestation/AttestationAdministrationClient.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
import com.azure.core.util.Context;
1313
import com.azure.security.attestation.models.AttestationPolicySetOptions;
1414
import com.azure.security.attestation.models.AttestationResponse;
15-
import com.azure.security.attestation.models.AttestationSigner;
15+
import com.azure.security.attestation.models.AttestationSignerCollection;
1616
import com.azure.security.attestation.models.AttestationSigningKey;
1717
import com.azure.security.attestation.models.AttestationTokenValidationOptions;
1818
import com.azure.security.attestation.models.AttestationType;
1919
import com.azure.security.attestation.models.PolicyCertificatesModificationResult;
2020
import com.azure.security.attestation.models.PolicyManagementCertificateOptions;
2121
import com.azure.security.attestation.models.PolicyResult;
2222

23-
import java.util.List;
24-
2523
/**
2624
*
2725
* The AttestationAdministrationClient provides access to the administrative policy APIs
@@ -178,7 +176,7 @@ public String getAttestationPolicy(AttestationType attestationType, AttestationT
178176
* @return the attestation policy expressed as a string.
179177
*/
180178
@ServiceMethod(returns = ReturnType.SINGLE)
181-
public Response<String> getAttestationPolicyWithResponse(AttestationType attestationType, AttestationTokenValidationOptions validationOptions, Context context) {
179+
public AttestationResponse<String> getAttestationPolicyWithResponse(AttestationType attestationType, AttestationTokenValidationOptions validationOptions, Context context) {
182180
return asyncClient.getAttestationPolicyWithResponse(attestationType, validationOptions, context).block();
183181
}
184182

@@ -272,7 +270,7 @@ public PolicyResult setAttestationPolicy(AttestationType attestationType, Attest
272270
* @return {@link PolicyResult} expressing the result of the attestation operation.
273271
*/
274272
@ServiceMethod(returns = ReturnType.SINGLE)
275-
public Response<PolicyResult> setAttestationPolicyWithResponse(AttestationType attestationType, AttestationPolicySetOptions options, Context context) {
273+
public AttestationResponse<PolicyResult> setAttestationPolicyWithResponse(AttestationType attestationType, AttestationPolicySetOptions options, Context context) {
276274
return asyncClient.setAttestationPolicyWithResponse(attestationType, options, context).block();
277275
}
278276

@@ -391,7 +389,7 @@ public PolicyResult resetAttestationPolicy(AttestationType attestationType, Atte
391389
* @return {@link PolicyResult} expressing the result of the attestation operation.
392390
*/
393391
@ServiceMethod(returns = ReturnType.SINGLE)
394-
public Response<PolicyResult> resetAttestationPolicyWithResponse(AttestationType attestationType, AttestationPolicySetOptions options, Context context) {
392+
public AttestationResponse<PolicyResult> resetAttestationPolicyWithResponse(AttestationType attestationType, AttestationPolicySetOptions options, Context context) {
395393
return asyncClient.resetAttestationPolicyWithResponse(attestationType, options, context).block();
396394
}
397395

@@ -413,8 +411,8 @@ public Response<PolicyResult> resetAttestationPolicyWithResponse(AttestationType
413411
* <p><strong>Retrieve the set of policy management certificates for this instance.</strong></p>
414412
* <!-- src_embed com.azure.security.attestation.AttestationAdministrationClient.listPolicyManagementCertificatesSimple -->
415413
* <pre>
416-
* List&lt;AttestationSigner&gt; signers = client.listPolicyManagementCertificates&#40;&#41;;
417-
* System.out.printf&#40;&quot;There are %d signers on the instance&#92;n&quot;, signers.size&#40;&#41;&#41;;
414+
* AttestationSignerCollection signers = client.listPolicyManagementCertificates&#40;&#41;;
415+
* System.out.printf&#40;&quot;There are %d signers on the instance&#92;n&quot;, signers.getAttestationSigners&#40;&#41;.size&#40;&#41;&#41;;
418416
* </pre>
419417
* <!-- end com.azure.security.attestation.AttestationAdministrationClient.listPolicyManagementCertificatesSimple -->
420418
*
@@ -424,7 +422,7 @@ public Response<PolicyResult> resetAttestationPolicyWithResponse(AttestationType
424422
* @return the response to an attestation policy operation.
425423
*/
426424
@ServiceMethod(returns = ReturnType.SINGLE)
427-
public List<AttestationSigner> listPolicyManagementCertificates() {
425+
public AttestationSignerCollection listPolicyManagementCertificates() {
428426
return asyncClient.listPolicyManagementCertificates().block();
429427
}
430428

@@ -446,9 +444,11 @@ public List<AttestationSigner> listPolicyManagementCertificates() {
446444
* <p><strong>Retrieve the set of policy management certificates for this instance.</strong></p>
447445
* <!-- src_embed com.azure.security.attestation.AttestationAdministrationClient.listPolicyManagementCertificatesWithResponse -->
448446
* <pre>
449-
* Response&lt;List&lt;AttestationSigner&gt;&gt; signersResponse = client.listPolicyManagementCertificatesWithResponse&#40;
450-
* new AttestationTokenValidationOptions&#40;&#41;.setValidationSlack&#40;Duration.ofSeconds&#40;10&#41;&#41;, Context.NONE&#41;;
451-
* System.out.printf&#40;&quot;There are %d signers on the instance&#92;n&quot;, signersResponse.getValue&#40;&#41;.size&#40;&#41;&#41;;
447+
* AttestationResponse&lt;AttestationSignerCollection&gt; signersResponse =
448+
* client.listPolicyManagementCertificatesWithResponse&#40;
449+
* new AttestationTokenValidationOptions&#40;&#41;.setValidationSlack&#40;Duration.ofSeconds&#40;10&#41;&#41;, Context.NONE&#41;;
450+
* System.out.printf&#40;&quot;There are %d signers on the instance&#92;n&quot;,
451+
* signersResponse.getValue&#40;&#41;.getAttestationSigners&#40;&#41;.size&#40;&#41;&#41;;
452452
* </pre>
453453
* <!-- end com.azure.security.attestation.AttestationAdministrationClient.listPolicyManagementCertificatesWithResponse -->
454454
*
@@ -460,7 +460,7 @@ public List<AttestationSigner> listPolicyManagementCertificates() {
460460
* @return the attestation policy expressed as a string.
461461
*/
462462
@ServiceMethod(returns = ReturnType.SINGLE)
463-
public Response<List<AttestationSigner>> listPolicyManagementCertificatesWithResponse(AttestationTokenValidationOptions tokenValidationOptions, Context context) {
463+
public AttestationResponse<AttestationSignerCollection> listPolicyManagementCertificatesWithResponse(AttestationTokenValidationOptions tokenValidationOptions, Context context) {
464464
return asyncClient.listPolicyManagementCertificatesWithResponse(tokenValidationOptions, context).block();
465465
}
466466

@@ -537,12 +537,12 @@ public PolicyCertificatesModificationResult addPolicyManagementCertificate(Polic
537537
* @return the response to an attestation policy operation.
538538
*/
539539
@ServiceMethod(returns = ReturnType.SINGLE)
540-
public Response<PolicyCertificatesModificationResult> addPolicyManagementCertificateWithResponse(PolicyManagementCertificateOptions options, Context context) {
540+
public AttestationResponse<PolicyCertificatesModificationResult> addPolicyManagementCertificateWithResponse(PolicyManagementCertificateOptions options, Context context) {
541541
return asyncClient.addPolicyManagementCertificateWithResponse(options, context).block();
542542
}
543543

544544
/**
545-
* Removes a policy management certificate from the set of policy management certificates.
545+
* Deletes a policy management certificate from the set of policy management certificates.
546546
* <p>
547547
* Each Isolated mode attestation service instance maintains a set of certificates which can be used to authorize
548548
* policy modification operations (in Isolated mode, each policy modification request needs to be signed with
@@ -559,7 +559,7 @@ public Response<PolicyCertificatesModificationResult> addPolicyManagementCertifi
559559
* <p><strong>Add a new certificate to the set of policy management certificates for this instance.</strong></p>
560560
* <!-- src_embed com.azure.security.attestation.AttestationAdministrationClient.removePolicyManagementCertificate -->
561561
* <pre>
562-
* PolicyCertificatesModificationResult removeResult = client.removePolicyManagementCertificate&#40;
562+
* PolicyCertificatesModificationResult removeResult = client.deletePolicyManagementCertificate&#40;
563563
* new PolicyManagementCertificateOptions&#40;certificateToAdd, new AttestationSigningKey&#40;certificate, privateKey&#41;&#41;&#41;;
564564
* System.out.printf&#40;&quot; Result: %s&#92;n&quot;, removeResult.getCertificateResolution&#40;&#41;.toString&#40;&#41;&#41;;
565565
* </pre>
@@ -577,8 +577,8 @@ public Response<PolicyCertificatesModificationResult> addPolicyManagementCertifi
577577
* @return the response to an attestation policy operation.
578578
*/
579579
@ServiceMethod(returns = ReturnType.SINGLE)
580-
public PolicyCertificatesModificationResult removePolicyManagementCertificate(PolicyManagementCertificateOptions options) {
581-
return asyncClient.removePolicyManagementCertificate(options).block();
580+
public PolicyCertificatesModificationResult deletePolicyManagementCertificate(PolicyManagementCertificateOptions options) {
581+
return asyncClient.deletePolicyManagementCertificate(options).block();
582582
}
583583

584584
/**
@@ -619,7 +619,7 @@ public PolicyCertificatesModificationResult removePolicyManagementCertificate(Po
619619
* @return the response to an attestation policy operation.
620620
*/
621621
@ServiceMethod(returns = ReturnType.SINGLE)
622-
public Response<PolicyCertificatesModificationResult> removePolicyManagementCertificateWithResponse(PolicyManagementCertificateOptions options, Context context) {
623-
return asyncClient.removePolicyManagementCertificateWithResponse(options, context).block();
622+
public AttestationResponse<PolicyCertificatesModificationResult> deletePolicyManagementCertificateWithResponse(PolicyManagementCertificateOptions options, Context context) {
623+
return asyncClient.deletePolicyManagementCertificateWithResponse(options, context).block();
624624
}
625625
}

sdk/attestation/azure-security-attestation/src/main/java/com/azure/security/attestation/AttestationAdministrationClientBuilder.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import com.azure.core.util.CoreUtils;
2828
import com.azure.core.util.logging.ClientLogger;
2929
import com.azure.core.util.serializer.JacksonAdapter;
30-
import com.azure.core.util.serializer.SerializerAdapter;
3130
import com.azure.security.attestation.implementation.AttestationClientImpl;
3231
import com.azure.security.attestation.models.AttestationPolicySetOptions;
3332
import com.azure.security.attestation.models.AttestationTokenValidationOptions;
@@ -138,7 +137,6 @@ public final class AttestationAdministrationClientBuilder {
138137
private Configuration configuration;
139138
private AttestationServiceVersion serviceVersion;
140139
private AttestationTokenValidationOptions tokenValidationOptions;
141-
private SerializerAdapter serializerAdapter;
142140
private TokenCredential tokenCredential = null;
143141
private static final String CLIENT_NAME;
144142
private static final String CLIENT_VERSION;
@@ -184,10 +182,10 @@ public AttestationAdministrationClient buildClient() {
184182
* <br>
185183
* <!-- src_embed com.azure.security.attestation.AttestationAdministrationClientBuilder.buildAsyncClient -->
186184
* <pre>
187-
* AttestationAdministrationAsyncClient asyncClient = new AttestationAdministrationClientBuilder&#40;&#41;
185+
* AttestationAdministrationClient client = new AttestationAdministrationClientBuilder&#40;&#41;
188186
* .endpoint&#40;endpoint&#41;
189187
* .credential&#40;new DefaultAzureCredentialBuilder&#40;&#41;.build&#40;&#41;&#41;
190-
* .buildAsyncClient&#40;&#41;;
188+
* .buildClient&#40;&#41;;
191189
* </pre>
192190
* <!-- end com.azure.security.attestation.AttestationAdministrationClientBuilder.buildAsyncClient -->
193191
* @return an instance of {@link AttestationClient}.
@@ -246,17 +244,6 @@ public AttestationAdministrationClientBuilder pipeline(HttpPipeline pipeline) {
246244
return this;
247245
}
248246

249-
/**
250-
* Sets The serializer to serialize an object into a string.
251-
*
252-
* @param serializerAdapter the serializerAdapter value.
253-
* @return the AttestationClientBuilder.
254-
*/
255-
public AttestationAdministrationClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
256-
this.serializerAdapter = serializerAdapter;
257-
return this;
258-
}
259-
260247
/**
261248
* Sets The HTTP client used to send the request.
262249
*
@@ -430,11 +417,6 @@ private AttestationClientImpl buildInnerClient() {
430417
.build();
431418
}
432419

433-
SerializerAdapter serializerAdapter = this.serializerAdapter;
434-
if (serializerAdapter == null) {
435-
serializerAdapter = JacksonAdapter.createDefaultSerializerAdapter();
436-
}
437-
438-
return new AttestationClientImpl(pipeline, serializerAdapter, endpoint, version.getVersion());
420+
return new AttestationClientImpl(pipeline, JacksonAdapter.createDefaultSerializerAdapter(), endpoint, version.getVersion());
439421
}
440422
}

0 commit comments

Comments
 (0)