@ringer-tel/ivy
Version:
TypeScript SDK for Ringer APIs
394 lines (327 loc) • 15.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 {
PaginatedRingGroupListResponse,
RingGroupCreateRequest,
RingGroupResponse,
RingGroupUpdateRequest,
} from '../models/index';
import {
PaginatedRingGroupListResponseFromJSON,
PaginatedRingGroupListResponseToJSON,
RingGroupCreateRequestFromJSON,
RingGroupCreateRequestToJSON,
RingGroupResponseFromJSON,
RingGroupResponseToJSON,
RingGroupUpdateRequestFromJSON,
RingGroupUpdateRequestToJSON,
} from '../models/index';
export interface CreateSiteRingGroupRequest {
siteId: number;
ringGroupCreateRequest: RingGroupCreateRequest;
}
export interface DeleteSiteRingGroupByIdRequest {
siteId: number;
id: number;
}
export interface GetSiteRingGroupByIdRequest {
siteId: number;
id: number;
}
export interface ListSiteRingGroupsRequest {
siteId: number;
page?: number;
pageSize?: number;
}
export interface TransferSiteRingGroupRequest {
siteId: number;
id: number;
newSiteId: number;
}
export interface UpdateSiteRingGroupByIdRequest {
siteId: number;
id: number;
ringGroupUpdateRequest: RingGroupUpdateRequest;
}
/**
*
*/
export class SiteFeaturesRingGroupsApi extends runtime.BaseAPI {
/**
* Add a new ring group to the specified site.
* Create Ring Group for a Site
*/
async createSiteRingGroupRaw(requestParameters: CreateSiteRingGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RingGroupResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling createSiteRingGroup().'
);
}
if (requestParameters['ringGroupCreateRequest'] == null) {
throw new runtime.RequiredError(
'ringGroupCreateRequest',
'Required parameter "ringGroupCreateRequest" was null or undefined when calling createSiteRingGroup().'
);
}
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}/ring-groups`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: RingGroupCreateRequestToJSON(requestParameters['ringGroupCreateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => RingGroupResponseFromJSON(jsonValue));
}
/**
* Add a new ring group to the specified site.
* Create Ring Group for a Site
*/
async createSiteRingGroup(requestParameters: CreateSiteRingGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RingGroupResponse> {
const response = await this.createSiteRingGroupRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Permanently deletes a specific ring group.
* Delete Ring Group
*/
async deleteSiteRingGroupByIdRaw(requestParameters: DeleteSiteRingGroupByIdRequest, 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 deleteSiteRingGroupById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling deleteSiteRingGroupById().'
);
}
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}/ring-groups/{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);
}
/**
* Permanently deletes a specific ring group.
* Delete Ring Group
*/
async deleteSiteRingGroupById(requestParameters: DeleteSiteRingGroupByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.deleteSiteRingGroupByIdRaw(requestParameters, initOverrides);
}
/**
* Retrieves detailed information for a specific ring group by its ID.
* Get Ring Group Details
*/
async getSiteRingGroupByIdRaw(requestParameters: GetSiteRingGroupByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RingGroupResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling getSiteRingGroupById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling getSiteRingGroupById().'
);
}
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}/ring-groups/{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) => RingGroupResponseFromJSON(jsonValue));
}
/**
* Retrieves detailed information for a specific ring group by its ID.
* Get Ring Group Details
*/
async getSiteRingGroupById(requestParameters: GetSiteRingGroupByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RingGroupResponse> {
const response = await this.getSiteRingGroupByIdRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of all ring groups configured for the specified site.
* List Ring Groups for a Site
*/
async listSiteRingGroupsRaw(requestParameters: ListSiteRingGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PaginatedRingGroupListResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling listSiteRingGroups().'
);
}
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}/ring-groups`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedRingGroupListResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of all ring groups configured for the specified site.
* List Ring Groups for a Site
*/
async listSiteRingGroups(requestParameters: ListSiteRingGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedRingGroupListResponse> {
const response = await this.listSiteRingGroupsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Moves a ring group from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account.
* Transfer Ring Group to Another Site
*/
async transferSiteRingGroupRaw(requestParameters: TransferSiteRingGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RingGroupResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling transferSiteRingGroup().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling transferSiteRingGroup().'
);
}
if (requestParameters['newSiteId'] == null) {
throw new runtime.RequiredError(
'newSiteId',
'Required parameter "newSiteId" was null or undefined when calling transferSiteRingGroup().'
);
}
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}/ring-groups/{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) => RingGroupResponseFromJSON(jsonValue));
}
/**
* Moves a ring group from its current site (specified in the path) to a new target site (specified in the request body) within the same customer account.
* Transfer Ring Group to Another Site
*/
async transferSiteRingGroup(requestParameters: TransferSiteRingGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RingGroupResponse> {
const response = await this.transferSiteRingGroupRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Updates an existing ring group. Provide only fields to be changed.
* Update Ring Group Configuration
*/
async updateSiteRingGroupByIdRaw(requestParameters: UpdateSiteRingGroupByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RingGroupResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling updateSiteRingGroupById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling updateSiteRingGroupById().'
);
}
if (requestParameters['ringGroupUpdateRequest'] == null) {
throw new runtime.RequiredError(
'ringGroupUpdateRequest',
'Required parameter "ringGroupUpdateRequest" was null or undefined when calling updateSiteRingGroupById().'
);
}
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}/ring-groups/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'PUT',
headers: headerParameters,
query: queryParameters,
body: RingGroupUpdateRequestToJSON(requestParameters['ringGroupUpdateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => RingGroupResponseFromJSON(jsonValue));
}
/**
* Updates an existing ring group. Provide only fields to be changed.
* Update Ring Group Configuration
*/
async updateSiteRingGroupById(requestParameters: UpdateSiteRingGroupByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RingGroupResponse> {
const response = await this.updateSiteRingGroupByIdRaw(requestParameters, initOverrides);
return await response.value();
}
}