Skip to content
Merged
Prev Previous commit
Next Next commit
customization
  • Loading branch information
weidongxu-microsoft committed Sep 14, 2024
commit 86ab1ea3fe7fe41f72f4ab0d4b7dba10ad0242be
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

import com.azure.autorest.customization.ClassCustomization;
import com.azure.autorest.customization.Customization;
import com.azure.autorest.customization.LibraryCustomization;
import org.slf4j.Logger;
Expand All @@ -15,6 +16,18 @@ public class FaceCustomizations extends Customization {

@Override
public void customize(LibraryCustomization customization, Logger logger) {
// NOOP
ClassCustomization classCustomization = customization.getClass(
"com.azure.ai.vision.face.administration",
"FaceAdministrationClientBuilder");

classCustomization.removeAnnotation("@ServiceClientBuilder");
classCustomization.addAnnotation("@ServiceClientBuilder(\n" +
" serviceClients = {\n" +
" FaceAdministrationClient.class,\n" +
" FaceAdministrationAsyncClient.class,\n" +
" LargeFaceListClient.class,\n" +
" LargePersonGroupClient.class,\n" +
" LargeFaceListAsyncClient.class,\n" +
" LargePersonGroupAsyncClient.class })");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.ai.vision.face.administration;

import com.azure.ai.vision.face.FaceServiceVersion;
import com.azure.ai.vision.face.implementation.FaceAdministrationClientImpl;
import com.azure.core.annotation.ServiceClient;
import com.azure.core.http.HttpPipeline;
import com.azure.core.util.serializer.SerializerAdapter;

import java.util.Objects;

/**
* FaceAdministrationAsyncClient class.
*/
@ServiceClient(builder = FaceAdministrationClientBuilder.class, isAsync = true)
public final class FaceAdministrationAsyncClient {

private final HttpPipeline pipeline;
private final SerializerAdapter serializerAdapter;
private final String endpoint;
private final FaceServiceVersion serviceVersion;

FaceAdministrationAsyncClient(HttpPipeline pipeline, SerializerAdapter serializerAdapter,
String endpoint, FaceServiceVersion serviceVersion) {
this.pipeline = pipeline;
this.serializerAdapter = serializerAdapter;
this.endpoint = endpoint;
this.serviceVersion = serviceVersion;
}


/**
* Creates a new instance of LargeFaceListAsyncClient.
*
* @param largeFaceListId the ID of LargeFaceList.
* @return a new instance of LargeFaceListAsyncClient.
*/
public LargeFaceListAsyncClient getLargeFaceListAsyncClient(String largeFaceListId) {
Objects.requireNonNull(largeFaceListId, "'largeFaceListId' cannot be null.");

FaceAdministrationClientImpl client
= new FaceAdministrationClientImpl(this.pipeline, this.serializerAdapter,
this.endpoint, largeFaceListId, null, serviceVersion);
return new LargeFaceListAsyncClient(client.getLargeFaceLists());
}

/**
* Creates a new instance of LargePersonGroupAsyncClient.
*
* @param largePersonGroupId the ID of LargePersonGroup.
* @return a new instance of LargePersonGroupAsyncClient.
*/
public LargePersonGroupAsyncClient getLargePersonGroupAsyncClient(String largePersonGroupId) {
Objects.requireNonNull(largePersonGroupId, "'largePersonGroupId' cannot be null.");

FaceAdministrationClientImpl client
= new FaceAdministrationClientImpl(this.pipeline, this.serializerAdapter,
this.endpoint, null, largePersonGroupId, serviceVersion);
return new LargePersonGroupAsyncClient(client.getLargePersonGroups());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.ai.vision.face.administration;

import com.azure.ai.vision.face.FaceServiceVersion;
import com.azure.ai.vision.face.implementation.FaceAdministrationClientImpl;
import com.azure.core.annotation.ServiceClient;
import com.azure.core.http.HttpPipeline;
import com.azure.core.util.serializer.SerializerAdapter;

import java.util.Objects;

/**
* FaceAdministrationClient class.
*/
@ServiceClient(builder = FaceAdministrationClientBuilder.class)
public final class FaceAdministrationClient {

private final HttpPipeline pipeline;
private final SerializerAdapter serializerAdapter;
private final String endpoint;
private final FaceServiceVersion serviceVersion;

FaceAdministrationClient(HttpPipeline pipeline, SerializerAdapter serializerAdapter,
String endpoint, FaceServiceVersion serviceVersion) {
this.pipeline = pipeline;
this.serializerAdapter = serializerAdapter;
this.endpoint = endpoint;
this.serviceVersion = serviceVersion;
}

/**
* Creates a new instance of LargeFaceListClient.
*
* @param largeFaceListId the ID of LargeFaceList.
* @return a new instance of LargeFaceListClient.
*/
public LargeFaceListClient getLargeFaceListClient(String largeFaceListId) {
Objects.requireNonNull(largeFaceListId, "'largeFaceListId' cannot be null.");

FaceAdministrationClientImpl client
= new FaceAdministrationClientImpl(this.pipeline, this.serializerAdapter,
this.endpoint, largeFaceListId, null, serviceVersion);
return new LargeFaceListClient(client.getLargeFaceLists());
}

/**
* Creates a new instance of LargePersonGroupClient.
*
* @param largePersonGroupId the ID of LargePersonGroup.
* @return a new instance of LargePersonGroupClient.
*/
public LargePersonGroupClient getLargePersonGroupClient(String largePersonGroupId) {
Objects.requireNonNull(largePersonGroupId, "'largePersonGroupId' cannot be null.");

FaceAdministrationClientImpl client
= new FaceAdministrationClientImpl(this.pipeline, this.serializerAdapter,
this.endpoint, null, largePersonGroupId, serviceVersion);
return new LargePersonGroupClient(client.getLargePersonGroups());
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
// 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.administration;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import com.azure.ai.vision.face.FaceServiceVersion;
import com.azure.ai.vision.face.implementation.FaceAdministrationClientImpl;
import com.azure.core.annotation.Generated;
Expand All @@ -24,8 +27,8 @@
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.HttpLoggingPolicy;
import com.azure.core.http.policy.HttpPipelinePolicy;
import com.azure.core.http.policy.HttpPolicyProviders;
import com.azure.core.http.policy.KeyCredentialPolicy;
Expand All @@ -39,23 +42,22 @@
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 = {
FaceAdministrationClient.class,
FaceAdministrationAsyncClient.class,
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";

Expand Down Expand Up @@ -245,12 +247,11 @@ public FaceAdministrationClientBuilder endpoint(String endpoint) {

/**
* Sets Valid character is letter in lower case or digit or '-' or '_', maximum length is 64.
*
*
* @param largeFaceListId the largeFaceListId value.
* @return the FaceAdministrationClientBuilder.
*/
@Generated
public FaceAdministrationClientBuilder largeFaceListId(String largeFaceListId) {
FaceAdministrationClientBuilder largeFaceListId(String largeFaceListId) {
this.largeFaceListId = largeFaceListId;
return this;
}
Expand All @@ -263,12 +264,11 @@ public FaceAdministrationClientBuilder largeFaceListId(String largeFaceListId) {

/**
* Sets ID of the container.
*
*
* @param largePersonGroupId the largePersonGroupId value.
* @return the FaceAdministrationClientBuilder.
*/
@Generated
public FaceAdministrationClientBuilder largePersonGroupId(String largePersonGroupId) {
FaceAdministrationClientBuilder largePersonGroupId(String largePersonGroupId) {
this.largePersonGroupId = largePersonGroupId;
return this;
}
Expand All @@ -281,7 +281,7 @@ public FaceAdministrationClientBuilder largePersonGroupId(String largePersonGrou

/**
* Sets Service version.
*
*
* @param serviceVersion the serviceVersion value.
* @return the FaceAdministrationClientBuilder.
*/
Expand All @@ -299,7 +299,7 @@ public FaceAdministrationClientBuilder serviceVersion(FaceServiceVersion service

/**
* Sets The retry policy that will attempt to retry failed requests, if applicable.
*
*
* @param retryPolicy the retryPolicy value.
* @return the FaceAdministrationClientBuilder.
*/
Expand All @@ -311,7 +311,7 @@ public FaceAdministrationClientBuilder retryPolicy(RetryPolicy retryPolicy) {

/**
* Builds an instance of FaceAdministrationClientImpl with the provided parameters.
*
*
* @return an instance of FaceAdministrationClientImpl.
*/
@Generated
Expand All @@ -326,13 +326,12 @@ private FaceAdministrationClientImpl buildInnerClient() {
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.");
Objects.requireNonNull(largeFaceListId, "'largeFaceListId' cannot be null.");
Objects.requireNonNull(largePersonGroupId, "'largePersonGroupId' cannot be null.");
// Objects.requireNonNull(largeFaceListId, "'largeFaceListId' cannot be null.");
// Objects.requireNonNull(largePersonGroupId, "'largePersonGroupId' cannot be null.");
}

@Generated
Expand Down Expand Up @@ -378,43 +377,67 @@ private HttpPipeline createHttpPipeline() {

/**
* Builds an instance of LargeFaceListAsyncClient class.
*
*
* @return an instance of LargeFaceListAsyncClient.
*/
@Generated
public LargeFaceListAsyncClient buildLargeFaceListAsyncClient() {
LargeFaceListAsyncClient buildLargeFaceListAsyncClient() {
return new LargeFaceListAsyncClient(buildInnerClient().getLargeFaceLists());
}

/**
* Builds an instance of LargePersonGroupAsyncClient class.
*
*
* @return an instance of LargePersonGroupAsyncClient.
*/
@Generated
public LargePersonGroupAsyncClient buildLargePersonGroupAsyncClient() {
LargePersonGroupAsyncClient buildLargePersonGroupAsyncClient() {
return new LargePersonGroupAsyncClient(buildInnerClient().getLargePersonGroups());
}

/**
* Builds an instance of LargeFaceListClient class.
*
*
* @return an instance of LargeFaceListClient.
*/
@Generated
public LargeFaceListClient buildLargeFaceListClient() {
LargeFaceListClient buildLargeFaceListClient() {
return new LargeFaceListClient(buildInnerClient().getLargeFaceLists());
}

/**
* Builds an instance of LargePersonGroupClient class.
*
*
* @return an instance of LargePersonGroupClient.
*/
@Generated
public LargePersonGroupClient buildLargePersonGroupClient() {
LargePersonGroupClient buildLargePersonGroupClient() {
return new LargePersonGroupClient(buildInnerClient().getLargePersonGroups());
}

/**
* Builds an instance of FaceAdministrationClient class.
*
* @return an instance of FaceAdministrationClient.
*/
public FaceAdministrationClient buildClient() {
this.validateClient();
HttpPipeline localPipeline = (pipeline != null) ? pipeline : createHttpPipeline();
FaceServiceVersion localServiceVersion
= (serviceVersion != null) ? serviceVersion : FaceServiceVersion.getLatest();
return new FaceAdministrationClient(localPipeline, JacksonAdapter.createDefaultSerializerAdapter(),
this.endpoint, localServiceVersion);
}

/**
* Builds an instance of FaceAdministrationAsyncClient class.
*
* @return an instance of FaceAdministrationAsyncClient.
*/
public FaceAdministrationAsyncClient buildAsyncClient() {
this.validateClient();
HttpPipeline localPipeline = (pipeline != null) ? pipeline : createHttpPipeline();
FaceServiceVersion localServiceVersion
= (serviceVersion != null) ? serviceVersion : FaceServiceVersion.getLatest();
return new FaceAdministrationAsyncClient(localPipeline, JacksonAdapter.createDefaultSerializerAdapter(),
this.endpoint, localServiceVersion);
}

private static final ClientLogger LOGGER = new ClientLogger(FaceAdministrationClientBuilder.class);
}
Loading