Skip to content

Commit cd80cf8

Browse files
Addressing SDK archboard review comments (Azure#42706)
* Addressing SDK archboard review comments * Fixing a few autogenerated files * Re-generating SDK and adding all the updated files * Some more autogeneration fixes * Removing unsused imports * Fixing readme documentation format * A few more Readme format fixes * Adding documentation for AAD auth for DT and SDT clients * Addressing the remaining APIView comments on renaming models and using ResponseError from Azure.Core instead of TranslationError model * Fixing a test failure issue * Generating the SDK and fixing some issues with formatting and custom code * Fixing samples and Readme * Fixing Javadocs issue * Fixing compilation error * Going back to using DocumentFilter and removing the customization * Fixing Readme file format issue * Fixing another format issue in REadme file * Re-generating sdk to fix some format issues * Fixing checkstyle errors * Making TranslationError models part of implementation package and adding custom code to return ResponseError * Addressing review comments
1 parent 3f5ad69 commit cd80cf8

File tree

56 files changed

+2109
-1784
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2109
-1784
lines changed

sdk/translation/azure-ai-translation-document/README.md

Lines changed: 274 additions & 186 deletions
Large diffs are not rendered by default.

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/DocumentTranslationAsyncClient.java

Lines changed: 103 additions & 101 deletions
Large diffs are not rendered by default.

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/DocumentTranslationClient.java

Lines changed: 77 additions & 74 deletions
Large diffs are not rendered by default.

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/DocumentTranslationClientBuilder.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package com.azure.ai.translation.document;
55

66
import com.azure.ai.translation.document.implementation.DocumentTranslationClientImpl;
7+
import com.azure.ai.translation.document.models.DocumentTranslationAudience;
78
import com.azure.core.annotation.Generated;
89
import com.azure.core.annotation.ServiceClientBuilder;
910
import com.azure.core.client.traits.ConfigurationTrait;
@@ -59,13 +60,17 @@ public final class DocumentTranslationClientBuilder implements HttpTrait<Documen
5960
@Generated
6061
private static final String[] DEFAULT_SCOPES = new String[] { "https://cognitiveservices.azure.com/.default" };
6162

63+
private static final String DEFAULT_SCOPE = "/.default";
64+
6265
@Generated
6366
private static final Map<String, String> PROPERTIES
6467
= CoreUtils.getProperties("azure-ai-translation-document.properties");
6568

6669
@Generated
6770
private final List<HttpPipelinePolicy> pipelinePolicies;
6871

72+
private DocumentTranslationAudience audience;
73+
6974
/**
7075
* Create an instance of the DocumentTranslationClientBuilder.
7176
*/
@@ -268,6 +273,19 @@ public DocumentTranslationClientBuilder retryPolicy(RetryPolicy retryPolicy) {
268273
return this;
269274
}
270275

276+
/**
277+
* Sets the Authentication audience used to authorize requests sent to the service.
278+
*
279+
* @param audience Token Audience.
280+
* @return The updated {@link DocumentTranslationClientBuilder} object.
281+
* @throws NullPointerException If {@code audience} is null.
282+
*/
283+
public DocumentTranslationClientBuilder audience(DocumentTranslationAudience audience) {
284+
Objects.requireNonNull(audience, "'audience' cannot be null.");
285+
this.audience = audience;
286+
return this;
287+
}
288+
271289
/**
272290
* Builds an instance of DocumentTranslationClientImpl with the provided parameters.
273291
*
@@ -285,6 +303,12 @@ private DocumentTranslationClientImpl buildInnerClient() {
285303
}
286304

287305
@Generated
306+
private void validateClient() {
307+
// This method is invoked from 'buildInnerClient'/'buildClient' method.
308+
// Developer can customize this method, to validate that the necessary conditions are met for the new client.
309+
Objects.requireNonNull(endpoint, "'endpoint' cannot be null.");
310+
}
311+
288312
private HttpPipeline createHttpPipeline() {
289313
Configuration buildConfiguration
290314
= (configuration == null) ? Configuration.getGlobalConfiguration() : configuration;
@@ -311,7 +335,11 @@ private HttpPipeline createHttpPipeline() {
311335
policies.add(new KeyCredentialPolicy("Ocp-Apim-Subscription-Key", keyCredential));
312336
}
313337
if (tokenCredential != null) {
314-
policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, DEFAULT_SCOPES));
338+
DocumentTranslationAudience authAudience = DocumentTranslationAudience.AZURE_PUBLIC_CLOUD;
339+
if (this.audience != null) {
340+
authAudience = this.audience;
341+
}
342+
policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, authAudience + DEFAULT_SCOPE));
315343
}
316344
this.pipelinePolicies.stream()
317345
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
@@ -346,11 +374,4 @@ public DocumentTranslationClient buildClient() {
346374
}
347375

348376
private static final ClientLogger LOGGER = new ClientLogger(DocumentTranslationClientBuilder.class);
349-
350-
@Generated
351-
private void validateClient() {
352-
// This method is invoked from 'buildInnerClient'/'buildClient' method.
353-
// Developer can customize this method, to validate that the necessary conditions are met for the new client.
354-
Objects.requireNonNull(endpoint, "'endpoint' cannot be null.");
355-
}
356377
}

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/SingleDocumentTranslationAsyncClient.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,11 @@ public final class SingleDocumentTranslationAsyncClient {
8282
*/
8383
@Generated
8484
@ServiceMethod(returns = ReturnType.SINGLE)
85-
Mono<Response<BinaryData>> documentTranslateWithResponse(String targetLanguage, BinaryData documentTranslateContent,
85+
Mono<Response<BinaryData>> translateWithResponse(String targetLanguage, BinaryData documentTranslateContent,
8686
RequestOptions requestOptions) {
87-
// Protocol API requires serialization of parts with content-disposition and data, as operation
88-
// 'documentTranslate' is 'multipart/form-data'
89-
return this.serviceClient.documentTranslateWithResponseAsync(targetLanguage, documentTranslateContent,
90-
requestOptions);
87+
// Protocol API requires serialization of parts with content-disposition and data, as operation 'translate' is
88+
// 'multipart/form-data'
89+
return this.serviceClient.translateWithResponseAsync(targetLanguage, documentTranslateContent, requestOptions);
9190
}
9291

9392
/**
@@ -119,9 +118,9 @@ Mono<Response<BinaryData>> documentTranslateWithResponse(String targetLanguage,
119118
*/
120119
@Generated
121120
@ServiceMethod(returns = ReturnType.SINGLE)
122-
public Mono<BinaryData> documentTranslate(String targetLanguage, DocumentTranslateContent documentTranslateContent,
121+
public Mono<BinaryData> translate(String targetLanguage, DocumentTranslateContent documentTranslateContent,
123122
String sourceLanguage, String category, Boolean allowFallback) {
124-
// Generated convenience method for documentTranslateWithResponse
123+
// Generated convenience method for translateWithResponse
125124
RequestOptions requestOptions = new RequestOptions();
126125
if (sourceLanguage != null) {
127126
requestOptions.addQueryParam("sourceLanguage", sourceLanguage, false);
@@ -132,7 +131,7 @@ public Mono<BinaryData> documentTranslate(String targetLanguage, DocumentTransla
132131
if (allowFallback != null) {
133132
requestOptions.addQueryParam("allowFallback", String.valueOf(allowFallback), false);
134133
}
135-
return documentTranslateWithResponse(targetLanguage,
134+
return translateWithResponse(targetLanguage,
136135
new MultipartFormDataHelper(requestOptions)
137136
.serializeFileField("document", documentTranslateContent.getDocument().getContent(),
138137
documentTranslateContent.getDocument().getContentType(),
@@ -180,11 +179,10 @@ public Mono<BinaryData> documentTranslate(String targetLanguage, DocumentTransla
180179
*/
181180
@Generated
182181
@ServiceMethod(returns = ReturnType.SINGLE)
183-
public Mono<BinaryData> documentTranslate(String targetLanguage,
184-
DocumentTranslateContent documentTranslateContent) {
185-
// Generated convenience method for documentTranslateWithResponse
182+
public Mono<BinaryData> translate(String targetLanguage, DocumentTranslateContent documentTranslateContent) {
183+
// Generated convenience method for translateWithResponse
186184
RequestOptions requestOptions = new RequestOptions();
187-
return documentTranslateWithResponse(targetLanguage,
185+
return translateWithResponse(targetLanguage,
188186
new MultipartFormDataHelper(requestOptions)
189187
.serializeFileField("document", documentTranslateContent.getDocument().getContent(),
190188
documentTranslateContent.getDocument().getContentType(),

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/SingleDocumentTranslationClient.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,11 @@ public final class SingleDocumentTranslationClient {
8080
*/
8181
@Generated
8282
@ServiceMethod(returns = ReturnType.SINGLE)
83-
Response<BinaryData> documentTranslateWithResponse(String targetLanguage, BinaryData documentTranslateContent,
83+
Response<BinaryData> translateWithResponse(String targetLanguage, BinaryData documentTranslateContent,
8484
RequestOptions requestOptions) {
85-
// Protocol API requires serialization of parts with content-disposition and data, as operation
86-
// 'documentTranslate' is 'multipart/form-data'
87-
return this.serviceClient.documentTranslateWithResponse(targetLanguage, documentTranslateContent,
88-
requestOptions);
85+
// Protocol API requires serialization of parts with content-disposition and data, as operation 'translate' is
86+
// 'multipart/form-data'
87+
return this.serviceClient.translateWithResponse(targetLanguage, documentTranslateContent, requestOptions);
8988
}
9089

9190
/**
@@ -117,9 +116,9 @@ Response<BinaryData> documentTranslateWithResponse(String targetLanguage, Binary
117116
*/
118117
@Generated
119118
@ServiceMethod(returns = ReturnType.SINGLE)
120-
public BinaryData documentTranslate(String targetLanguage, DocumentTranslateContent documentTranslateContent,
119+
public BinaryData translate(String targetLanguage, DocumentTranslateContent documentTranslateContent,
121120
String sourceLanguage, String category, Boolean allowFallback) {
122-
// Generated convenience method for documentTranslateWithResponse
121+
// Generated convenience method for translateWithResponse
123122
RequestOptions requestOptions = new RequestOptions();
124123
if (sourceLanguage != null) {
125124
requestOptions.addQueryParam("sourceLanguage", sourceLanguage, false);
@@ -130,7 +129,7 @@ public BinaryData documentTranslate(String targetLanguage, DocumentTranslateCont
130129
if (allowFallback != null) {
131130
requestOptions.addQueryParam("allowFallback", String.valueOf(allowFallback), false);
132131
}
133-
return documentTranslateWithResponse(targetLanguage,
132+
return translateWithResponse(targetLanguage,
134133
new MultipartFormDataHelper(requestOptions)
135134
.serializeFileField("document", documentTranslateContent.getDocument().getContent(),
136135
documentTranslateContent.getDocument().getContentType(),
@@ -178,10 +177,10 @@ public BinaryData documentTranslate(String targetLanguage, DocumentTranslateCont
178177
*/
179178
@Generated
180179
@ServiceMethod(returns = ReturnType.SINGLE)
181-
public BinaryData documentTranslate(String targetLanguage, DocumentTranslateContent documentTranslateContent) {
182-
// Generated convenience method for documentTranslateWithResponse
180+
public BinaryData translate(String targetLanguage, DocumentTranslateContent documentTranslateContent) {
181+
// Generated convenience method for translateWithResponse
183182
RequestOptions requestOptions = new RequestOptions();
184-
return documentTranslateWithResponse(targetLanguage,
183+
return translateWithResponse(targetLanguage,
185184
new MultipartFormDataHelper(requestOptions)
186185
.serializeFileField("document", documentTranslateContent.getDocument().getContent(),
187186
documentTranslateContent.getDocument().getContentType(),

sdk/translation/azure-ai-translation-document/src/main/java/com/azure/ai/translation/document/SingleDocumentTranslationClientBuilder.java

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package com.azure.ai.translation.document;
55

66
import com.azure.ai.translation.document.implementation.SingleDocumentTranslationClientImpl;
7+
import com.azure.ai.translation.document.models.DocumentTranslationAudience;
78
import com.azure.core.annotation.Generated;
89
import com.azure.core.annotation.ServiceClientBuilder;
910
import com.azure.core.client.traits.ConfigurationTrait;
@@ -58,6 +59,8 @@ public final class SingleDocumentTranslationClientBuilder implements HttpTrait<S
5859
@Generated
5960
private static final String SDK_VERSION = "version";
6061

62+
private static final String DEFAULT_SCOPE = "/.default";
63+
6164
@Generated
6265
private static final String[] DEFAULT_SCOPES = new String[] { "https://cognitiveservices.azure.com/.default" };
6366

@@ -68,6 +71,8 @@ public final class SingleDocumentTranslationClientBuilder implements HttpTrait<S
6871
@Generated
6972
private final List<HttpPipelinePolicy> pipelinePolicies;
7073

74+
private DocumentTranslationAudience audience;
75+
7176
/**
7277
* Create an instance of the SingleDocumentTranslationClientBuilder.
7378
*/
@@ -159,6 +164,20 @@ public SingleDocumentTranslationClientBuilder retryOptions(RetryOptions retryOpt
159164
return this;
160165
}
161166

167+
/**
168+
* Sets the Authentication audience used to authorize requests sent to the
169+
* service.
170+
*
171+
* @param audience Token Audience.
172+
* @return The updated {@link SingleDocumentTranslationClientBuilder} object.
173+
* @throws NullPointerException If {@code audience} is null.
174+
*/
175+
public SingleDocumentTranslationClientBuilder audience(DocumentTranslationAudience audience) {
176+
Objects.requireNonNull(audience, "'audience' cannot be null.");
177+
this.audience = audience;
178+
return this;
179+
}
180+
162181
/**
163182
* {@inheritDoc}.
164183
*/
@@ -287,6 +306,12 @@ private SingleDocumentTranslationClientImpl buildInnerClient() {
287306
}
288307

289308
@Generated
309+
private void validateClient() {
310+
// This method is invoked from 'buildInnerClient'/'buildClient' method.
311+
// Developer can customize this method, to validate that the necessary conditions are met for the new client.
312+
Objects.requireNonNull(endpoint, "'endpoint' cannot be null.");
313+
}
314+
290315
private HttpPipeline createHttpPipeline() {
291316
Configuration buildConfiguration
292317
= (configuration == null) ? Configuration.getGlobalConfiguration() : configuration;
@@ -313,7 +338,11 @@ private HttpPipeline createHttpPipeline() {
313338
policies.add(new KeyCredentialPolicy("Ocp-Apim-Subscription-Key", keyCredential));
314339
}
315340
if (tokenCredential != null) {
316-
policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, DEFAULT_SCOPES));
341+
DocumentTranslationAudience authAudience = DocumentTranslationAudience.AZURE_PUBLIC_CLOUD;
342+
if (this.audience != null) {
343+
authAudience = this.audience;
344+
}
345+
policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, authAudience + DEFAULT_SCOPE));
317346
}
318347
this.pipelinePolicies.stream()
319348
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
@@ -348,11 +377,4 @@ public SingleDocumentTranslationClient buildClient() {
348377
}
349378

350379
private static final ClientLogger LOGGER = new ClientLogger(SingleDocumentTranslationClientBuilder.class);
351-
352-
@Generated
353-
private void validateClient() {
354-
// This method is invoked from 'buildInnerClient'/'buildClient' method.
355-
// Developer can customize this method, to validate that the necessary conditions are met for the new client.
356-
Objects.requireNonNull(endpoint, "'endpoint' cannot be null.");
357-
}
358380
}

0 commit comments

Comments
 (0)