![JAR search and dependency download from the Maven repository](/logo.png)
com.bandwidth.BandwidthClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bandwidth-sdk Show documentation
Show all versions of bandwidth-sdk Show documentation
The official client SDK for Bandwidth's Voice, Messaging, MFA, and WebRTC APIs
/*
* BandwidthLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
package com.bandwidth;
import com.bandwidth.http.client.HttpCallback;
import com.bandwidth.http.client.HttpClient;
import com.bandwidth.http.client.HttpClientConfiguration;
import com.bandwidth.http.client.OkClient;
import com.bandwidth.http.client.ReadonlyHttpClientConfiguration;
import java.util.AbstractMap.SimpleEntry;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
/**
* Gateway class for the library.
* This class acts as a factory for Controllers.
* It holds the state of the SDK.
*/
public final class BandwidthClient implements Configuration {
/**
* Private store for clients.
*/
private MessagingClient messagingClient;
private MultiFactorAuthClient multiFactorAuthClient;
private PhoneNumberLookupClient phoneNumberLookupClient;
private VoiceClient voiceClient;
private WebRtcClient webRtcClient;
/**
* Current API environment.
*/
private final Environment environment;
/**
* baseUrl value.
*/
private final String baseUrl;
/**
* The HTTP Client instance to use for making HTTP requests.
*/
private final HttpClient httpClient;
/**
* Http Client Configuration instance.
*/
private final ReadonlyHttpClientConfiguration httpClientConfig;
/**
* MessagingBasicAuthManager.
*/
private MessagingBasicAuthManager messagingBasicAuthManager;
/**
* MultiFactorAuthBasicAuthManager.
*/
private MultiFactorAuthBasicAuthManager multiFactorAuthBasicAuthManager;
/**
* PhoneNumberLookupBasicAuthManager.
*/
private PhoneNumberLookupBasicAuthManager phoneNumberLookupBasicAuthManager;
/**
* VoiceBasicAuthManager.
*/
private VoiceBasicAuthManager voiceBasicAuthManager;
/**
* WebRtcBasicAuthManager.
*/
private WebRtcBasicAuthManager webRtcBasicAuthManager;
/**
* Map of authentication Managers.
*/
private Map authManagers;
/**
* Callback to be called before and after the HTTP call for an endpoint is made.
*/
private final HttpCallback httpCallback;
private BandwidthClient(Environment environment, String baseUrl, HttpClient httpClient,
ReadonlyHttpClientConfiguration httpClientConfig, String messagingBasicAuthUserName,
String messagingBasicAuthPassword, String multiFactorAuthBasicAuthUserName,
String multiFactorAuthBasicAuthPassword, String phoneNumberLookupBasicAuthUserName,
String phoneNumberLookupBasicAuthPassword, String voiceBasicAuthUserName,
String voiceBasicAuthPassword, String webRtcBasicAuthUserName,
String webRtcBasicAuthPassword, Map authManagers,
HttpCallback httpCallback) {
this.environment = environment;
this.baseUrl = baseUrl;
this.httpClient = httpClient;
this.httpClientConfig = httpClientConfig;
this.httpCallback = httpCallback;
this.authManagers = (authManagers == null) ? new HashMap<>() : new HashMap<>(authManagers);
if (this.authManagers.containsKey("messaging")) {
this.messagingBasicAuthManager =
(MessagingBasicAuthManager) this.authManagers.get("messaging");
}
if (!this.authManagers.containsKey("messaging")
|| !getMessagingBasicAuthCredentials().equals(messagingBasicAuthUserName,
messagingBasicAuthPassword)) {
this.messagingBasicAuthManager = new MessagingBasicAuthManager(
messagingBasicAuthUserName, messagingBasicAuthPassword);
this.authManagers.put("messaging", messagingBasicAuthManager);
}
if (this.authManagers.containsKey("multiFactorAuth")) {
this.multiFactorAuthBasicAuthManager =
(MultiFactorAuthBasicAuthManager) this.authManagers.get("multiFactorAuth");
}
if (!this.authManagers.containsKey("multiFactorAuth")
|| !getMultiFactorAuthBasicAuthCredentials().equals(
multiFactorAuthBasicAuthUserName, multiFactorAuthBasicAuthPassword)) {
this.multiFactorAuthBasicAuthManager = new MultiFactorAuthBasicAuthManager(
multiFactorAuthBasicAuthUserName, multiFactorAuthBasicAuthPassword);
this.authManagers.put("multiFactorAuth", multiFactorAuthBasicAuthManager);
}
if (this.authManagers.containsKey("phoneNumberLookup")) {
this.phoneNumberLookupBasicAuthManager =
(PhoneNumberLookupBasicAuthManager) this.authManagers.get("phoneNumberLookup");
}
if (!this.authManagers.containsKey("phoneNumberLookup")
|| !getPhoneNumberLookupBasicAuthCredentials().equals(
phoneNumberLookupBasicAuthUserName, phoneNumberLookupBasicAuthPassword)) {
this.phoneNumberLookupBasicAuthManager = new PhoneNumberLookupBasicAuthManager(
phoneNumberLookupBasicAuthUserName, phoneNumberLookupBasicAuthPassword);
this.authManagers.put("phoneNumberLookup", phoneNumberLookupBasicAuthManager);
}
if (this.authManagers.containsKey("voice")) {
this.voiceBasicAuthManager = (VoiceBasicAuthManager) this.authManagers.get("voice");
}
if (!this.authManagers.containsKey("voice")
|| !getVoiceBasicAuthCredentials().equals(voiceBasicAuthUserName,
voiceBasicAuthPassword)) {
this.voiceBasicAuthManager = new VoiceBasicAuthManager(voiceBasicAuthUserName,
voiceBasicAuthPassword);
this.authManagers.put("voice", voiceBasicAuthManager);
}
if (this.authManagers.containsKey("webRtc")) {
this.webRtcBasicAuthManager = (WebRtcBasicAuthManager) this.authManagers.get("webRtc");
}
if (!this.authManagers.containsKey("webRtc")
|| !getWebRtcBasicAuthCredentials().equals(webRtcBasicAuthUserName,
webRtcBasicAuthPassword)) {
this.webRtcBasicAuthManager = new WebRtcBasicAuthManager(webRtcBasicAuthUserName,
webRtcBasicAuthPassword);
this.authManagers.put("webRtc", webRtcBasicAuthManager);
}
messagingClient = new MessagingClient(this, httpCallback);
multiFactorAuthClient = new MultiFactorAuthClient(this, httpCallback);
phoneNumberLookupClient = new PhoneNumberLookupClient(this, httpCallback);
voiceClient = new VoiceClient(this, httpCallback);
webRtcClient = new WebRtcClient(this, httpCallback);
}
/**
* Shutdown the underlying HttpClient instance.
*/
public static void shutdown() {
OkClient.shutdown();
}
/**
* Provides access to messagingClient Client.
* @return Returns the MessagingClient instance
*/
public MessagingClient getMessagingClient() {
return messagingClient;
}
/**
* Provides access to multiFactorAuthClient Client.
* @return Returns the MultiFactorAuthClient instance
*/
public MultiFactorAuthClient getMultiFactorAuthClient() {
return multiFactorAuthClient;
}
/**
* Provides access to phoneNumberLookupClient Client.
* @return Returns the PhoneNumberLookupClient instance
*/
public PhoneNumberLookupClient getPhoneNumberLookupClient() {
return phoneNumberLookupClient;
}
/**
* Provides access to voiceClient Client.
* @return Returns the VoiceClient instance
*/
public VoiceClient getVoiceClient() {
return voiceClient;
}
/**
* Provides access to webRtcClient Client.
* @return Returns the WebRtcClient instance
*/
public WebRtcClient getWebRtcClient() {
return webRtcClient;
}
/**
* Current API environment.
* @return environment
*/
public Environment getEnvironment() {
return environment;
}
/**
* baseUrl value.
* @return baseUrl
*/
public String getBaseUrl() {
return baseUrl;
}
/**
* The HTTP Client instance to use for making HTTP requests.
* @return httpClient
*/
public HttpClient getHttpClient() {
return httpClient;
}
/**
* Http Client Configuration instance.
* @return httpClientConfig
*/
public ReadonlyHttpClientConfiguration getHttpClientConfig() {
return httpClientConfig;
}
/**
* The credentials to use with MessagingBasicAuth.
* @return messagingBasicAuthCredentials
*/
public MessagingBasicAuthCredentials getMessagingBasicAuthCredentials() {
return messagingBasicAuthManager;
}
/**
* The credentials to use with MultiFactorAuthBasicAuth.
* @return multiFactorAuthBasicAuthCredentials
*/
public MultiFactorAuthBasicAuthCredentials getMultiFactorAuthBasicAuthCredentials() {
return multiFactorAuthBasicAuthManager;
}
/**
* The credentials to use with PhoneNumberLookupBasicAuth.
* @return phoneNumberLookupBasicAuthCredentials
*/
public PhoneNumberLookupBasicAuthCredentials getPhoneNumberLookupBasicAuthCredentials() {
return phoneNumberLookupBasicAuthManager;
}
/**
* The credentials to use with VoiceBasicAuth.
* @return voiceBasicAuthCredentials
*/
public VoiceBasicAuthCredentials getVoiceBasicAuthCredentials() {
return voiceBasicAuthManager;
}
/**
* The credentials to use with WebRtcBasicAuth.
* @return webRtcBasicAuthCredentials
*/
public WebRtcBasicAuthCredentials getWebRtcBasicAuthCredentials() {
return webRtcBasicAuthManager;
}
/**
* The list of auth managers.
* @return authManagers
*/
public Map getAuthManagers() {
return authManagers;
}
/**
* The timeout to use for making HTTP requests.
* @deprecated This method will be removed in a future version. Use
* {@link #getHttpClientConfig()} instead.
*
* @return timeout
*/
@Deprecated
public long timeout() {
return httpClientConfig.getTimeout();
}
/**
* Get base URI by current environment.
* @param server Server for which to get the base URI
* @return Processed base URI
*/
public String getBaseUri(Server server) {
Map> parameters = new HashMap<>();
parameters.put("base_url",
new SimpleEntry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy