diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index e5365562..2c15736c 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -12,6 +12,8 @@ jobs:
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
BW_USERNAME: ${{ secrets.BW_USERNAME }}
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
+ BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
+ BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml
index 7e7b9e47..62d20358 100644
--- a/.github/workflows/test-pr.yml
+++ b/.github/workflows/test-pr.yml
@@ -14,6 +14,8 @@ env:
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
BW_USERNAME: ${{ secrets.BW_USERNAME }}
+ BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
+ BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
BW_NUMBER: ${{ secrets.BW_NUMBER }}
diff --git a/.github/workflows/test-smoke.yml b/.github/workflows/test-smoke.yml
index 95d0d97e..3d13537b 100644
--- a/.github/workflows/test-smoke.yml
+++ b/.github/workflows/test-smoke.yml
@@ -15,6 +15,9 @@ concurrency:
env:
BW_USERNAME: ${{ secrets.BW_USERNAME }}
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
+ BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
+ BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
+ BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
USER_NUMBER: ${{ secrets.USER_NUMBER }}
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 33ee46ae..4a422647 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -225,6 +225,10 @@ src/main/java/com/bandwidth/sdk/auth/ApiKeyAuth.java
src/main/java/com/bandwidth/sdk/auth/Authentication.java
src/main/java/com/bandwidth/sdk/auth/HttpBasicAuth.java
src/main/java/com/bandwidth/sdk/auth/HttpBearerAuth.java
+src/main/java/com/bandwidth/sdk/auth/OAuth.java
+src/main/java/com/bandwidth/sdk/auth/OAuthFlow.java
+src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java
+src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java
src/main/java/com/bandwidth/sdk/model/AbstractOpenApiSchema.java
src/main/java/com/bandwidth/sdk/model/AccountStatistics.java
src/main/java/com/bandwidth/sdk/model/AdditionalDenialReason.java
diff --git a/README.md b/README.md
index 4edb5733..9cbddc78 100644
--- a/README.md
+++ b/README.md
@@ -98,7 +98,14 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
+ // Or create the instance with a your clientId and clientSecret (for OAuth2):
+ // CallsApi apiInstance = new CallsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", null);
+
String accountId = "9900000"; // String | Your Bandwidth Account ID.
CreateCall createCall = new CreateCall(); // CreateCall | JSON object containing information to create an outbound call
try {
@@ -362,6 +369,14 @@ Authentication schemes defined for the API:
- **Type**: HTTP basic authentication
+
+### OAuth2
+
+- **Type**: OAuth
+- **Flow**: application
+- **Authorization URL**:
+- **Scopes**: N/A
+
## Recommendation
diff --git a/api/openapi.yaml b/api/openapi.yaml
index d981c4c6..e36e7be4 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -11,6 +11,7 @@ servers:
- url: /
security:
- Basic: []
+- OAuth2: []
tags:
- name: Messages
- name: Media
@@ -14925,4 +14926,10 @@ components:
- Example: `Authorization: Basic ZGVtbZpwQDU1dzByZA==`
scheme: basic
type: http
+ OAuth2:
+ flows:
+ clientCredentials:
+ scopes: {}
+ tokenUrl: https://api.bandwidth.com/api/v1/oauth2/token
+ type: oauth2
diff --git a/bandwidth.yml b/bandwidth.yml
index 6ee15ae1..9ab77fd9 100644
--- a/bandwidth.yml
+++ b/bandwidth.yml
@@ -9,6 +9,7 @@ info:
version: 1.0.0
security:
- Basic: []
+ - OAuth2: []
tags:
- name: Messages
- name: Media
@@ -8427,6 +8428,12 @@ components:
- Example: `Authorization: Basic ZGVtbZpwQDU1dzByZA==`
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: https://api.bandwidth.com/api/v1/oauth2/token
+ scopes: {}
callbacks:
inboundCallback:
'{inboundCallbackUrl}':
diff --git a/build.gradle b/build.gradle
index d39f1d72..c4704649 100644
--- a/build.gradle
+++ b/build.gradle
@@ -113,6 +113,8 @@ dependencies {
implementation 'io.gsonfire:gson-fire:1.9.0'
implementation 'jakarta.ws.rs:jakarta.ws.rs-api:2.1.6'
implementation 'org.openapitools:jackson-databind-nullable:0.2.8'
+ implementation group: 'org.json', name: 'json', version: '20250517'
+ implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.18.0'
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.3'
diff --git a/build.sbt b/build.sbt
index 0bf06872..39b09600 100644
--- a/build.sbt
+++ b/build.sbt
@@ -16,6 +16,8 @@ lazy val root = (project in file(".")).
"org.apache.commons" % "commons-lang3" % "3.18.0",
"jakarta.ws.rs" % "jakarta.ws.rs-api" % "2.1.6",
"org.openapitools" % "jackson-databind-nullable" % "0.2.8",
+ "org.json" % "json" % "20250517",
+ "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.2",
"io.gsonfire" % "gson-fire" % "1.9.0" % "compile",
"jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile",
"com.google.code.findbugs" % "jsr305" % "3.0.2" % "compile",
diff --git a/custom_templates/build.gradle.mustache b/custom_templates/build.gradle.mustache
new file mode 100644
index 00000000..75a19564
--- /dev/null
+++ b/custom_templates/build.gradle.mustache
@@ -0,0 +1,203 @@
+apply plugin: 'idea'
+apply plugin: 'eclipse'
+{{#sourceFolder}}
+apply plugin: 'java'
+{{/sourceFolder}}
+apply plugin: 'com.diffplug.spotless'
+
+group = '{{groupId}}'
+version = '{{artifactVersion}}'
+
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.3.+'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
+ classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.11.0'
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+{{#sourceFolder}}
+sourceSets {
+ main.java.srcDirs = ['{{sourceFolder}}']
+}
+
+{{/sourceFolder}}
+if(hasProperty('target') && target == 'android') {
+
+ apply plugin: 'com.android.library'
+ apply plugin: 'com.github.dcendents.android-maven'
+
+ android {
+ compileSdkVersion 25
+ buildToolsVersion '25.0.2'
+ defaultConfig {
+ minSdkVersion 14
+ targetSdkVersion 25
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ // Rename the aar correctly
+ libraryVariants.all { variant ->
+ variant.outputs.each { output ->
+ def outputFile = output.outputFile
+ if (outputFile != null && outputFile.name.endsWith('.aar')) {
+ def fileName = "${project.name}-${variant.baseName}-${version}.aar"
+ output.outputFile = new File(outputFile.parent, fileName)
+ }
+ }
+ }
+
+ dependencies {
+ provided "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
+ }
+ }
+
+ afterEvaluate {
+ android.libraryVariants.all { variant ->
+ def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
+ task.description = "Create jar artifact for ${variant.name}"
+ task.dependsOn variant.javaCompile
+ task.from variant.javaCompile.destinationDirectory
+ task.destinationDirectory = project.file("${project.buildDir}/outputs/jar")
+ task.archiveFileName = "${project.name}-${variant.baseName}-${version}.jar"
+ artifacts.add('archives', task)
+ }
+ }
+
+ task sourcesJar(type: Jar) {
+ from android.sourceSets.main.java.srcDirs
+ classifier = 'sources'
+ }
+
+ artifacts {
+ archives sourcesJar
+ }
+
+} else {
+
+ apply plugin: 'java'
+ apply plugin: 'maven-publish'
+
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+
+ publishing {
+ publications {
+ maven(MavenPublication) {
+ artifactId = '{{artifactId}}'
+ from components.java
+ }
+ }
+ }
+
+ task execute(type:JavaExec) {
+ main = System.getProperty('mainClass')
+ classpath = sourceSets.main.runtimeClasspath
+ }
+}
+
+ext {
+ {{#swagger1AnnotationLibrary}}
+ swagger_annotations_version = "1.6.9"
+ {{/swagger1AnnotationLibrary}}
+ {{#swagger2AnnotationLibrary}}
+ swagger_annotations_version = "2.2.9"
+ {{/swagger2AnnotationLibrary}}
+ jakarta_annotation_version = "1.3.5"
+ {{#useBeanValidation}}
+ bean_validation_version = "2.0.2"
+ {{/useBeanValidation}}
+}
+
+dependencies {
+ {{#swagger1AnnotationLibrary}}
+ implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
+ {{/swagger1AnnotationLibrary}}
+ {{#swagger2AnnotationLibrary}}
+ implementation "io.swagger.core.v3:swagger-annotations:$swagger_annotations_version"
+ {{/swagger2AnnotationLibrary}}
+ implementation "com.google.code.findbugs:jsr305:3.0.2"
+ implementation 'com.squareup.okhttp3:okhttp:4.12.0'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
+ implementation 'com.google.code.gson:gson:2.9.1'
+ implementation 'io.gsonfire:gson-fire:1.9.0'
+ implementation 'jakarta.ws.rs:jakarta.ws.rs-api:2.1.6'
+ {{#openApiNullable}}
+ implementation 'org.openapitools:jackson-databind-nullable:0.2.8'
+ {{/openApiNullable}}
+ {{#withAWSV4Signature}}
+ implementation 'software.amazon.awssdk:auth:2.20.157'
+ {{/withAWSV4Signature}}
+ {{#hasOAuthMethods}}
+ implementation group: 'org.json', name: 'json', version: '20250517'
+ implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2'
+ {{/hasOAuthMethods}}
+ implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.18.0'
+ {{#joda}}
+ implementation 'joda-time:joda-time:2.9.9'
+ {{/joda}}
+ {{#dynamicOperations}}
+ implementation 'io.swagger.parser.v3:swagger-parser-v3:2.0.30'
+ {{/dynamicOperations}}
+ implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
+ {{#useBeanValidation}}
+ implementation "jakarta.validation:jakarta.validation-api:$bean_validation_version"
+ {{/useBeanValidation}}
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.3'
+ testImplementation 'org.mockito:mockito-core:3.12.4'
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.3'
+}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
+
+// Use spotless plugin to automatically format code, remove unused import, etc
+// To apply changes directly to the file, run `gradlew spotlessApply`
+// Ref: https://github.com/diffplug/spotless/tree/main/plugin-gradle
+spotless {
+ // comment out below to run spotless as part of the `check` task
+ enforceCheck false
+
+ format 'misc', {
+ // define the files (e.g. '*.gradle', '*.md') to apply `misc` to
+ target '.gitignore'
+
+ // define the steps to apply to those files
+ trimTrailingWhitespace()
+ indentWithSpaces() // Takes an integer argument if you don't like 4
+ endWithNewline()
+ }
+ java {
+ // don't need to set target, it is inferred from java
+
+ // apply a specific flavor of google-java-format
+ googleJavaFormat('1.8').aosp().reflowLongStrings()
+
+ removeUnusedImports()
+ importOrder()
+ }
+}
+
+test {
+ // Enable JUnit 5 (Gradle 4.6+).
+ useJUnitPlatform()
+
+ // Always run tests, even when nothing changed.
+ dependsOn 'cleanTest'
+
+ // Show test results.
+ testLogging {
+ events "passed", "skipped", "failed"
+ }
+
+}
diff --git a/custom_templates/build.sbt.mustache b/custom_templates/build.sbt.mustache
new file mode 100644
index 00000000..13382bcd
--- /dev/null
+++ b/custom_templates/build.sbt.mustache
@@ -0,0 +1,42 @@
+lazy val root = (project in file(".")).
+ settings(
+ organization := "{{groupId}}",
+ name := "{{artifactId}}",
+ version := "{{artifactVersion}}",
+ scalaVersion := "2.11.12",
+ scalacOptions ++= Seq("-feature"),
+ compile / javacOptions ++= Seq("-Xlint:deprecation"),
+ Compile / packageDoc / publishArtifact := false,
+ resolvers += Resolver.mavenLocal,
+ libraryDependencies ++= Seq(
+ "io.swagger" % "swagger-annotations" % "1.6.5",
+ "com.squareup.okhttp3" % "okhttp" % "4.12.0",
+ "com.squareup.okhttp3" % "logging-interceptor" % "4.12.0",
+ "com.google.code.gson" % "gson" % "2.9.1",
+ "org.apache.commons" % "commons-lang3" % "3.18.0",
+ "jakarta.ws.rs" % "jakarta.ws.rs-api" % "2.1.6",
+ {{#openApiNullable}}
+ "org.openapitools" % "jackson-databind-nullable" % "0.2.8",
+ {{/openApiNullable}}
+ {{#withAWSV4Signature}}
+ "software.amazon.awssdk" % "auth" % "2.20.157",
+ {{/withAWSV4Signature}}
+ {{#hasOAuthMethods}}
+ "org.json" % "json" % "20250517",
+ "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.2",
+ {{/hasOAuthMethods}}
+ {{#joda}}
+ "joda-time" % "joda-time" % "2.9.9" % "compile",
+ {{/joda}}
+ {{#dynamicOperations}}
+ "io.swagger.parser.v3" % "swagger-parser-v3" "2.0.30" % "compile"
+ {{/dynamicOperations}}
+ "io.gsonfire" % "gson-fire" % "1.9.0" % "compile",
+ "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile",
+ "com.google.code.findbugs" % "jsr305" % "3.0.2" % "compile",
+ "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile",
+ "org.junit.jupiter" % "junit-jupiter-api" % "5.10.3" % "test",
+ "com.novocode" % "junit-interface" % "0.10" % "test",
+ "org.mockito" % "mockito-core" % "3.12.4" % "test"
+ )
+ )
diff --git a/custom_templates/libraries/okhttp-gson/README.mustache b/custom_templates/libraries/okhttp-gson/README.mustache
new file mode 100644
index 00000000..de1a697e
--- /dev/null
+++ b/custom_templates/libraries/okhttp-gson/README.mustache
@@ -0,0 +1,198 @@
+# {{artifactId}}
+
+{{appName}}
+- API version: {{appVersion}}
+{{^hideGenerationTimestamp}}
+ - Build date: {{generatedDate}}
+{{/hideGenerationTimestamp}}
+ - Generator version: {{generatorVersion}}
+
+{{{appDescriptionWithNewLines}}}
+
+{{#infoUrl}}
+ For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
+{{/infoUrl}}
+
+*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)*
+
+
+## Requirements
+
+Building the API client library requires:
+1. Java 1.8+
+2. Maven (3.8.3+)/Gradle (7.2+)
+
+## Installation
+
+To install the API client library to your local Maven repository, simply execute:
+
+```shell
+mvn clean install
+```
+
+To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
+
+```shell
+mvn clean deploy
+```
+
+Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.
+
+### Maven users
+
+Add this dependency to your project's POM:
+
+```xml
+
+ {{{groupId}}}
+ {{{artifactId}}}
+ {{{artifactVersion}}}
+ compile
+
+```
+
+### Gradle users
+
+Add this dependency to your project's build file:
+
+```groovy
+ repositories {
+ mavenCentral() // Needed if the '{{{artifactId}}}' jar has been published to maven central.
+ mavenLocal() // Needed if the '{{{artifactId}}}' jar has been published to the local maven repo.
+ }
+
+ dependencies {
+ implementation "{{{groupId}}}:{{{artifactId}}}:{{{artifactVersion}}}"
+ }
+```
+
+### Others
+
+At first generate the JAR by executing:
+
+```shell
+mvn clean package
+```
+
+Then manually install the following JARs:
+
+* `target/{{{artifactId}}}-{{{artifactVersion}}}.jar`
+* `target/lib/*.jar`
+
+## Getting Started
+
+Please follow the [installation](#installation) instruction and execute the following Java code:
+
+```java
+{{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}}
+// Import classes:
+import {{{invokerPackage}}}.ApiClient;
+import {{{invokerPackage}}}.ApiException;
+import {{{invokerPackage}}}.Configuration;{{#hasAuthMethods}}
+import {{{invokerPackage}}}.auth.*;{{/hasAuthMethods}}
+import {{{modelPackage}}}.*;
+import {{{package}}}.{{{classname}}};
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("{{{basePath}}}");
+ {{#withAWSV4Signature}}
+ // Configure AWS Signature V4 authorization
+ defaultClient.setAWS4Configuration("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY", "REGION", "SERVICE")
+ {{/withAWSV4Signature}}
+ {{#hasAuthMethods}}
+ {{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
+ // Configure HTTP basic authorization: {{{name}}}
+ HttpBasicAuth {{{name}}} = (HttpBasicAuth) defaultClient.getAuthentication("{{{name}}}");
+ {{{name}}}.setUsername("YOUR USERNAME");
+ {{{name}}}.setPassword("YOUR PASSWORD");{{/isBasicBasic}}{{#isBasicBearer}}
+ // Configure HTTP bearer authorization: {{{name}}}
+ HttpBearerAuth {{{name}}} = (HttpBearerAuth) defaultClient.getAuthentication("{{{name}}}");
+ {{{name}}}.setBearerToken("BEARER TOKEN");{{/isBasicBearer}}{{/isBasic}}{{#isApiKey}}
+ // Configure API key authorization: {{{name}}}
+ ApiKeyAuth {{{name}}} = (ApiKeyAuth) defaultClient.getAuthentication("{{{name}}}");
+ {{{name}}}.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //{{{name}}}.setApiKeyPrefix("Token");{{/isApiKey}}{{#isOAuth}}
+ // Configure OAuth2 access token for authorization: {{{name}}}
+ OAuth {{{name}}} = (OAuth) defaultClient.getAuthentication("{{{name}}}");
+ {{{name}}}.setAccessToken("YOUR ACCESS TOKEN");{{/isOAuth}}
+ {{/authMethods}}
+ {{/hasAuthMethods}}
+
+ {{{classname}}} apiInstance = new {{{classname}}}(defaultClient);
+ // Or create the instance with a your clientId and clientSecret (for OAuth2):
+ // {{{classname}}} apiInstance = new {{{classname}}}("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", null);
+
+ {{#allParams}}
+ {{{dataType}}} {{{paramName}}} = {{{example}}}; // {{{dataType}}} | {{{description}}}
+ {{/allParams}}
+ try {
+ {{#returnType}}{{{.}}} result = {{/returnType}}apiInstance.{{{operationId}}}{{^vendorExtensions.x-group-parameters}}({{#allParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/allParams}});{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}({{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}){{#optionalParams}}
+ .{{{paramName}}}({{{paramName}}}){{/optionalParams}}
+ .execute();{{/vendorExtensions.x-group-parameters}}{{#returnType}}
+ System.out.println(result);{{/returnType}}
+ } catch (ApiException e) {
+ System.err.println("Exception when calling {{{classname}}}#{{{operationId}}}");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+{{/-first}}{{/operation}}{{/operations}}{{/-first}}{{/apis}}{{/apiInfo}}
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *{{basePath}}*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{summary}}
+{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
+
+## Documentation for Models
+
+{{#models}}{{#model}} - [{{classname}}]({{modelDocPath}}{{classname}}.md)
+{{/model}}{{/models}}
+
+
+## Documentation for Authorization
+
+{{^authMethods}}Endpoints do not require authorization.{{/authMethods}}
+{{#hasAuthMethods}}Authentication schemes defined for the API:{{/hasAuthMethods}}
+{{#authMethods}}
+
+### {{name}}
+
+{{#isApiKey}}- **Type**: API key
+- **API key parameter name**: {{keyParamName}}
+- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}}
+{{/isApiKey}}
+{{#isBasicBasic}}- **Type**: HTTP basic authentication
+{{/isBasicBasic}}
+{{#isBasicBearer}}- **Type**: HTTP Bearer Token authentication{{#bearerFormat}} ({{{.}}}){{/bearerFormat}}
+{{/isBasicBearer}}
+{{#isHttpSignature}}- **Type**: HTTP signature authentication
+{{/isHttpSignature}}
+{{#isOAuth}}- **Type**: OAuth
+- **Flow**: {{flow}}
+- **Authorization URL**: {{authorizationUrl}}
+- **Scopes**: {{^scopes}}N/A{{/scopes}}
+{{#scopes}} - {{scope}}: {{description}}
+{{/scopes}}
+{{/isOAuth}}
+
+{{/authMethods}}
+
+## Recommendation
+
+It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.
+
+## Author
+
+{{#apiInfo}}{{#apis}}{{#-last}}{{infoEmail}}
+{{/-last}}{{/apis}}{{/apiInfo}}
diff --git a/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache b/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache
new file mode 100644
index 00000000..facbc974
--- /dev/null
+++ b/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache
@@ -0,0 +1,75 @@
+{{>licenseInfo}}
+
+{{#hasOAuthMethods}}
+package {{invokerPackage}}.auth;
+
+import okhttp3.OkHttpClient;
+import okhttp3.MediaType;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+import org.apache.oltu.oauth2.client.HttpClient;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
+import org.apache.oltu.oauth2.client.response.OAuthClientResponse;
+import org.apache.oltu.oauth2.client.response.OAuthClientResponseFactory;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class OAuthOkHttpClient implements HttpClient {
+ private OkHttpClient client;
+
+ public OAuthOkHttpClient() {
+ this.client = new OkHttpClient();
+ }
+
+ public OAuthOkHttpClient(OkHttpClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public T execute(OAuthClientRequest request, Map headers,
+ String requestMethod, Class responseClass)
+ throws OAuthSystemException, OAuthProblemException {
+
+ MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
+ Request.Builder requestBuilder = new Request.Builder().url(request.getLocationUri());
+
+ headers = request.getHeaders();
+
+ if(headers != null) {
+ for (Entry entry : headers.entrySet()) {
+ if (entry.getKey().equalsIgnoreCase("Content-Type")) {
+ mediaType = MediaType.parse(entry.getValue());
+ } else {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ RequestBody body = request.getBody() != null ? RequestBody.create(request.getBody(), mediaType) : null;
+ requestBuilder.method(requestMethod, body);
+
+ try {
+ Response response = client.newCall(requestBuilder.build()).execute();
+ return OAuthClientResponseFactory.createCustomResponse(
+ response.body().string(),
+ response.body().contentType().toString(),
+ response.code(),
+ response.headers().toMultimap(),
+ responseClass);
+ } catch (IOException e) {
+ throw new OAuthSystemException(e);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ // Nothing to do here
+ }
+}
+{{/hasOAuthMethods}}
diff --git a/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache b/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache
new file mode 100644
index 00000000..d68b69e6
--- /dev/null
+++ b/custom_templates/libraries/okhttp-gson/auth/RetryingOAuth.mustache
@@ -0,0 +1,220 @@
+{{>licenseInfo}}
+
+{{#hasOAuthMethods}}
+package {{invokerPackage}}.auth;
+
+import {{invokerPackage}}.ApiException;
+import {{invokerPackage}}.Pair;
+
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+import org.apache.oltu.oauth2.client.OAuthClient;
+import org.apache.oltu.oauth2.client.request.OAuthBearerClientRequest;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest.TokenRequestBuilder;
+import org.apache.oltu.oauth2.client.response.OAuthJSONAccessTokenResponse;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+import org.apache.oltu.oauth2.common.message.types.GrantType;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.util.Map;
+import java.util.List;
+import java.util.Base64;
+
+public class RetryingOAuth extends OAuth implements Interceptor {
+ private OAuthClient oAuthClient;
+
+ private TokenRequestBuilder tokenRequestBuilder;
+
+ private String clientId;
+ private String clientSecret;
+
+ /**
+ * @param client An OkHttp client
+ * @param tokenRequestBuilder A token request builder
+ */
+ public RetryingOAuth(OkHttpClient client, TokenRequestBuilder tokenRequestBuilder) {
+ this.oAuthClient = new OAuthClient(new OAuthOkHttpClient(client));
+ this.tokenRequestBuilder = tokenRequestBuilder;
+ }
+
+ /**
+ * @param tokenRequestBuilder A token request builder
+ */
+ public RetryingOAuth(TokenRequestBuilder tokenRequestBuilder) {
+ this(new OkHttpClient(), tokenRequestBuilder);
+ }
+
+ /**
+ * @param tokenUrl The token URL to be used for this OAuth2 flow.
+ * Applicable to the following OAuth2 flows: "password", "clientCredentials" and "authorizationCode".
+ * The value must be an absolute URL.
+ * @param clientId The OAuth2 client ID for the "clientCredentials" flow.
+ * @param flow OAuth flow.
+ * @param clientSecret The OAuth2 client secret for the "clientCredentials" flow.
+ * @param parameters A map of string.
+ */
+ public RetryingOAuth(
+ String tokenUrl,
+ String clientId,
+ OAuthFlow flow,
+ String clientSecret,
+ Map parameters
+ ) {
+ this(OAuthClientRequest.tokenLocation(tokenUrl));
+ this.clientId = clientId;
+ this.clientSecret = clientSecret;
+ setFlow(flow);
+ if (parameters != null) {
+ for (Map.Entry entry : parameters.entrySet()) {
+ tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ /**
+ * Set the OAuth flow
+ *
+ * @param flow The OAuth flow.
+ */
+ public void setFlow(OAuthFlow flow) {
+ switch(flow) {
+ case ACCESS_CODE:
+ tokenRequestBuilder.setGrantType(GrantType.AUTHORIZATION_CODE);
+ break;
+ case IMPLICIT:
+ tokenRequestBuilder.setGrantType(GrantType.IMPLICIT);
+ break;
+ case PASSWORD:
+ tokenRequestBuilder.setGrantType(GrantType.PASSWORD);
+ break;
+ case APPLICATION:
+ tokenRequestBuilder.setGrantType(GrantType.CLIENT_CREDENTIALS);
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ return retryingIntercept(chain, true);
+ }
+
+ private Response retryingIntercept(Chain chain, boolean updateTokenAndRetryOnAuthorizationFailure) throws IOException {
+ Request request = chain.request();
+
+ // If the request already has an authorization (e.g. Basic auth), proceed with the request as is
+ if (request.header("Authorization") != null) {
+ return chain.proceed(request);
+ }
+
+ // Get the token if it has not yet been acquired
+ if (getAccessToken() == null) {
+ updateAccessToken(null);
+ }
+
+ OAuthClientRequest oAuthRequest;
+ if (getAccessToken() != null) {
+ // Build the request
+ Request.Builder requestBuilder = request.newBuilder();
+
+ String requestAccessToken = getAccessToken();
+ try {
+ oAuthRequest =
+ new OAuthBearerClientRequest(request.url().toString()).
+ setAccessToken(requestAccessToken).
+ buildHeaderMessage();
+ } catch (OAuthSystemException e) {
+ throw new IOException(e);
+ }
+
+ Map headers = oAuthRequest.getHeaders();
+ for (Map.Entry entry : headers.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ requestBuilder.url(oAuthRequest.getLocationUri());
+
+ // Execute the request
+ Response response = chain.proceed(requestBuilder.build());
+
+ // 401/403 response codes most likely indicate an expired access token, unless it happens two times in a row
+ if (
+ response != null &&
+ ( response.code() == HttpURLConnection.HTTP_UNAUTHORIZED ||
+ response.code() == HttpURLConnection.HTTP_FORBIDDEN ) &&
+ updateTokenAndRetryOnAuthorizationFailure
+ ) {
+ try {
+ if (updateAccessToken(requestAccessToken)) {
+ response.body().close();
+ return retryingIntercept(chain, false);
+ }
+ } catch (Exception e) {
+ response.body().close();
+ throw e;
+ }
+ }
+ return response;
+ }
+ else {
+ return chain.proceed(chain.request());
+ }
+ }
+
+ /**
+ * Returns true if the access token has been updated
+ *
+ * @param requestAccessToken the request access token
+ * @return True if the update is successful
+ * @throws java.io.IOException If fail to update the access token
+ */
+ public synchronized boolean updateAccessToken(String requestAccessToken) throws IOException {
+ if (getAccessToken() == null || getAccessToken().equals(requestAccessToken)) {
+ try {
+ OAuthClientRequest req = tokenRequestBuilder.buildBodyMessage();
+ String credentials = Base64.getEncoder().encodeToString((clientId + ":" + clientSecret).getBytes());
+ req.setHeader("Authorization", "Basic " + credentials);
+ OAuthJSONAccessTokenResponse accessTokenResponse = oAuthClient.accessToken(req);
+ if (accessTokenResponse != null && accessTokenResponse.getAccessToken() != null) {
+ setAccessToken(accessTokenResponse.getAccessToken());
+ }
+ } catch (OAuthSystemException | OAuthProblemException e) {
+ throw new IOException(e);
+ }
+ }
+ return getAccessToken() == null || !getAccessToken().equals(requestAccessToken);
+ }
+
+ /**
+ * Gets the token request builder
+ *
+ * @return A token request builder
+ */
+ public TokenRequestBuilder getTokenRequestBuilder() {
+ return tokenRequestBuilder;
+ }
+
+ /**
+ * Sets the token request builder
+ *
+ * @param tokenRequestBuilder Token request builder
+ */
+ public void setTokenRequestBuilder(TokenRequestBuilder tokenRequestBuilder) {
+ this.tokenRequestBuilder = tokenRequestBuilder;
+ }
+
+ // Applying authorization to parameters is performed in the retryingIntercept method
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams,
+ String payload, String method, URI uri) throws ApiException {
+ // No implementation necessary
+ }
+}
+{{/hasOAuthMethods}}
diff --git a/custom_templates/pom.mustache b/custom_templates/pom.mustache
index 1d88b213..0a5d64c5 100644
--- a/custom_templates/pom.mustache
+++ b/custom_templates/pom.mustache
@@ -469,6 +469,11 @@
jakarta.ws.rs-api
${jakarta.ws.rs-api-version}
+
+ org.json
+ json
+ 20250517
+
org.junit.jupiter
diff --git a/docs/CallsApi.md b/docs/CallsApi.md
index 19512af8..2e9fd55f 100644
--- a/docs/CallsApi.md
+++ b/docs/CallsApi.md
@@ -39,6 +39,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
CreateCall createCall = new CreateCall(); // CreateCall | JSON object containing information to create an outbound call
@@ -69,7 +73,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -117,6 +121,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -147,7 +155,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -195,6 +203,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String to = "%2b19195551234"; // String | Filter results by the `to` field.
@@ -237,7 +249,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -285,6 +297,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -316,7 +332,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -365,6 +381,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
CallsApi apiInstance = new CallsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -399,7 +419,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/ConferencesApi.md b/docs/ConferencesApi.md
index 74750e16..65124019 100644
--- a/docs/ConferencesApi.md
+++ b/docs/ConferencesApi.md
@@ -43,6 +43,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -75,7 +79,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -123,6 +127,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -153,7 +161,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -201,6 +209,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -233,7 +245,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -281,6 +293,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -313,7 +329,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -361,6 +377,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -391,7 +411,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -439,6 +459,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String name = "my-custom-name"; // String | Filter results by the `name` field.
@@ -477,7 +501,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -525,6 +549,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -556,7 +584,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -604,6 +632,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -638,7 +670,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -686,6 +718,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
ConferencesApi apiInstance = new ConferencesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
@@ -719,7 +755,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/MediaApi.md b/docs/MediaApi.md
index 427119ae..4a378ea0 100644
--- a/docs/MediaApi.md
+++ b/docs/MediaApi.md
@@ -38,6 +38,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MediaApi apiInstance = new MediaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String mediaId = "14762070468292kw2fuqty55yp2b2/0/bw.png"; // String | Media ID to retrieve.
@@ -67,7 +71,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -115,6 +119,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MediaApi apiInstance = new MediaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String mediaId = "14762070468292kw2fuqty55yp2b2/0/bw.png"; // String | Media ID to retrieve.
@@ -145,7 +153,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -193,6 +201,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MediaApi apiInstance = new MediaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String continuationToken = "1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39"; // String | Continuation token used to retrieve subsequent media.
@@ -223,7 +235,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -271,6 +283,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MediaApi apiInstance = new MediaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String mediaId = "14762070468292kw2fuqty55yp2b2/0/bw.png"; // String | Media ID to retrieve.
@@ -306,7 +322,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/MessagesApi.md b/docs/MessagesApi.md
index 84135448..d10cc290 100644
--- a/docs/MessagesApi.md
+++ b/docs/MessagesApi.md
@@ -36,6 +36,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MessagesApi apiInstance = new MessagesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
MessageRequest messageRequest = new MessageRequest(); // MessageRequest |
@@ -66,7 +70,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -115,6 +119,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MessagesApi apiInstance = new MessagesApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String messageId = "9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6"; // String | The ID of the message to search for. Special characters need to be encoded using URL encoding. Message IDs could come in different formats, e.g., 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6 and 1589228074636lm4k2je7j7jklbn2 are valid message ID formats. Note that you must include at least one query parameter.
@@ -197,7 +205,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/MfaApi.md b/docs/MfaApi.md
index 34b407d2..ee184f93 100644
--- a/docs/MfaApi.md
+++ b/docs/MfaApi.md
@@ -37,6 +37,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MfaApi apiInstance = new MfaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
CodeRequest codeRequest = new CodeRequest(); // CodeRequest | MFA code request body.
@@ -67,7 +71,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -111,6 +115,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MfaApi apiInstance = new MfaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
CodeRequest codeRequest = new CodeRequest(); // CodeRequest | MFA code request body.
@@ -141,7 +149,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -185,6 +193,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MfaApi apiInstance = new MfaApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
VerifyCodeRequest verifyCodeRequest = new VerifyCodeRequest(); // VerifyCodeRequest | MFA code verify request body.
@@ -215,7 +227,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/MultiChannelApi.md b/docs/MultiChannelApi.md
index 5a6e5307..39d4040b 100644
--- a/docs/MultiChannelApi.md
+++ b/docs/MultiChannelApi.md
@@ -35,6 +35,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
MultiChannelApi apiInstance = new MultiChannelApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
MultiChannelMessageRequest multiChannelMessageRequest = new MultiChannelMessageRequest(); // MultiChannelMessageRequest |
@@ -65,7 +69,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/PhoneNumberLookupApi.md b/docs/PhoneNumberLookupApi.md
index 698d9856..38c0c987 100644
--- a/docs/PhoneNumberLookupApi.md
+++ b/docs/PhoneNumberLookupApi.md
@@ -37,6 +37,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
PhoneNumberLookupApi apiInstance = new PhoneNumberLookupApi(defaultClient);
String accountId = "9900000"; // String |
AsyncLookupRequest asyncLookupRequest = new AsyncLookupRequest(); // AsyncLookupRequest | Asynchronous bulk phone number lookup request.
@@ -67,7 +71,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -108,6 +112,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
PhoneNumberLookupApi apiInstance = new PhoneNumberLookupApi(defaultClient);
String accountId = "9900000"; // String |
SyncLookupRequest syncLookupRequest = new SyncLookupRequest(); // SyncLookupRequest | Synchronous phone number lookup request.
@@ -138,7 +146,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -179,6 +187,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
PhoneNumberLookupApi apiInstance = new PhoneNumberLookupApi(defaultClient);
String accountId = "9900000"; // String |
UUID requestId = UUID.fromString("004223a0-8b17-41b1-bf81-20732adf5590"); // UUID |
@@ -209,7 +221,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/RecordingsApi.md b/docs/RecordingsApi.md
index 42131b80..a4d479a5 100644
--- a/docs/RecordingsApi.md
+++ b/docs/RecordingsApi.md
@@ -44,6 +44,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -75,7 +79,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -123,6 +127,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -154,7 +162,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -202,6 +210,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -233,7 +245,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -281,6 +293,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -313,7 +329,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -361,6 +377,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -393,7 +413,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -441,6 +461,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -473,7 +497,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -521,6 +545,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String to = "%2b19195551234"; // String | Filter results by the `to` field.
@@ -557,7 +585,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -605,6 +633,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -635,7 +667,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -683,6 +715,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -716,7 +752,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -764,6 +800,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
RecordingsApi apiInstance = new RecordingsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -795,7 +835,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/StatisticsApi.md b/docs/StatisticsApi.md
index be38dbc8..269b3c12 100644
--- a/docs/StatisticsApi.md
+++ b/docs/StatisticsApi.md
@@ -35,6 +35,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
StatisticsApi apiInstance = new StatisticsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
try {
@@ -63,7 +67,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/TollFreeVerificationApi.md b/docs/TollFreeVerificationApi.md
index 5f187578..b0e000f7 100644
--- a/docs/TollFreeVerificationApi.md
+++ b/docs/TollFreeVerificationApi.md
@@ -43,6 +43,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
WebhookSubscriptionRequestSchema webhookSubscriptionRequestSchema = new WebhookSubscriptionRequestSchema(); // WebhookSubscriptionRequestSchema | Information about a webhook that Bandwidth should send upon the completion of event customer is trying to subscribe to.
@@ -73,7 +77,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -121,6 +125,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String phoneNumber = "+18885555555"; // String | Valid Toll-Free telephone number in E.164 format.
@@ -150,7 +158,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -198,6 +206,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String id = "7bt57JcsVYJrN9K1OcV1Nu"; // String | Webhook subscription ID
@@ -227,7 +239,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -275,6 +287,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String phoneNumber = "+18885555555"; // String | Valid Toll-Free telephone number in E.164 format.
@@ -305,7 +321,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -353,6 +369,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
try {
List result = apiInstance.listTollFreeUseCases();
@@ -377,7 +397,7 @@ This endpoint does not need any parameter.
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -425,6 +445,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
try {
@@ -453,7 +477,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -500,6 +524,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
VerificationRequest verificationRequest = new VerificationRequest(); // VerificationRequest | Request for verification of a toll-free phone number.
@@ -529,7 +557,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -576,6 +604,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String phoneNumber = "+18885555555"; // String | Valid Toll-Free telephone number in E.164 format.
@@ -607,7 +639,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -654,6 +686,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TollFreeVerificationApi apiInstance = new TollFreeVerificationApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String id = "7bt57JcsVYJrN9K1OcV1Nu"; // String | Webhook subscription ID
@@ -686,7 +722,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/docs/TranscriptionsApi.md b/docs/TranscriptionsApi.md
index ec633266..35f434ef 100644
--- a/docs/TranscriptionsApi.md
+++ b/docs/TranscriptionsApi.md
@@ -37,6 +37,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -68,7 +72,7 @@ null (empty response body)
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -116,6 +120,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -148,7 +156,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
@@ -196,6 +204,10 @@ public class Example {
Basic.setUsername("YOUR USERNAME");
Basic.setPassword("YOUR PASSWORD");
+ // Configure OAuth2 access token for authorization: OAuth2
+ OAuth OAuth2 = (OAuth) defaultClient.getAuthentication("OAuth2");
+ OAuth2.setAccessToken("YOUR ACCESS TOKEN");
+
TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
String accountId = "9900000"; // String | Your Bandwidth Account ID.
String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
@@ -226,7 +238,7 @@ public class Example {
### Authorization
-[Basic](../README.md#Basic)
+[Basic](../README.md#Basic), [OAuth2](../README.md#OAuth2)
### HTTP request headers
diff --git a/pom.xml b/pom.xml
index 1f42da35..7f70c977 100644
--- a/pom.xml
+++ b/pom.xml
@@ -361,6 +361,11 @@
gson-fire
${gson-fire-version}
+
+ org.apache.oltu.oauth2
+ org.apache.oltu.oauth2.client
+ 1.0.2
+
org.apache.commons
commons-lang3
@@ -387,6 +392,11 @@
jakarta.ws.rs-api
${jakarta.ws.rs-api-version}
+
+ org.json
+ json
+ 20250517
+
org.junit.jupiter
diff --git a/sdfg b/sdfg
new file mode 100644
index 00000000..e69de29b
diff --git a/src/main/java/com/bandwidth/sdk/ApiClient.java b/src/main/java/com/bandwidth/sdk/ApiClient.java
index 63401aa2..f40a69a2 100644
--- a/src/main/java/com/bandwidth/sdk/ApiClient.java
+++ b/src/main/java/com/bandwidth/sdk/ApiClient.java
@@ -21,6 +21,8 @@
import okio.Buffer;
import okio.BufferedSink;
import okio.Okio;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest.TokenRequestBuilder;
+import org.apache.oltu.oauth2.common.message.types.GrantType;
import javax.net.ssl.*;
import java.io.File;
@@ -55,6 +57,9 @@
import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.auth.HttpBearerAuth;
import com.bandwidth.sdk.auth.ApiKeyAuth;
+import com.bandwidth.sdk.auth.OAuth;
+import com.bandwidth.sdk.auth.RetryingOAuth;
+import com.bandwidth.sdk.auth.OAuthFlow;
/**
* ApiClient class.
@@ -101,6 +106,7 @@ public ApiClient() {
// Setup authentications (key: authentication name, value: authentication).
authentications.put("Basic", new HttpBasicAuth());
+ authentications.put("OAuth2", new OAuth());
// Prevent the authentications from being modified.
authentications = Collections.unmodifiableMap(authentications);
}
@@ -117,6 +123,74 @@ public ApiClient(OkHttpClient client) {
// Setup authentications (key: authentication name, value: authentication).
authentications.put("Basic", new HttpBasicAuth());
+ authentications.put("OAuth2", new OAuth());
+ // Prevent the authentications from being modified.
+ authentications = Collections.unmodifiableMap(authentications);
+ }
+
+ /**
+ * Constructor for ApiClient to support access token retry on 401/403 configured with client ID
+ *
+ * @param clientId client ID
+ */
+ public ApiClient(String clientId) {
+ this(clientId, null, null);
+ }
+
+ /**
+ * Constructor for ApiClient to support access token retry on 401/403 configured with client ID and additional parameters
+ *
+ * @param clientId client ID
+ * @param parameters a {@link java.util.Map} of parameters
+ */
+ public ApiClient(String clientId, Map parameters) {
+ this(clientId, null, parameters);
+ }
+
+ /**
+ * Constructor for ApiClient to support access token retry on 401/403 configured with client ID, secret, and additional parameters
+ *
+ * @param clientId client ID
+ * @param clientSecret client secret
+ * @param parameters a {@link java.util.Map} of parameters
+ */
+ public ApiClient(String clientId, String clientSecret, Map parameters) {
+ this(null, clientId, clientSecret, parameters);
+ }
+
+ /**
+ * Constructor for ApiClient to support access token retry on 401/403 configured with base path, client ID, secret, and additional parameters
+ *
+ * @param basePath base path
+ * @param clientId client ID
+ * @param clientSecret client secret
+ * @param parameters a {@link java.util.Map} of parameters
+ */
+ public ApiClient(String basePath, String clientId, String clientSecret, Map parameters) {
+ init();
+ if (basePath != null) {
+ this.basePath = basePath;
+ }
+
+ String tokenUrl = "https://api.bandwidth.com/api/v1/oauth2/token";
+ if (!"".equals(tokenUrl) && !URI.create(tokenUrl).isAbsolute()) {
+ URI uri = URI.create(getBasePath());
+ tokenUrl = uri.getScheme() + ":" +
+ (uri.getAuthority() != null ? "//" + uri.getAuthority() : "") +
+ tokenUrl;
+ if (!URI.create(tokenUrl).isAbsolute()) {
+ throw new IllegalArgumentException("OAuth2 token URL must be an absolute URL");
+ }
+ }
+ RetryingOAuth retryingOAuth = new RetryingOAuth(tokenUrl, clientId, OAuthFlow.APPLICATION, clientSecret, parameters);
+ authentications.put(
+ "OAuth2",
+ retryingOAuth
+ );
+ initHttpClient(Collections.singletonList(retryingOAuth));
+ // Setup authentications (key: authentication name, value: authentication).
+ authentications.put("Basic", new HttpBasicAuth());
+
// Prevent the authentications from being modified.
authentications = Collections.unmodifiableMap(authentications);
}
@@ -452,6 +526,12 @@ public void setApiKeyPrefix(String apiKeyPrefix) {
* @param accessToken Access token
*/
public void setAccessToken(String accessToken) {
+ for (Authentication auth : authentications.values()) {
+ if (auth instanceof OAuth) {
+ ((OAuth) auth).setAccessToken(accessToken);
+ return;
+ }
+ }
throw new RuntimeException("No OAuth2 authentication configured!");
}
@@ -636,6 +716,20 @@ public ApiClient setWriteTimeout(int writeTimeout) {
return this;
}
+ /**
+ * Helper method to configure the token endpoint of the first oauth found in the apiAuthorizations (there should be only one)
+ *
+ * @return Token request builder
+ */
+ public TokenRequestBuilder getTokenEndPoint() {
+ for (Authentication apiAuth : authentications.values()) {
+ if (apiAuth instanceof RetryingOAuth) {
+ RetryingOAuth retryingOAuth = (RetryingOAuth) apiAuth;
+ return retryingOAuth.getTokenRequestBuilder();
+ }
+ }
+ return null;
+ }
/**
* Format the given parameter object into string.
diff --git a/src/main/java/com/bandwidth/sdk/api/CallsApi.java b/src/main/java/com/bandwidth/sdk/api/CallsApi.java
index fbf70f46..52de6ace 100644
--- a/src/main/java/com/bandwidth/sdk/api/CallsApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/CallsApi.java
@@ -140,7 +140,7 @@ public okhttp3.Call createCallCall(@javax.annotation.Nonnull String accountId, @
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -309,7 +309,7 @@ public okhttp3.Call getCallStateCall(@javax.annotation.Nonnull String accountId,
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -511,7 +511,7 @@ public okhttp3.Call listCallsCall(@javax.annotation.Nonnull String accountId, @j
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -696,7 +696,7 @@ public okhttp3.Call updateCallCall(@javax.annotation.Nonnull String accountId, @
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -875,7 +875,7 @@ public okhttp3.Call updateCallBxmlCall(@javax.annotation.Nonnull String accountI
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/ConferencesApi.java b/src/main/java/com/bandwidth/sdk/api/ConferencesApi.java
index 02951333..23ca9f91 100644
--- a/src/main/java/com/bandwidth/sdk/api/ConferencesApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/ConferencesApi.java
@@ -146,7 +146,7 @@ public okhttp3.Call downloadConferenceRecordingCall(@javax.annotation.Nonnull St
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -323,7 +323,7 @@ public okhttp3.Call getConferenceCall(@javax.annotation.Nonnull String accountId
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -494,7 +494,7 @@ public okhttp3.Call getConferenceMemberCall(@javax.annotation.Nonnull String acc
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -673,7 +673,7 @@ public okhttp3.Call getConferenceRecordingCall(@javax.annotation.Nonnull String
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -850,7 +850,7 @@ public okhttp3.Call listConferenceRecordingsCall(@javax.annotation.Nonnull Strin
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1042,7 +1042,7 @@ public okhttp3.Call listConferencesCall(@javax.annotation.Nonnull String account
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1220,7 +1220,7 @@ public okhttp3.Call updateConferenceCall(@javax.annotation.Nonnull String accoun
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1395,7 +1395,7 @@ public okhttp3.Call updateConferenceBxmlCall(@javax.annotation.Nonnull String ac
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1572,7 +1572,7 @@ public okhttp3.Call updateConferenceMemberCall(@javax.annotation.Nonnull String
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/MediaApi.java b/src/main/java/com/bandwidth/sdk/api/MediaApi.java
index d0e2cf9d..755d07e0 100644
--- a/src/main/java/com/bandwidth/sdk/api/MediaApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/MediaApi.java
@@ -138,7 +138,7 @@ public okhttp3.Call deleteMediaCall(@javax.annotation.Nonnull String accountId,
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -304,7 +304,7 @@ public okhttp3.Call getMediaCall(@javax.annotation.Nonnull String accountId, @ja
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -477,7 +477,7 @@ public okhttp3.Call listMediaCall(@javax.annotation.Nonnull String accountId, @j
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -702,7 +702,7 @@ public okhttp3.Call uploadMediaCall(@javax.annotation.Nonnull String accountId,
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/MessagesApi.java b/src/main/java/com/bandwidth/sdk/api/MessagesApi.java
index 3f438b59..12a1001f 100644
--- a/src/main/java/com/bandwidth/sdk/api/MessagesApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/MessagesApi.java
@@ -145,7 +145,7 @@ public okhttp3.Call createMessageCall(@javax.annotation.Nonnull String accountId
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -449,7 +449,7 @@ public okhttp3.Call listMessagesCall(@javax.annotation.Nonnull String accountId,
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/MfaApi.java b/src/main/java/com/bandwidth/sdk/api/MfaApi.java
index 453d09d4..d5920bc8 100644
--- a/src/main/java/com/bandwidth/sdk/api/MfaApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/MfaApi.java
@@ -139,7 +139,7 @@ public okhttp3.Call generateMessagingCodeCall(@javax.annotation.Nonnull String a
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -292,7 +292,7 @@ public okhttp3.Call generateVoiceCodeCall(@javax.annotation.Nonnull String accou
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -446,7 +446,7 @@ public okhttp3.Call verifyCodeCall(@javax.annotation.Nonnull String accountId, @
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/MultiChannelApi.java b/src/main/java/com/bandwidth/sdk/api/MultiChannelApi.java
index 7ac63f0f..19487ce3 100644
--- a/src/main/java/com/bandwidth/sdk/api/MultiChannelApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/MultiChannelApi.java
@@ -139,7 +139,7 @@ public okhttp3.Call createMultiChannelMessageCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/PhoneNumberLookupApi.java b/src/main/java/com/bandwidth/sdk/api/PhoneNumberLookupApi.java
index c018f821..163ec2dc 100644
--- a/src/main/java/com/bandwidth/sdk/api/PhoneNumberLookupApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/PhoneNumberLookupApi.java
@@ -135,7 +135,7 @@ public okhttp3.Call createAsyncBulkLookupCall(@javax.annotation.Nonnull String a
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -276,7 +276,7 @@ public okhttp3.Call createSyncLookupCall(@javax.annotation.Nonnull String accoun
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -417,7 +417,7 @@ public okhttp3.Call getAsyncBulkLookupCall(@javax.annotation.Nonnull String acco
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/RecordingsApi.java b/src/main/java/com/bandwidth/sdk/api/RecordingsApi.java
index 894bc284..6c91a4d8 100644
--- a/src/main/java/com/bandwidth/sdk/api/RecordingsApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/RecordingsApi.java
@@ -143,7 +143,7 @@ public okhttp3.Call deleteRecordingCall(@javax.annotation.Nonnull String account
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -318,7 +318,7 @@ public okhttp3.Call deleteRecordingMediaCall(@javax.annotation.Nonnull String ac
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -493,7 +493,7 @@ public okhttp3.Call deleteRecordingTranscriptionCall(@javax.annotation.Nonnull S
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -670,7 +670,7 @@ public okhttp3.Call downloadCallRecordingCall(@javax.annotation.Nonnull String a
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -849,7 +849,7 @@ public okhttp3.Call getCallRecordingCall(@javax.annotation.Nonnull String accoun
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1028,7 +1028,7 @@ public okhttp3.Call getRecordingTranscriptionCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1223,7 +1223,7 @@ public okhttp3.Call listAccountCallRecordingsCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1396,7 +1396,7 @@ public okhttp3.Call listCallRecordingsCall(@javax.annotation.Nonnull String acco
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1569,7 +1569,7 @@ public okhttp3.Call transcribeCallRecordingCall(@javax.annotation.Nonnull String
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1752,7 +1752,7 @@ public okhttp3.Call updateCallRecordingStateCall(@javax.annotation.Nonnull Strin
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/StatisticsApi.java b/src/main/java/com/bandwidth/sdk/api/StatisticsApi.java
index f03cdf75..3e14cbc7 100644
--- a/src/main/java/com/bandwidth/sdk/api/StatisticsApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/StatisticsApi.java
@@ -135,7 +135,7 @@ public okhttp3.Call getStatisticsCall(@javax.annotation.Nonnull String accountId
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/TollFreeVerificationApi.java b/src/main/java/com/bandwidth/sdk/api/TollFreeVerificationApi.java
index 5241ddc4..df41729d 100644
--- a/src/main/java/com/bandwidth/sdk/api/TollFreeVerificationApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/TollFreeVerificationApi.java
@@ -142,7 +142,7 @@ public okhttp3.Call createWebhookSubscriptionCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -311,7 +311,7 @@ public okhttp3.Call deleteVerificationRequestCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -476,7 +476,7 @@ public okhttp3.Call deleteWebhookSubscriptionCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -641,7 +641,7 @@ public okhttp3.Call getTollFreeVerificationStatusCall(@javax.annotation.Nonnull
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -806,7 +806,7 @@ public okhttp3.Call listTollFreeUseCasesCall(final ApiCallback _callback) throws
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -956,7 +956,7 @@ public okhttp3.Call listWebhookSubscriptionsCall(@javax.annotation.Nonnull Strin
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1113,7 +1113,7 @@ public okhttp3.Call requestTollFreeVerificationCall(@javax.annotation.Nonnull St
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1276,7 +1276,7 @@ public okhttp3.Call updateTollFreeVerificationRequestCall(@javax.annotation.Nonn
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -1448,7 +1448,7 @@ public okhttp3.Call updateWebhookSubscriptionCall(@javax.annotation.Nonnull Stri
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/api/TranscriptionsApi.java b/src/main/java/com/bandwidth/sdk/api/TranscriptionsApi.java
index acb29d91..0c0e42d3 100644
--- a/src/main/java/com/bandwidth/sdk/api/TranscriptionsApi.java
+++ b/src/main/java/com/bandwidth/sdk/api/TranscriptionsApi.java
@@ -140,7 +140,7 @@ public okhttp3.Call deleteRealTimeTranscriptionCall(@javax.annotation.Nonnull St
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -315,7 +315,7 @@ public okhttp3.Call getRealTimeTranscriptionCall(@javax.annotation.Nonnull Strin
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
@@ -492,7 +492,7 @@ public okhttp3.Call listRealTimeTranscriptionsCall(@javax.annotation.Nonnull Str
localVarHeaderParams.put("Content-Type", localVarContentType);
}
- String[] localVarAuthNames = new String[] { "Basic" };
+ String[] localVarAuthNames = new String[] { "Basic", "OAuth2" };
return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
}
diff --git a/src/main/java/com/bandwidth/sdk/auth/OAuth.java b/src/main/java/com/bandwidth/sdk/auth/OAuth.java
new file mode 100644
index 00000000..4b75be15
--- /dev/null
+++ b/src/main/java/com/bandwidth/sdk/auth/OAuth.java
@@ -0,0 +1,42 @@
+/*
+ * Bandwidth
+ * Bandwidth's Communication APIs
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: letstalk@bandwidth.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.bandwidth.sdk.auth;
+
+import com.bandwidth.sdk.Pair;
+import com.bandwidth.sdk.ApiException;
+
+import java.net.URI;
+import java.util.Map;
+import java.util.List;
+
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.17.0")
+public class OAuth implements Authentication {
+ private String accessToken;
+
+ public String getAccessToken() {
+ return accessToken;
+ }
+
+ public void setAccessToken(String accessToken) {
+ this.accessToken = accessToken;
+ }
+
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams,
+ String payload, String method, URI uri) throws ApiException {
+ if (accessToken != null) {
+ headerParams.put("Authorization", "Bearer " + accessToken);
+ }
+ }
+}
diff --git a/src/main/java/com/bandwidth/sdk/auth/OAuthFlow.java b/src/main/java/com/bandwidth/sdk/auth/OAuthFlow.java
new file mode 100644
index 00000000..56a889ba
--- /dev/null
+++ b/src/main/java/com/bandwidth/sdk/auth/OAuthFlow.java
@@ -0,0 +1,25 @@
+/*
+ * Bandwidth
+ * Bandwidth's Communication APIs
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: letstalk@bandwidth.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.bandwidth.sdk.auth;
+
+/**
+ * OAuth flows that are supported by this client
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.17.0")
+public enum OAuthFlow {
+ ACCESS_CODE, //called authorizationCode in OpenAPI 3.0
+ IMPLICIT,
+ PASSWORD,
+ APPLICATION //called clientCredentials in OpenAPI 3.0
+}
diff --git a/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java b/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java
new file mode 100644
index 00000000..ae19b927
--- /dev/null
+++ b/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java
@@ -0,0 +1,84 @@
+/*
+ * Bandwidth
+ * Bandwidth's Communication APIs
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: letstalk@bandwidth.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.bandwidth.sdk.auth;
+
+import okhttp3.OkHttpClient;
+import okhttp3.MediaType;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+import org.apache.oltu.oauth2.client.HttpClient;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
+import org.apache.oltu.oauth2.client.response.OAuthClientResponse;
+import org.apache.oltu.oauth2.client.response.OAuthClientResponseFactory;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class OAuthOkHttpClient implements HttpClient {
+ private OkHttpClient client;
+
+ public OAuthOkHttpClient() {
+ this.client = new OkHttpClient();
+ }
+
+ public OAuthOkHttpClient(OkHttpClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public T execute(OAuthClientRequest request, Map headers,
+ String requestMethod, Class responseClass)
+ throws OAuthSystemException, OAuthProblemException {
+
+ MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
+ Request.Builder requestBuilder = new Request.Builder().url(request.getLocationUri());
+
+ headers = request.getHeaders();
+
+ if(headers != null) {
+ for (Entry entry : headers.entrySet()) {
+ if (entry.getKey().equalsIgnoreCase("Content-Type")) {
+ mediaType = MediaType.parse(entry.getValue());
+ } else {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ RequestBody body = request.getBody() != null ? RequestBody.create(request.getBody(), mediaType) : null;
+ requestBuilder.method(requestMethod, body);
+
+ try {
+ Response response = client.newCall(requestBuilder.build()).execute();
+ return OAuthClientResponseFactory.createCustomResponse(
+ response.body().string(),
+ response.body().contentType().toString(),
+ response.code(),
+ response.headers().toMultimap(),
+ responseClass);
+ } catch (IOException e) {
+ throw new OAuthSystemException(e);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ // Nothing to do here
+ }
+}
diff --git a/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java b/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java
new file mode 100644
index 00000000..f943cda7
--- /dev/null
+++ b/src/main/java/com/bandwidth/sdk/auth/RetryingOAuth.java
@@ -0,0 +1,229 @@
+/*
+ * Bandwidth
+ * Bandwidth's Communication APIs
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: letstalk@bandwidth.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.bandwidth.sdk.auth;
+
+import com.bandwidth.sdk.ApiException;
+import com.bandwidth.sdk.Pair;
+
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+import org.apache.oltu.oauth2.client.OAuthClient;
+import org.apache.oltu.oauth2.client.request.OAuthBearerClientRequest;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
+import org.apache.oltu.oauth2.client.request.OAuthClientRequest.TokenRequestBuilder;
+import org.apache.oltu.oauth2.client.response.OAuthJSONAccessTokenResponse;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+import org.apache.oltu.oauth2.common.message.types.GrantType;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.util.Map;
+import java.util.List;
+import java.util.Base64;
+
+public class RetryingOAuth extends OAuth implements Interceptor {
+ private OAuthClient oAuthClient;
+
+ private TokenRequestBuilder tokenRequestBuilder;
+
+ private String clientId;
+ private String clientSecret;
+
+ /**
+ * @param client An OkHttp client
+ * @param tokenRequestBuilder A token request builder
+ */
+ public RetryingOAuth(OkHttpClient client, TokenRequestBuilder tokenRequestBuilder) {
+ this.oAuthClient = new OAuthClient(new OAuthOkHttpClient(client));
+ this.tokenRequestBuilder = tokenRequestBuilder;
+ }
+
+ /**
+ * @param tokenRequestBuilder A token request builder
+ */
+ public RetryingOAuth(TokenRequestBuilder tokenRequestBuilder) {
+ this(new OkHttpClient(), tokenRequestBuilder);
+ }
+
+ /**
+ * @param tokenUrl The token URL to be used for this OAuth2 flow.
+ * Applicable to the following OAuth2 flows: "password", "clientCredentials" and "authorizationCode".
+ * The value must be an absolute URL.
+ * @param clientId The OAuth2 client ID for the "clientCredentials" flow.
+ * @param flow OAuth flow.
+ * @param clientSecret The OAuth2 client secret for the "clientCredentials" flow.
+ * @param parameters A map of string.
+ */
+ public RetryingOAuth(
+ String tokenUrl,
+ String clientId,
+ OAuthFlow flow,
+ String clientSecret,
+ Map parameters
+ ) {
+ this(OAuthClientRequest.tokenLocation(tokenUrl));
+ this.clientId = clientId;
+ this.clientSecret = clientSecret;
+ setFlow(flow);
+ if (parameters != null) {
+ for (Map.Entry entry : parameters.entrySet()) {
+ tokenRequestBuilder.setParameter(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+
+ /**
+ * Set the OAuth flow
+ *
+ * @param flow The OAuth flow.
+ */
+ public void setFlow(OAuthFlow flow) {
+ switch(flow) {
+ case ACCESS_CODE:
+ tokenRequestBuilder.setGrantType(GrantType.AUTHORIZATION_CODE);
+ break;
+ case IMPLICIT:
+ tokenRequestBuilder.setGrantType(GrantType.IMPLICIT);
+ break;
+ case PASSWORD:
+ tokenRequestBuilder.setGrantType(GrantType.PASSWORD);
+ break;
+ case APPLICATION:
+ tokenRequestBuilder.setGrantType(GrantType.CLIENT_CREDENTIALS);
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ return retryingIntercept(chain, true);
+ }
+
+ private Response retryingIntercept(Chain chain, boolean updateTokenAndRetryOnAuthorizationFailure) throws IOException {
+ Request request = chain.request();
+
+ // If the request already has an authorization (e.g. Basic auth), proceed with the request as is
+ if (request.header("Authorization") != null) {
+ return chain.proceed(request);
+ }
+
+ // Get the token if it has not yet been acquired
+ if (getAccessToken() == null) {
+ updateAccessToken(null);
+ }
+
+ OAuthClientRequest oAuthRequest;
+ if (getAccessToken() != null) {
+ // Build the request
+ Request.Builder requestBuilder = request.newBuilder();
+
+ String requestAccessToken = getAccessToken();
+ try {
+ oAuthRequest =
+ new OAuthBearerClientRequest(request.url().toString()).
+ setAccessToken(requestAccessToken).
+ buildHeaderMessage();
+ } catch (OAuthSystemException e) {
+ throw new IOException(e);
+ }
+
+ Map headers = oAuthRequest.getHeaders();
+ for (Map.Entry entry : headers.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ requestBuilder.url(oAuthRequest.getLocationUri());
+
+ // Execute the request
+ Response response = chain.proceed(requestBuilder.build());
+
+ // 401/403 response codes most likely indicate an expired access token, unless it happens two times in a row
+ if (
+ response != null &&
+ ( response.code() == HttpURLConnection.HTTP_UNAUTHORIZED ||
+ response.code() == HttpURLConnection.HTTP_FORBIDDEN ) &&
+ updateTokenAndRetryOnAuthorizationFailure
+ ) {
+ try {
+ if (updateAccessToken(requestAccessToken)) {
+ response.body().close();
+ return retryingIntercept(chain, false);
+ }
+ } catch (Exception e) {
+ response.body().close();
+ throw e;
+ }
+ }
+ return response;
+ }
+ else {
+ return chain.proceed(chain.request());
+ }
+ }
+
+ /**
+ * Returns true if the access token has been updated
+ *
+ * @param requestAccessToken the request access token
+ * @return True if the update is successful
+ * @throws java.io.IOException If fail to update the access token
+ */
+ public synchronized boolean updateAccessToken(String requestAccessToken) throws IOException {
+ if (getAccessToken() == null || getAccessToken().equals(requestAccessToken)) {
+ try {
+ OAuthClientRequest req = tokenRequestBuilder.buildBodyMessage();
+ String credentials = Base64.getEncoder().encodeToString((clientId + ":" + clientSecret).getBytes());
+ req.setHeader("Authorization", "Basic " + credentials);
+ OAuthJSONAccessTokenResponse accessTokenResponse = oAuthClient.accessToken(req);
+ if (accessTokenResponse != null && accessTokenResponse.getAccessToken() != null) {
+ setAccessToken(accessTokenResponse.getAccessToken());
+ }
+ } catch (OAuthSystemException | OAuthProblemException e) {
+ throw new IOException(e);
+ }
+ }
+ return getAccessToken() == null || !getAccessToken().equals(requestAccessToken);
+ }
+
+ /**
+ * Gets the token request builder
+ *
+ * @return A token request builder
+ */
+ public TokenRequestBuilder getTokenRequestBuilder() {
+ return tokenRequestBuilder;
+ }
+
+ /**
+ * Sets the token request builder
+ *
+ * @param tokenRequestBuilder Token request builder
+ */
+ public void setTokenRequestBuilder(TokenRequestBuilder tokenRequestBuilder) {
+ this.tokenRequestBuilder = tokenRequestBuilder;
+ }
+
+ // Applying authorization to parameters is performed in the retryingIntercept method
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams,
+ String payload, String method, URI uri) throws ApiException {
+ // No implementation necessary
+ }
+}
diff --git a/src/test/java/com/bandwidth/sdk/smoke/CallsApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/CallsApiTest.java
index b1223dbf..04c9ddda 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/CallsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/CallsApiTest.java
@@ -4,8 +4,6 @@
import com.bandwidth.sdk.ApiResponse;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiClient;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.CallbackMethodEnum;
import com.bandwidth.sdk.model.CreateCall;
import com.bandwidth.sdk.model.CreateCallResponse;
@@ -40,12 +38,12 @@
import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*;
import static com.bandwidth.sdk.utils.CallCleanup.Cleanup;
+@SuppressWarnings("null")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CallsApiTest {
- public ApiClient defaultClient = Configuration.getDefaultApiClient();
- public HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- public final CallsApi api = new CallsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ public final CallsApi api = new CallsApi(oauthClient);
private static List callIdList = new ArrayList();
private static MachineDetectionConfiguration machineDetection = new MachineDetectionConfiguration();
@@ -132,9 +130,6 @@ public void tearDownAfterClass() throws Exception {
@Test
@Order(1)
public void createCall() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiResponse response = api.createCallWithHttpInfo(BW_ACCOUNT_ID, createCallBody);
callIdList.add(response.getData().getCallId());
@@ -148,9 +143,6 @@ public void createCall() throws ApiException {
@Test
public void createCallBadRequest() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
CreateCall badCallRequest = new CreateCall();
createCallBody.setTo("invalid_number");
createCallBody.setFrom(BW_NUMBER);
@@ -163,45 +155,8 @@ public void createCallBadRequest() throws ApiException {
assertThat(exception.getCode(), is(400));
}
- @Test
- public void createCallUnauthorized() throws ApiException {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- CreateCall badCallRequest = new CreateCall();
- createCallBody.setTo("invalid_number");
- createCallBody.setFrom(BW_NUMBER);
- createCallBody.setApplicationId(BW_VOICE_APPLICATION_ID);
- createCallBody.setAnswerUrl(answerUrl);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.createCallWithHttpInfo(BW_ACCOUNT_ID, badCallRequest));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void createCallForbidden() throws ApiException {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- CreateCall badCallRequest = new CreateCall();
- createCallBody.setTo("invalid_number");
- createCallBody.setFrom(BW_NUMBER);
- createCallBody.setApplicationId(BW_VOICE_APPLICATION_ID);
- createCallBody.setAnswerUrl(answerUrl);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.createCallWithHttpInfo(BW_ACCOUNT_ID, badCallRequest));
-
- assertThat(exception.getCode(), is(403));
- }
-
@Test
public void getCalls() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiResponse> response = api.listCallsWithHttpInfo(BW_ACCOUNT_ID, USER_NUMBER, BW_NUMBER, null,
null, null, null, null);
@@ -220,9 +175,6 @@ public void getCalls() throws ApiException {
@Test
@Order(2)
public void getCallState() throws ApiException, InterruptedException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
TimeUnit.SECONDS.sleep(40);
ApiResponse response = api.getCallStateWithHttpInfo(BW_ACCOUNT_ID, callIdList.get(0));
@@ -232,33 +184,8 @@ public void getCallState() throws ApiException, InterruptedException {
assertThat(response.getData(), hasProperty("direction", is(CallDirectionEnum.OUTBOUND)));
}
- @Test
- public void getCallStateUnauthorized() throws ApiException {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.getCallStateWithHttpInfo(BW_ACCOUNT_ID, "not a call id"));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void getCallStateForbidden() throws ApiException {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.getCallStateWithHttpInfo(BW_ACCOUNT_ID, "not a call id"));
-
- assertThat(exception.getCode(), is(403));
- }
-
@Test
public void getCallStateNotFound() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiException exception = Assertions.assertThrows(ApiException.class,
() -> api.getCallStateWithHttpInfo(BW_ACCOUNT_ID, "not a call id"));
@@ -268,9 +195,6 @@ public void getCallStateNotFound() throws ApiException {
@Test
@Order(3)
public void updateCall() throws ApiException, InterruptedException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
// Create call
TimeUnit.SECONDS.sleep(TEST_SLEEP);
ApiResponse createCallResponse = api.createCallWithHttpInfo(BW_ACCOUNT_ID,
@@ -296,9 +220,6 @@ public void updateCall() throws ApiException, InterruptedException {
@Test
public void updateCallBadRequest() throws ApiException, InterruptedException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
UpdateCall badRequest = new UpdateCall();
badRequest.state(null);
@@ -314,36 +235,8 @@ public void updateCallBadRequest() throws ApiException, InterruptedException {
assertThat(exception.getCode(), is(400));
}
- @Test
- public void updateCallUnauthorized() throws ApiException {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.updateCallWithHttpInfo(BW_ACCOUNT_ID, testCallId,
- new UpdateCall().state(CallStateEnum.COMPLETED)));
-
- assertThat(exception.getCode(), is(401));
-
- }
-
- @Test
- public void updateCallForbidden() throws ApiException {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.updateCallWithHttpInfo(BW_ACCOUNT_ID, testCallId,
- new UpdateCall().state(CallStateEnum.COMPLETED)));
-
- assertThat(exception.getCode(), is(403));
- }
-
@Test
public void updateCallNotFound() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiException exception = Assertions.assertThrows(ApiException.class,
() -> api.updateCallWithHttpInfo(BW_ACCOUNT_ID, testCallId,
new UpdateCall().state(CallStateEnum.COMPLETED)));
@@ -354,9 +247,6 @@ public void updateCallNotFound() throws ApiException {
@Test
@Order(4)
public void updateCallBxml() throws ApiException, InterruptedException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
// Create call
TimeUnit.SECONDS.sleep(TEST_SLEEP);
ApiResponse createCallResponse = api.createCallWithHttpInfo(BW_ACCOUNT_ID,
@@ -379,45 +269,4 @@ public void updateCallBxml() throws ApiException, InterruptedException {
assertThat(completeCallResponse.getStatusCode(), is(200));
}
-
- @Test
- public void updateCallBxmlBadRequest() throws ApiException {
-
- }
-
- @Test
- public void updateCallBxmlUnauthorized() throws ApiException {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.updateCallBxmlWithHttpInfo(BW_ACCOUNT_ID, testCallId,
- testXmlBody));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void updateCallBxmlForbidden() throws ApiException {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.updateCallBxmlWithHttpInfo(BW_ACCOUNT_ID, testCallId,
- testXmlBody));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void updateCallBxmlNotFound() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> api.updateCallBxmlWithHttpInfo(BW_ACCOUNT_ID, testCallId,
- testXmlBody));
-
- assertThat(exception.getCode(), is(404));
- }
}
diff --git a/src/test/java/com/bandwidth/sdk/smoke/ConferencesApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/ConferencesApiTest.java
index fdbbdd62..e9cb6ab3 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/ConferencesApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/ConferencesApiTest.java
@@ -4,8 +4,6 @@
import com.bandwidth.sdk.api.ConferencesApi;
import com.bandwidth.sdk.ApiResponse;
import com.bandwidth.sdk.ApiClient;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.ConferenceRecordingMetadata;
import com.bandwidth.sdk.model.ConferenceStateEnum;
import com.bandwidth.sdk.model.CreateCall;
@@ -48,13 +46,13 @@
import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*;
import static com.bandwidth.sdk.utils.CallCleanup.Cleanup;
+@SuppressWarnings("null")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class ConferencesApiTest {
- public ApiClient defaultClient = Configuration.getDefaultApiClient();
- public HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- public final CallsApi callsApi = new CallsApi(defaultClient);
- public final ConferencesApi conferencesApi = new ConferencesApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ public final CallsApi callsApi = new CallsApi(oauthClient);
+ public final ConferencesApi conferencesApi = new ConferencesApi(oauthClient);
private static final OkHttpClient mantecaClient = new OkHttpClient();
public static final MediaType jsonMediaType = MediaType.get("application/json; charset=utf-8");
@@ -118,9 +116,6 @@ public Boolean getTestRecordedStatus(String mantecaTestId) throws Exception {
@Test
@Order(1)
public void testCreateAndFetchConference() throws Exception {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
String mantecaJsonBody = constructMantecaJsonBody(OPERATING_SYSTEM, JAVA_VERSION);
RequestBody mantecaRequestBody = RequestBody.create(mantecaJsonBody, jsonMediaType);
@@ -171,9 +166,6 @@ public void testCreateAndFetchConference() throws Exception {
@Test
@Order(2)
public void testConferenceAndMembers() throws Exception {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiResponse listConferenceMembersResponse = conferencesApi
.getConferenceMemberWithHttpInfo(BW_ACCOUNT_ID, conferenceId, callId);
assertThat(listConferenceMembersResponse.getStatusCode(), is(200));
@@ -210,9 +202,6 @@ public void testConferenceAndMembers() throws Exception {
@Order(3)
@Disabled // issues with PV API, can re-enable after fixed
public void testConferenceRecordings() throws Exception {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
Boolean testRecordingStatus = false;
for (int i = 0; i < MAX_RETRIES; i++) {
TimeUnit.SECONDS.sleep(TEST_SLEEP);
diff --git a/src/test/java/com/bandwidth/sdk/smoke/PhoneNumberLookupApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/PhoneNumberLookupApiTest.java
index 1aa5617a..4c7c1af8 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/PhoneNumberLookupApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/PhoneNumberLookupApiTest.java
@@ -4,8 +4,6 @@
import com.bandwidth.sdk.ApiResponse;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiClient;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.AsyncLookupRequest;
import com.bandwidth.sdk.model.CompletedLookupStatusEnum;
import com.bandwidth.sdk.model.CreateAsyncBulkLookupResponse;
@@ -36,17 +34,12 @@
@SuppressWarnings("null")
public class PhoneNumberLookupApiTest {
-
- ApiClient defaultClient = Configuration.getDefaultApiClient();
- HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private final PhoneNumberLookupApi api = new PhoneNumberLookupApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private final PhoneNumberLookupApi api = new PhoneNumberLookupApi(oauthClient);
private final List phoneNumbers = Arrays.asList(BW_NUMBER, VZW_NUMBER, ATT_NUMBER, T_MOBILE_NUMBER);
@Test
public void createSyncLookupTest() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
SyncLookupRequest lookupRequest = new SyncLookupRequest()
.phoneNumbers(phoneNumbers);
@@ -70,9 +63,6 @@ public void createSyncLookupTest() throws ApiException {
@Test
public void createGetAsyncLookupTest() throws ApiException, InterruptedException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
AsyncLookupRequest lookupRequest = new AsyncLookupRequest()
.phoneNumbers(phoneNumbers);
diff --git a/src/test/java/com/bandwidth/sdk/smoke/RecordingsApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/RecordingsApiTest.java
index b92a82af..a2811b18 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/RecordingsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/RecordingsApiTest.java
@@ -5,8 +5,6 @@
import com.bandwidth.sdk.ApiResponse;
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.CallRecordingMetadata;
import com.bandwidth.sdk.model.CallStateEnum;
import com.bandwidth.sdk.model.CreateCall;
@@ -17,7 +15,6 @@
import com.bandwidth.sdk.model.UpdateCall;
import com.bandwidth.sdk.model.UpdateCallRecording;
import com.bandwidth.sdk.utils.MantecaStatusResponse;
-
import com.google.gson.Gson;
import okhttp3.Call;
@@ -47,13 +44,13 @@
import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*;
import static com.bandwidth.sdk.utils.CallCleanup.Cleanup;
+@SuppressWarnings("null")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class RecordingsApiTest {
- public ApiClient defaultClient = Configuration.getDefaultApiClient();
- public HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- public final CallsApi callsApi = new CallsApi(defaultClient);
- public final RecordingsApi recordingsApi = new RecordingsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ public final CallsApi callsApi = new CallsApi(oauthClient);
+ public final RecordingsApi recordingsApi = new RecordingsApi(oauthClient);
private static final OkHttpClient mantecaClient = new OkHttpClient();
public static final MediaType jsonMediaType = MediaType.get("application/json; charset=utf-8");
@@ -116,9 +113,6 @@ public MantecaStatusResponse getTestStatus(String mantecaTestId) throws Exceptio
@Test
@Order(1)
public void testCallRecordingAndTranscription() throws Exception {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
String mantecaJsonBody = constructMantecaJsonBody();
RequestBody mantecaRequestBody = RequestBody.create(mantecaJsonBody, jsonMediaType);
@@ -236,9 +230,6 @@ public void testCallRecordingAndTranscription() throws Exception {
@Test
public void testGetAccountRecordings() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiResponse> response = recordingsApi
.listAccountCallRecordingsWithHttpInfo(BW_ACCOUNT_ID, null, null, null,
null);
@@ -246,200 +237,11 @@ public void testGetAccountRecordings() throws ApiException {
assertThat(response.getStatusCode(), is(200));
}
- @Test
- public void testGetAccountRecordingsUnauthorized() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.listAccountCallRecordingsWithHttpInfo(BW_ACCOUNT_ID,
- null, null, null, null));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testGetAccountRecordingsForbidden() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.listAccountCallRecordingsWithHttpInfo(BW_ACCOUNT_ID,
- null, null, null, null));
-
- assertThat(exception.getCode(), is(403));
- }
-
@Test
public void testRecordingNotFound() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
ApiException exception = Assertions.assertThrows(ApiException.class,
() -> recordingsApi.getCallRecording(BW_ACCOUNT_ID, "not a call", "not a recording"));
assertThat(exception.getCode(), is(404));
}
-
- @Test
- public void testUnauthorizedGetRecording() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.getCallRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenGetRecording() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.getCallRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedDeleteRecording() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenDeleteRecording() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedDownloadRecording() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.downloadCallRecording(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenDownloadRecording() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.downloadCallRecording(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedDeleteRecordingMedia() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenDeleteRecordingMedia() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecording(BW_ACCOUNT_ID, callId, recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedGetTranscription() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecordingTranscription(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenGetTranscription() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecordingTranscription(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedCreateTranscriptionRequest() {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.transcribeCallRecording(BW_ACCOUNT_ID, callId,
- recordingId, transcribeRecording));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenCreateTranscriptionRequest() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.transcribeCallRecording(BW_ACCOUNT_ID, callId,
- recordingId, transcribeRecording));
-
- assertThat(exception.getCode(), is(403));
- }
-
- @Test
- public void testUnauthorizedDeleteTranscription() throws ApiException {
- Basic.setUsername("bad_username");
- Basic.setPassword("bad_password");
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecordingTranscription(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(401));
- }
-
- @Test
- public void testForbiddenDeleteTranscription() {
- Basic.setUsername(FORBIDDEN_USERNAME);
- Basic.setPassword(FORBIDDEN_PASSWORD);
-
- ApiException exception = Assertions.assertThrows(ApiException.class,
- () -> recordingsApi.deleteRecordingTranscription(BW_ACCOUNT_ID, callId,
- recordingId));
-
- assertThat(exception.getCode(), is(403));
- }
}
diff --git a/src/test/java/com/bandwidth/sdk/smoke/StatisticsApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/StatisticsApiTest.java
index 6c4e82bc..bb914023 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/StatisticsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/StatisticsApiTest.java
@@ -1,11 +1,11 @@
package com.bandwidth.sdk.smoke;
import com.bandwidth.sdk.api.StatisticsApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.AccountStatistics;
+
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -16,11 +16,10 @@
/**
* API tests for StatisticsApi
*/
+@Disabled
public class StatisticsApiTest {
- public ApiClient defaultClient = Configuration.getDefaultApiClient();
- public HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private final StatisticsApi api = new StatisticsApi(defaultClient);
-
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private final StatisticsApi api = new StatisticsApi(oauthClient);
/**
* Get Account Statistics
*
@@ -30,9 +29,6 @@ public class StatisticsApiTest {
*/
@Test
public void getStatisticsTest() throws ApiException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
-
AccountStatistics response = api.getStatistics(BW_ACCOUNT_ID);
assertThat(response, instanceOf(AccountStatistics.class));
diff --git a/src/test/java/com/bandwidth/sdk/smoke/TranscriptionsApiTest.java b/src/test/java/com/bandwidth/sdk/smoke/TranscriptionsApiTest.java
index b65d686d..a8fa74c0 100644
--- a/src/test/java/com/bandwidth/sdk/smoke/TranscriptionsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/smoke/TranscriptionsApiTest.java
@@ -5,8 +5,6 @@
import com.bandwidth.sdk.ApiResponse;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiClient;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.model.CreateCall;
import com.bandwidth.sdk.model.CreateCallResponse;
import com.bandwidth.sdk.model.CallStateEnum;
@@ -39,11 +37,9 @@
*/
public class TranscriptionsApiTest {
-
- ApiClient defaultClient = Configuration.getDefaultApiClient();
- HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private final CallsApi callsApi = new CallsApi(defaultClient);
- private final TranscriptionsApi transcriptionsApi = new TranscriptionsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private final CallsApi callsApi = new CallsApi(oauthClient);
+ private final TranscriptionsApi transcriptionsApi = new TranscriptionsApi(oauthClient);
private static CreateCall createMantecaCallBody = new CreateCall();
private static UpdateCall completeMantecaCallBody = new UpdateCall();
@@ -56,8 +52,6 @@ public class TranscriptionsApiTest {
@Test
@Disabled // issue with PV API, can re-enable when fixed
public void getAndDeleteRealTimeTranscriptionsTest() throws ApiException, InterruptedException, URISyntaxException {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
mantecaAnswerUrl = new URI(MANTECA_BASE_URL + "/bxml/pause");
createMantecaCallBody.setFrom(MANTECA_ACTIVE_NUMBER);
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java
index 393793d1..95665674 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/CallsApiTest.java
@@ -6,9 +6,7 @@
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiResponse;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.api.CallsApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.model.CallDirectionEnum;
import com.bandwidth.sdk.model.CallState;
import com.bandwidth.sdk.model.CallStateEnum;
@@ -32,9 +30,8 @@
@SuppressWarnings("null")
public class CallsApiTest {
- private static ApiClient defaultClient = Configuration.getDefaultApiClient();
- private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private static CallsApi api = new CallsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private static CallsApi api = new CallsApi(oauthClient);
private static String callId = "c-1234";
private static String displayName = "Java SDK";
@@ -47,8 +44,6 @@ public class CallsApiTest {
@BeforeAll
public static void setUp() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
api.setCustomBaseUrl("http://127.0.0.1:4010");
}
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java
index cf3b33d3..94ac58f9 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/ConferencesApiTest.java
@@ -7,9 +7,7 @@
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiResponse;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.api.ConferencesApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.model.CallbackMethodEnum;
import com.bandwidth.sdk.model.Conference;
import com.bandwidth.sdk.model.ConferenceMember;
@@ -33,9 +31,8 @@
@SuppressWarnings("null")
public class ConferencesApiTest {
- private static ApiClient defaultClient = Configuration.getDefaultApiClient();
- private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private static ConferencesApi api = new ConferencesApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private static ConferencesApi api = new ConferencesApi(oauthClient);
private static String callId = "c-1234";
private static String conferenceId = "c-4321";
@@ -43,8 +40,6 @@ public class ConferencesApiTest {
@BeforeAll
public static void setUp() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
api.setCustomBaseUrl("http://127.0.0.1:4010");
}
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java
index fcfc1927..78aef00f 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/MediaApiTest.java
@@ -20,6 +20,7 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+@SuppressWarnings("null")
public class MediaApiTest {
private static ApiClient defaultClient = Configuration.getDefaultApiClient();
private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java
index d78835a6..eda0f048 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/RecordingsApiTest.java
@@ -7,9 +7,7 @@
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiResponse;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.api.RecordingsApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.model.CallDirectionEnum;
import com.bandwidth.sdk.model.CallRecordingMetadata;
import com.bandwidth.sdk.model.FileFormatEnum;
@@ -29,17 +27,14 @@
@SuppressWarnings("null")
public class RecordingsApiTest {
- private static ApiClient defaultClient = Configuration.getDefaultApiClient();
- private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private static RecordingsApi api = new RecordingsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private static RecordingsApi api = new RecordingsApi(oauthClient);
private static String callId = "c-1234";
private static String recordingId = "r-1234";
@BeforeAll
public static void setUp() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
api.setCustomBaseUrl("http://127.0.0.1:4010");
}
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java
index a7056324..754845e7 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/StatisticsApiTest.java
@@ -6,9 +6,7 @@
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiResponse;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.api.StatisticsApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.model.AccountStatistics;
import static com.bandwidth.sdk.utils.TestingEnvironmentVariables.*;
@@ -16,15 +14,13 @@
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
+@SuppressWarnings("null")
public class StatisticsApiTest {
- private static ApiClient defaultClient = Configuration.getDefaultApiClient();
- private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private static StatisticsApi api = new StatisticsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private static StatisticsApi api = new StatisticsApi(oauthClient);
@BeforeAll
public static void setUp() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
api.setCustomBaseUrl("http://127.0.0.1:4010");
}
diff --git a/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java b/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java
index 5d65b67a..511c0458 100644
--- a/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java
+++ b/src/test/java/com/bandwidth/sdk/unit/api/TranscriptionsApiTest.java
@@ -6,9 +6,7 @@
import com.bandwidth.sdk.ApiClient;
import com.bandwidth.sdk.ApiException;
import com.bandwidth.sdk.ApiResponse;
-import com.bandwidth.sdk.Configuration;
import com.bandwidth.sdk.api.TranscriptionsApi;
-import com.bandwidth.sdk.auth.HttpBasicAuth;
import com.bandwidth.sdk.model.CallTranscription;
import com.bandwidth.sdk.model.CallTranscriptionDetectedLanguageEnum;
import com.bandwidth.sdk.model.CallTranscriptionMetadata;
@@ -24,17 +22,14 @@
@SuppressWarnings("null")
public class TranscriptionsApiTest {
- private static ApiClient defaultClient = Configuration.getDefaultApiClient();
- private static HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
- private static TranscriptionsApi api = new TranscriptionsApi(defaultClient);
+ private static ApiClient oauthClient = new ApiClient(BW_CLIENT_ID, BW_CLIENT_SECRET, null);
+ private static TranscriptionsApi api = new TranscriptionsApi(oauthClient);
private static String callId = "c-1234";
private static String transcriptionId = "t-1234";
@BeforeAll
public static void setUp() {
- Basic.setUsername(BW_USERNAME);
- Basic.setPassword(BW_PASSWORD);
api.setCustomBaseUrl("http://127.0.0.1:4010");
}
diff --git a/src/test/java/com/bandwidth/sdk/utils/CallCleanup.java b/src/test/java/com/bandwidth/sdk/utils/CallCleanup.java
index 0e714899..b383121e 100644
--- a/src/test/java/com/bandwidth/sdk/utils/CallCleanup.java
+++ b/src/test/java/com/bandwidth/sdk/utils/CallCleanup.java
@@ -26,8 +26,6 @@ public static final void Cleanup(CallsApiTest testClass, List callIdList
if (!callIdList.isEmpty()) {
try {
- testClass.Basic.setUsername(BW_USERNAME);
- testClass.Basic.setPassword(BW_PASSWORD);
for (int i = 0; i < callIdList.size(); i++) {
String callState = testClass.api.getCallState(BW_ACCOUNT_ID, callIdList.get(i).toString())
.getState();
@@ -54,9 +52,6 @@ public static final void Cleanup(ConferencesApiTest testClass, String callId) th
TimeUnit.SECONDS.sleep(TEST_SLEEP);
try {
- testClass.Basic.setUsername(BW_USERNAME);
- testClass.Basic.setPassword(BW_PASSWORD);
-
String callState = testClass.callsApi.getCallState(BW_ACCOUNT_ID, callId).getState();
if (!callState.equalsIgnoreCase("disconnected")) {
UpdateCall updateCallBody = new UpdateCall();
@@ -74,9 +69,6 @@ public static final void Cleanup(RecordingsApiTest testClass, String callId) thr
TimeUnit.SECONDS.sleep(TEST_SLEEP);
try {
- testClass.Basic.setUsername(BW_USERNAME);
- testClass.Basic.setPassword(BW_PASSWORD);
-
String callState = testClass.callsApi.getCallState(BW_ACCOUNT_ID, callId).getState();
if (!callState.equalsIgnoreCase("disconnected")) {
UpdateCall updateCallBody = new UpdateCall();
diff --git a/src/test/java/com/bandwidth/sdk/utils/TestingEnvironmentVariables.java b/src/test/java/com/bandwidth/sdk/utils/TestingEnvironmentVariables.java
index d7f22105..f03fab7e 100644
--- a/src/test/java/com/bandwidth/sdk/utils/TestingEnvironmentVariables.java
+++ b/src/test/java/com/bandwidth/sdk/utils/TestingEnvironmentVariables.java
@@ -3,6 +3,8 @@
public final class TestingEnvironmentVariables {
public static final String BW_USERNAME = System.getenv("BW_USERNAME");
public static final String BW_PASSWORD = System.getenv("BW_PASSWORD");
+ public static final String BW_CLIENT_ID = System.getenv("BW_CLIENT_ID");
+ public static final String BW_CLIENT_SECRET = System.getenv("BW_CLIENT_SECRET");
public static final String BW_ACCOUNT_ID = System.getenv("BW_ACCOUNT_ID");
public static final String BW_MESSAGING_APPLICATION_ID = System.getenv("BW_MESSAGING_APPLICATION_ID");
public static final String BW_VOICE_APPLICATION_ID = System.getenv("BW_VOICE_APPLICATION_ID");