@ringer-tel/ivy
Version:
TypeScript SDK for Ringer APIs
446 lines (370 loc) • 18.7 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* Ringer Business API
* This API provides comprehensive endpoints for the Ringer Business system. It includes functionality for managing customer accounts, addresses, sites, phone numbers, payments, users, and other business resources. Operations typically require authentication and appropriate permissions.
*
* The version of the OpenAPI document: 1.0.6
* Contact: support@ringer.tel
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import * as runtime from '../runtime';
import type {
AvailablePhoneNumberListResponse,
PaginatedPhoneNumberListResponse,
PhoneNumberCreateRequest,
PhoneNumberUpdateRequest,
SchemasPhoneNumberResponse,
} from '../models/index';
import {
AvailablePhoneNumberListResponseFromJSON,
AvailablePhoneNumberListResponseToJSON,
PaginatedPhoneNumberListResponseFromJSON,
PaginatedPhoneNumberListResponseToJSON,
PhoneNumberCreateRequestFromJSON,
PhoneNumberCreateRequestToJSON,
PhoneNumberUpdateRequestFromJSON,
PhoneNumberUpdateRequestToJSON,
SchemasPhoneNumberResponseFromJSON,
SchemasPhoneNumberResponseToJSON,
} from '../models/index';
export interface AssignSitePhoneNumberRequest {
siteId: number;
phoneNumberCreateRequest: PhoneNumberCreateRequest;
}
export interface DeleteSitePhoneNumberByIdRequest {
siteId: number;
id: number;
}
export interface GetSitePhoneNumberByIdRequest {
siteId: number;
id: number;
}
export interface ListSiteAvailablePhoneNumbersRequest {
siteId: number;
userId?: number;
}
export interface ListSitePhoneNumbersRequest {
siteId: number;
page?: number;
pageSize?: number;
}
export interface TransferSitePhoneNumberRequest {
siteId: number;
id: number;
newSiteId: number;
}
export interface UpdateSitePhoneNumberByIdRequest {
siteId: number;
id: number;
phoneNumberUpdateRequest: PhoneNumberUpdateRequest;
}
/**
*
*/
export class SiteFeaturesPhoneNumbersApi extends runtime.BaseAPI {
/**
* Assigns an available phone number to the specified site and configures its initial routing.
* Assign Phone Number to Site
*/
async assignSitePhoneNumberRaw(requestParameters: AssignSitePhoneNumberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SchemasPhoneNumberResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling assignSitePhoneNumber().'
);
}
if (requestParameters['phoneNumberCreateRequest'] == null) {
throw new runtime.RequiredError(
'phoneNumberCreateRequest',
'Required parameter "phoneNumberCreateRequest" was null or undefined when calling assignSitePhoneNumber().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: PhoneNumberCreateRequestToJSON(requestParameters['phoneNumberCreateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SchemasPhoneNumberResponseFromJSON(jsonValue));
}
/**
* Assigns an available phone number to the specified site and configures its initial routing.
* Assign Phone Number to Site
*/
async assignSitePhoneNumber(requestParameters: AssignSitePhoneNumberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SchemasPhoneNumberResponse> {
const response = await this.assignSitePhoneNumberRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Removes a phone number assignment from the site. The number may return to inventory.
* Unassign/Delete Phone Number from Site
*/
async deleteSitePhoneNumberByIdRaw(requestParameters: DeleteSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling deleteSitePhoneNumberById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling deleteSitePhoneNumberById().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'DELETE',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Removes a phone number assignment from the site. The number may return to inventory.
* Unassign/Delete Phone Number from Site
*/
async deleteSitePhoneNumberById(requestParameters: DeleteSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.deleteSitePhoneNumberByIdRaw(requestParameters, initOverrides);
}
/**
* Retrieves detailed information for a specific phone number assigned to a site.
* Get Phone Number Details
*/
async getSitePhoneNumberByIdRaw(requestParameters: GetSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SchemasPhoneNumberResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling getSitePhoneNumberById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling getSitePhoneNumberById().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SchemasPhoneNumberResponseFromJSON(jsonValue));
}
/**
* Retrieves detailed information for a specific phone number assigned to a site.
* Get Phone Number Details
*/
async getSitePhoneNumberById(requestParameters: GetSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SchemasPhoneNumberResponse> {
const response = await this.getSitePhoneNumberByIdRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieves phone numbers that are available for assignment to the specified site. Can be optionally filtered by user ID.
* List Available Phone Numbers for a Site
*/
async listSiteAvailablePhoneNumbersRaw(requestParameters: ListSiteAvailablePhoneNumbersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AvailablePhoneNumberListResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling listSiteAvailablePhoneNumbers().'
);
}
const queryParameters: any = {};
if (requestParameters['userId'] != null) {
queryParameters['userId'] = requestParameters['userId'];
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers/available`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => AvailablePhoneNumberListResponseFromJSON(jsonValue));
}
/**
* Retrieves phone numbers that are available for assignment to the specified site. Can be optionally filtered by user ID.
* List Available Phone Numbers for a Site
*/
async listSiteAvailablePhoneNumbers(requestParameters: ListSiteAvailablePhoneNumbersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AvailablePhoneNumberListResponse> {
const response = await this.listSiteAvailablePhoneNumbersRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of all phone numbers assigned to the specified site.
* List Phone Numbers for a Site
*/
async listSitePhoneNumbersRaw(requestParameters: ListSitePhoneNumbersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PaginatedPhoneNumberListResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling listSitePhoneNumbers().'
);
}
const queryParameters: any = {};
if (requestParameters['page'] != null) {
queryParameters['page'] = requestParameters['page'];
}
if (requestParameters['pageSize'] != null) {
queryParameters['page_size'] = requestParameters['pageSize'];
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedPhoneNumberListResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of all phone numbers assigned to the specified site.
* List Phone Numbers for a Site
*/
async listSitePhoneNumbers(requestParameters: ListSitePhoneNumbersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedPhoneNumberListResponse> {
const response = await this.listSitePhoneNumbersRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Moves an assigned phone number from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account.
* Transfer Phone Number to Another Site
*/
async transferSitePhoneNumberRaw(requestParameters: TransferSitePhoneNumberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SchemasPhoneNumberResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling transferSitePhoneNumber().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling transferSitePhoneNumber().'
);
}
if (requestParameters['newSiteId'] == null) {
throw new runtime.RequiredError(
'newSiteId',
'Required parameter "newSiteId" was null or undefined when calling transferSitePhoneNumber().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const consumes: runtime.Consume[] = [
{ contentType: 'application/x-www-form-urlencoded' },
];
// @ts-ignore: canConsumeForm may be unused
const canConsumeForm = runtime.canConsumeForm(consumes);
let formParams: { append(param: string, value: any): any };
let useForm = false;
if (useForm) {
formParams = new FormData();
} else {
formParams = new URLSearchParams();
}
if (requestParameters['newSiteId'] != null) {
formParams.append('new_site_id', requestParameters['newSiteId'] as any);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers/{id}/transfer`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: formParams,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SchemasPhoneNumberResponseFromJSON(jsonValue));
}
/**
* Moves an assigned phone number from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account.
* Transfer Phone Number to Another Site
*/
async transferSitePhoneNumber(requestParameters: TransferSitePhoneNumberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SchemasPhoneNumberResponse> {
const response = await this.transferSitePhoneNumberRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Updates configuration for a specific phone number. Only provided fields are changed.
* Update Phone Number Configuration
*/
async updateSitePhoneNumberByIdRaw(requestParameters: UpdateSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SchemasPhoneNumberResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling updateSitePhoneNumberById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling updateSitePhoneNumberById().'
);
}
if (requestParameters['phoneNumberUpdateRequest'] == null) {
throw new runtime.RequiredError(
'phoneNumberUpdateRequest',
'Required parameter "phoneNumberUpdateRequest" was null or undefined when calling updateSitePhoneNumberById().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oAuth2", []);
}
const response = await this.request({
path: `/sites/{site_id}/phone-numbers/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'PUT',
headers: headerParameters,
query: queryParameters,
body: PhoneNumberUpdateRequestToJSON(requestParameters['phoneNumberUpdateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SchemasPhoneNumberResponseFromJSON(jsonValue));
}
/**
* Updates configuration for a specific phone number. Only provided fields are changed.
* Update Phone Number Configuration
*/
async updateSitePhoneNumberById(requestParameters: UpdateSitePhoneNumberByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SchemasPhoneNumberResponse> {
const response = await this.updateSitePhoneNumberByIdRaw(requestParameters, initOverrides);
return await response.value();
}
}