forked from Azure/azure-sdk-for-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update AI Face codegen and customization (Azure#41823)
* Update codegen * Regen
- Loading branch information
Showing
55 changed files
with
14,489 additions
and
1,663 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
380 changes: 380 additions & 0 deletions
380
...i-vision-face/src/main/java/com/azure/ai/vision/face/FaceAdministrationClientBuilder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,380 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
// Code generated by Microsoft (R) TypeSpec Code Generator. | ||
package com.azure.ai.vision.face; | ||
|
||
import com.azure.ai.vision.face.implementation.FaceAdministrationClientImpl; | ||
import com.azure.core.annotation.Generated; | ||
import com.azure.core.annotation.ServiceClientBuilder; | ||
import com.azure.core.client.traits.ConfigurationTrait; | ||
import com.azure.core.client.traits.EndpointTrait; | ||
import com.azure.core.client.traits.HttpTrait; | ||
import com.azure.core.client.traits.KeyCredentialTrait; | ||
import com.azure.core.client.traits.TokenCredentialTrait; | ||
import com.azure.core.credential.KeyCredential; | ||
import com.azure.core.credential.TokenCredential; | ||
import com.azure.core.http.HttpClient; | ||
import com.azure.core.http.HttpHeaders; | ||
import com.azure.core.http.HttpPipeline; | ||
import com.azure.core.http.HttpPipelineBuilder; | ||
import com.azure.core.http.HttpPipelinePosition; | ||
import com.azure.core.http.policy.AddDatePolicy; | ||
import com.azure.core.http.policy.AddHeadersFromContextPolicy; | ||
import com.azure.core.http.policy.AddHeadersPolicy; | ||
import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; | ||
import com.azure.core.http.policy.HttpLoggingPolicy; | ||
import com.azure.core.http.policy.HttpLogOptions; | ||
import com.azure.core.http.policy.HttpPipelinePolicy; | ||
import com.azure.core.http.policy.HttpPolicyProviders; | ||
import com.azure.core.http.policy.KeyCredentialPolicy; | ||
import com.azure.core.http.policy.RequestIdPolicy; | ||
import com.azure.core.http.policy.RetryOptions; | ||
import com.azure.core.http.policy.RetryPolicy; | ||
import com.azure.core.http.policy.UserAgentPolicy; | ||
import com.azure.core.util.ClientOptions; | ||
import com.azure.core.util.Configuration; | ||
import com.azure.core.util.CoreUtils; | ||
import com.azure.core.util.builder.ClientBuilderUtil; | ||
import com.azure.core.util.logging.ClientLogger; | ||
import com.azure.core.util.serializer.JacksonAdapter; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import java.util.Map; | ||
import java.util.Objects; | ||
|
||
/** | ||
* A builder for creating a new instance of the FaceAdministrationClient type. | ||
*/ | ||
@ServiceClientBuilder( | ||
serviceClients = { | ||
LargeFaceListClient.class, | ||
LargePersonGroupClient.class, | ||
LargeFaceListAsyncClient.class, | ||
LargePersonGroupAsyncClient.class }) | ||
public final class FaceAdministrationClientBuilder implements HttpTrait<FaceAdministrationClientBuilder>, | ||
ConfigurationTrait<FaceAdministrationClientBuilder>, TokenCredentialTrait<FaceAdministrationClientBuilder>, | ||
KeyCredentialTrait<FaceAdministrationClientBuilder>, EndpointTrait<FaceAdministrationClientBuilder> { | ||
|
||
@Generated | ||
private static final String SDK_NAME = "name"; | ||
|
||
@Generated | ||
private static final String SDK_VERSION = "version"; | ||
|
||
@Generated | ||
private static final String[] DEFAULT_SCOPES = new String[] { "https://cognitiveservices.azure.com/.default" }; | ||
|
||
@Generated | ||
private static final Map<String, String> PROPERTIES = CoreUtils.getProperties("azure-ai-vision-face.properties"); | ||
|
||
@Generated | ||
private final List<HttpPipelinePolicy> pipelinePolicies; | ||
|
||
/** | ||
* Create an instance of the FaceAdministrationClientBuilder. | ||
*/ | ||
@Generated | ||
public FaceAdministrationClientBuilder() { | ||
this.pipelinePolicies = new ArrayList<>(); | ||
} | ||
|
||
/* | ||
* The HTTP pipeline to send requests through. | ||
*/ | ||
@Generated | ||
private HttpPipeline pipeline; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder pipeline(HttpPipeline pipeline) { | ||
if (this.pipeline != null && pipeline == null) { | ||
LOGGER.atInfo().log("HttpPipeline is being set to 'null' when it was previously configured."); | ||
} | ||
this.pipeline = pipeline; | ||
return this; | ||
} | ||
|
||
/* | ||
* The HTTP client used to send the request. | ||
*/ | ||
@Generated | ||
private HttpClient httpClient; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder httpClient(HttpClient httpClient) { | ||
this.httpClient = httpClient; | ||
return this; | ||
} | ||
|
||
/* | ||
* The logging configuration for HTTP requests and responses. | ||
*/ | ||
@Generated | ||
private HttpLogOptions httpLogOptions; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder httpLogOptions(HttpLogOptions httpLogOptions) { | ||
this.httpLogOptions = httpLogOptions; | ||
return this; | ||
} | ||
|
||
/* | ||
* The client options such as application ID and custom headers to set on a request. | ||
*/ | ||
@Generated | ||
private ClientOptions clientOptions; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder clientOptions(ClientOptions clientOptions) { | ||
this.clientOptions = clientOptions; | ||
return this; | ||
} | ||
|
||
/* | ||
* The retry options to configure retry policy for failed requests. | ||
*/ | ||
@Generated | ||
private RetryOptions retryOptions; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder retryOptions(RetryOptions retryOptions) { | ||
this.retryOptions = retryOptions; | ||
return this; | ||
} | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder addPolicy(HttpPipelinePolicy customPolicy) { | ||
Objects.requireNonNull(customPolicy, "'customPolicy' cannot be null."); | ||
pipelinePolicies.add(customPolicy); | ||
return this; | ||
} | ||
|
||
/* | ||
* The configuration store that is used during construction of the service client. | ||
*/ | ||
@Generated | ||
private Configuration configuration; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder configuration(Configuration configuration) { | ||
this.configuration = configuration; | ||
return this; | ||
} | ||
|
||
/* | ||
* The TokenCredential used for authentication. | ||
*/ | ||
@Generated | ||
private TokenCredential tokenCredential; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder credential(TokenCredential tokenCredential) { | ||
this.tokenCredential = tokenCredential; | ||
return this; | ||
} | ||
|
||
/* | ||
* The KeyCredential used for authentication. | ||
*/ | ||
@Generated | ||
private KeyCredential keyCredential; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder credential(KeyCredential keyCredential) { | ||
this.keyCredential = keyCredential; | ||
return this; | ||
} | ||
|
||
/* | ||
* The service endpoint | ||
*/ | ||
@Generated | ||
private String endpoint; | ||
|
||
/** | ||
* {@inheritDoc}. | ||
*/ | ||
@Generated | ||
@Override | ||
public FaceAdministrationClientBuilder endpoint(String endpoint) { | ||
this.endpoint = endpoint; | ||
return this; | ||
} | ||
|
||
/* | ||
* Service version | ||
*/ | ||
@Generated | ||
private FaceServiceVersion serviceVersion; | ||
|
||
/** | ||
* Sets Service version. | ||
* | ||
* @param serviceVersion the serviceVersion value. | ||
* @return the FaceAdministrationClientBuilder. | ||
*/ | ||
@Generated | ||
public FaceAdministrationClientBuilder serviceVersion(FaceServiceVersion serviceVersion) { | ||
this.serviceVersion = serviceVersion; | ||
return this; | ||
} | ||
|
||
/* | ||
* The retry policy that will attempt to retry failed requests, if applicable. | ||
*/ | ||
@Generated | ||
private RetryPolicy retryPolicy; | ||
|
||
/** | ||
* Sets The retry policy that will attempt to retry failed requests, if applicable. | ||
* | ||
* @param retryPolicy the retryPolicy value. | ||
* @return the FaceAdministrationClientBuilder. | ||
*/ | ||
@Generated | ||
public FaceAdministrationClientBuilder retryPolicy(RetryPolicy retryPolicy) { | ||
this.retryPolicy = retryPolicy; | ||
return this; | ||
} | ||
|
||
/** | ||
* Builds an instance of FaceAdministrationClientImpl with the provided parameters. | ||
* | ||
* @return an instance of FaceAdministrationClientImpl. | ||
*/ | ||
@Generated | ||
private FaceAdministrationClientImpl buildInnerClient() { | ||
this.validateClient(); | ||
HttpPipeline localPipeline = (pipeline != null) ? pipeline : createHttpPipeline(); | ||
FaceServiceVersion localServiceVersion | ||
= (serviceVersion != null) ? serviceVersion : FaceServiceVersion.getLatest(); | ||
FaceAdministrationClientImpl client = new FaceAdministrationClientImpl(localPipeline, | ||
JacksonAdapter.createDefaultSerializerAdapter(), this.endpoint, localServiceVersion); | ||
return client; | ||
} | ||
|
||
@Generated | ||
private void validateClient() { | ||
// This method is invoked from 'buildInnerClient'/'buildClient' method. | ||
// Developer can customize this method, to validate that the necessary conditions are met for the new client. | ||
Objects.requireNonNull(endpoint, "'endpoint' cannot be null."); | ||
} | ||
|
||
@Generated | ||
private HttpPipeline createHttpPipeline() { | ||
Configuration buildConfiguration | ||
= (configuration == null) ? Configuration.getGlobalConfiguration() : configuration; | ||
HttpLogOptions localHttpLogOptions = this.httpLogOptions == null ? new HttpLogOptions() : this.httpLogOptions; | ||
ClientOptions localClientOptions = this.clientOptions == null ? new ClientOptions() : this.clientOptions; | ||
List<HttpPipelinePolicy> policies = new ArrayList<>(); | ||
String clientName = PROPERTIES.getOrDefault(SDK_NAME, "UnknownName"); | ||
String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, "UnknownVersion"); | ||
String applicationId = CoreUtils.getApplicationId(localClientOptions, localHttpLogOptions); | ||
policies.add(new UserAgentPolicy(applicationId, clientName, clientVersion, buildConfiguration)); | ||
policies.add(new RequestIdPolicy()); | ||
policies.add(new AddHeadersFromContextPolicy()); | ||
HttpHeaders headers = CoreUtils.createHttpHeadersFromClientOptions(localClientOptions); | ||
if (headers != null) { | ||
policies.add(new AddHeadersPolicy(headers)); | ||
} | ||
this.pipelinePolicies.stream() | ||
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL) | ||
.forEach(p -> policies.add(p)); | ||
HttpPolicyProviders.addBeforeRetryPolicies(policies); | ||
policies.add(ClientBuilderUtil.validateAndGetRetryPolicy(retryPolicy, retryOptions, new RetryPolicy())); | ||
policies.add(new AddDatePolicy()); | ||
if (keyCredential != null) { | ||
policies.add(new KeyCredentialPolicy("Ocp-Apim-Subscription-Key", keyCredential)); | ||
} | ||
if (tokenCredential != null) { | ||
policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, DEFAULT_SCOPES)); | ||
} | ||
this.pipelinePolicies.stream() | ||
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY) | ||
.forEach(p -> policies.add(p)); | ||
HttpPolicyProviders.addAfterRetryPolicies(policies); | ||
policies.add(new HttpLoggingPolicy(localHttpLogOptions)); | ||
HttpPipeline httpPipeline = new HttpPipelineBuilder().policies(policies.toArray(new HttpPipelinePolicy[0])) | ||
.httpClient(httpClient) | ||
.clientOptions(localClientOptions) | ||
.build(); | ||
return httpPipeline; | ||
} | ||
|
||
/** | ||
* Builds an instance of LargeFaceListAsyncClient class. | ||
* | ||
* @return an instance of LargeFaceListAsyncClient. | ||
*/ | ||
@Generated | ||
public LargeFaceListAsyncClient buildLargeFaceListAsyncClient() { | ||
return new LargeFaceListAsyncClient(buildInnerClient().getLargeFaceLists()); | ||
} | ||
|
||
/** | ||
* Builds an instance of LargePersonGroupAsyncClient class. | ||
* | ||
* @return an instance of LargePersonGroupAsyncClient. | ||
*/ | ||
@Generated | ||
public LargePersonGroupAsyncClient buildLargePersonGroupAsyncClient() { | ||
return new LargePersonGroupAsyncClient(buildInnerClient().getLargePersonGroups()); | ||
} | ||
|
||
/** | ||
* Builds an instance of LargeFaceListClient class. | ||
* | ||
* @return an instance of LargeFaceListClient. | ||
*/ | ||
@Generated | ||
public LargeFaceListClient buildLargeFaceListClient() { | ||
return new LargeFaceListClient(buildInnerClient().getLargeFaceLists()); | ||
} | ||
|
||
/** | ||
* Builds an instance of LargePersonGroupClient class. | ||
* | ||
* @return an instance of LargePersonGroupClient. | ||
*/ | ||
@Generated | ||
public LargePersonGroupClient buildLargePersonGroupClient() { | ||
return new LargePersonGroupClient(buildInnerClient().getLargePersonGroups()); | ||
} | ||
|
||
private static final ClientLogger LOGGER = new ClientLogger(FaceAdministrationClientBuilder.class); | ||
} |
Oops, something went wrong.