@ringer-tel/ivy
Version:
TypeScript SDK for Ringer APIs
394 lines (327 loc) • 15.4 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 {
PaginatedSeatListResponse,
SeatCreateRequest,
SeatResponse,
SeatUpdateRequest,
} from '../models/index';
import {
PaginatedSeatListResponseFromJSON,
PaginatedSeatListResponseToJSON,
SeatCreateRequestFromJSON,
SeatCreateRequestToJSON,
SeatResponseFromJSON,
SeatResponseToJSON,
SeatUpdateRequestFromJSON,
SeatUpdateRequestToJSON,
} from '../models/index';
export interface CreateSiteSeatRequest {
siteId: number;
seatCreateRequest: SeatCreateRequest;
}
export interface DeleteSiteSeatByIdRequest {
siteId: number;
id: number;
}
export interface GetSiteSeatByIdRequest {
siteId: number;
id: number;
}
export interface ListSiteSeatsRequest {
siteId: number;
page?: number;
pageSize?: number;
}
export interface TransferSiteSeatRequest {
siteId: number;
id: number;
newSiteId: number;
}
export interface UpdateSiteSeatByIdRequest {
siteId: number;
id: number;
seatUpdateRequest: SeatUpdateRequest;
}
/**
*
*/
export class SiteFeaturesSeatsApi extends runtime.BaseAPI {
/**
* Provisions a new set of telephony features (a \"seat\") for a user on a site, based on a selected template.
* Create Seat for a Site
*/
async createSiteSeatRaw(requestParameters: CreateSiteSeatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SeatResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling createSiteSeat().'
);
}
if (requestParameters['seatCreateRequest'] == null) {
throw new runtime.RequiredError(
'seatCreateRequest',
'Required parameter "seatCreateRequest" was null or undefined when calling createSiteSeat().'
);
}
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}/seats`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: SeatCreateRequestToJSON(requestParameters['seatCreateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SeatResponseFromJSON(jsonValue));
}
/**
* Provisions a new set of telephony features (a \"seat\") for a user on a site, based on a selected template.
* Create Seat for a Site
*/
async createSiteSeat(requestParameters: CreateSiteSeatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SeatResponse> {
const response = await this.createSiteSeatRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Permanently deletes a seat and de-provisions its associated features.
* Delete Seat
*/
async deleteSiteSeatByIdRaw(requestParameters: DeleteSiteSeatByIdRequest, 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 deleteSiteSeatById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling deleteSiteSeatById().'
);
}
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}/seats/{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 seat and de-provisions its associated features.
* Delete Seat
*/
async deleteSiteSeatById(requestParameters: DeleteSiteSeatByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.deleteSiteSeatByIdRaw(requestParameters, initOverrides);
}
/**
* Retrieves detailed information for a specific seat by its ID.
* Get Seat Details
*/
async getSiteSeatByIdRaw(requestParameters: GetSiteSeatByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SeatResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling getSiteSeatById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling getSiteSeatById().'
);
}
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}/seats/{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) => SeatResponseFromJSON(jsonValue));
}
/**
* Retrieves detailed information for a specific seat by its ID.
* Get Seat Details
*/
async getSiteSeatById(requestParameters: GetSiteSeatByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SeatResponse> {
const response = await this.getSiteSeatByIdRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of all seats configured for the specified site.
* List Seats for a Site
*/
async listSiteSeatsRaw(requestParameters: ListSiteSeatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PaginatedSeatListResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling listSiteSeats().'
);
}
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}/seats`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedSeatListResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of all seats configured for the specified site.
* List Seats for a Site
*/
async listSiteSeats(requestParameters: ListSiteSeatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedSeatListResponse> {
const response = await this.listSiteSeatsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Moves a seat (and its provisioned features) from its current site to a new target site within the same customer account.
* Transfer Seat to Another Site
*/
async transferSiteSeatRaw(requestParameters: TransferSiteSeatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SeatResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling transferSiteSeat().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling transferSiteSeat().'
);
}
if (requestParameters['newSiteId'] == null) {
throw new runtime.RequiredError(
'newSiteId',
'Required parameter "newSiteId" was null or undefined when calling transferSiteSeat().'
);
}
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}/seats/{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) => SeatResponseFromJSON(jsonValue));
}
/**
* Moves a seat (and its provisioned features) from its current site to a new target site within the same customer account.
* Transfer Seat to Another Site
*/
async transferSiteSeat(requestParameters: TransferSiteSeatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SeatResponse> {
const response = await this.transferSiteSeatRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Updates information for an existing seat. Typically name or user assignment. Template is usually fixed post-creation.
* Update Seat Information
*/
async updateSiteSeatByIdRaw(requestParameters: UpdateSiteSeatByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SeatResponse>> {
if (requestParameters['siteId'] == null) {
throw new runtime.RequiredError(
'siteId',
'Required parameter "siteId" was null or undefined when calling updateSiteSeatById().'
);
}
if (requestParameters['id'] == null) {
throw new runtime.RequiredError(
'id',
'Required parameter "id" was null or undefined when calling updateSiteSeatById().'
);
}
if (requestParameters['seatUpdateRequest'] == null) {
throw new runtime.RequiredError(
'seatUpdateRequest',
'Required parameter "seatUpdateRequest" was null or undefined when calling updateSiteSeatById().'
);
}
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}/seats/{id}`.replace(`{${"site_id"}}`, encodeURIComponent(String(requestParameters['siteId']))).replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'PUT',
headers: headerParameters,
query: queryParameters,
body: SeatUpdateRequestToJSON(requestParameters['seatUpdateRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SeatResponseFromJSON(jsonValue));
}
/**
* Updates information for an existing seat. Typically name or user assignment. Template is usually fixed post-creation.
* Update Seat Information
*/
async updateSiteSeatById(requestParameters: UpdateSiteSeatByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SeatResponse> {
const response = await this.updateSiteSeatByIdRaw(requestParameters, initOverrides);
return await response.value();
}
}