com.azure.communication.rooms.implementation.AzureCommunicationRoomServiceImplBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-communication-rooms Show documentation
Show all versions of azure-communication-rooms Show documentation
This package contains clients and data structures used to create, update, get, delete the Azure Communication Room Service.
For this release, see notes
Microsoft Azure Communication Rooms quickstart
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.
package com.azure.communication.rooms.implementation;
import com.azure.core.annotation.Generated;
import com.azure.core.annotation.ServiceClientBuilder;
import com.azure.core.client.traits.AzureKeyCredentialTrait;
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.credential.AzureKeyCredential;
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.AzureKeyCredentialPolicy;
import com.azure.core.http.policy.CookiePolicy;
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.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.serializer.JacksonAdapter;
import com.azure.core.util.serializer.SerializerAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/** A builder for creating a new instance of the AzureCommunicationRoomService type. */
@ServiceClientBuilder(serviceClients = {AzureCommunicationRoomServiceImpl.class})
public final class AzureCommunicationRoomServiceImplBuilder
implements HttpTrait,
ConfigurationTrait,
AzureKeyCredentialTrait,
EndpointTrait {
@Generated private static final String SDK_NAME = "name";
@Generated private static final String SDK_VERSION = "version";
@Generated private static final Map PROPERTIES = new HashMap<>();
@Generated private final List pipelinePolicies;
/** Create an instance of the AzureCommunicationRoomServiceImplBuilder. */
@Generated
public AzureCommunicationRoomServiceImplBuilder() {
this.pipelinePolicies = new ArrayList<>();
}
/*
* The HTTP pipeline to send requests through.
*/
@Generated private HttpPipeline pipeline;
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder pipeline(HttpPipeline pipeline) {
this.pipeline = pipeline;
return this;
}
/*
* The HTTP client used to send the request.
*/
@Generated private HttpClient httpClient;
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder httpClient(HttpClient httpClient) {
this.httpClient = httpClient;
return this;
}
/*
* The logging configuration for HTTP requests and responses.
*/
@Generated private HttpLogOptions httpLogOptions;
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder 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 AzureCommunicationRoomServiceImplBuilder 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 AzureCommunicationRoomServiceImplBuilder retryOptions(RetryOptions retryOptions) {
this.retryOptions = retryOptions;
return this;
}
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder 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 AzureCommunicationRoomServiceImplBuilder configuration(Configuration configuration) {
this.configuration = configuration;
return this;
}
/*
* The AzureKeyCredential used for authentication.
*/
@Generated private AzureKeyCredential azureKeyCredential;
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder credential(AzureKeyCredential azureKeyCredential) {
this.azureKeyCredential = azureKeyCredential;
return this;
}
/*
* The service endpoint
*/
@Generated private String endpoint;
/** {@inheritDoc}. */
@Generated
@Override
public AzureCommunicationRoomServiceImplBuilder endpoint(String endpoint) {
this.endpoint = endpoint;
return this;
}
/*
* Api Version
*/
@Generated private String apiVersion;
/**
* Sets Api Version.
*
* @param apiVersion the apiVersion value.
* @return the AzureCommunicationRoomServiceImplBuilder.
*/
@Generated
public AzureCommunicationRoomServiceImplBuilder apiVersion(String apiVersion) {
this.apiVersion = apiVersion;
return this;
}
/*
* The serializer to serialize an object into a string
*/
@Generated private SerializerAdapter serializerAdapter;
/**
* Sets The serializer to serialize an object into a string.
*
* @param serializerAdapter the serializerAdapter value.
* @return the AzureCommunicationRoomServiceImplBuilder.
*/
@Generated
public AzureCommunicationRoomServiceImplBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
this.serializerAdapter = serializerAdapter;
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 AzureCommunicationRoomServiceImplBuilder.
*/
@Generated
public AzureCommunicationRoomServiceImplBuilder retryPolicy(RetryPolicy retryPolicy) {
this.retryPolicy = retryPolicy;
return this;
}
/**
* Builds an instance of AzureCommunicationRoomServiceImpl with the provided parameters.
*
* @return an instance of AzureCommunicationRoomServiceImpl.
*/
@Generated
public AzureCommunicationRoomServiceImpl buildClient() {
HttpPipeline localPipeline = (pipeline != null) ? pipeline : createHttpPipeline();
String localApiVersion = (apiVersion != null) ? apiVersion : "2024-04-15";
SerializerAdapter localSerializerAdapter =
(serializerAdapter != null) ? serializerAdapter : JacksonAdapter.createDefaultSerializerAdapter();
AzureCommunicationRoomServiceImpl client =
new AzureCommunicationRoomServiceImpl(localPipeline, localSerializerAdapter, endpoint, localApiVersion);
return client;
}
@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 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 = new HttpHeaders();
localClientOptions.getHeaders().forEach(header -> headers.set(header.getName(), header.getValue()));
if (headers.getSize() > 0) {
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());
policies.add(new CookiePolicy());
if (azureKeyCredential != null) {
policies.add(new AzureKeyCredentialPolicy("Authorization", azureKeyCredential));
}
this.pipelinePolicies.stream()
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
.forEach(p -> policies.add(p));
HttpPolicyProviders.addAfterRetryPolicies(policies);
policies.add(new HttpLoggingPolicy(httpLogOptions));
HttpPipeline httpPipeline =
new HttpPipelineBuilder()
.policies(policies.toArray(new HttpPipelinePolicy[0]))
.httpClient(httpClient)
.clientOptions(localClientOptions)
.build();
return httpPipeline;
}
}