UNPKG

mailslurp-client

Version:

Official client for MailSlurp Email and SMS API. Create email addresses and phone numbers in Javascript without a mail server. Send and receive real emails in applications or tests.

1,741 lines (1,516 loc) 109 kB
/* tslint:disable */ /* eslint-disable */ /** * MailSlurp API * MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. It\'s designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more. ## Resources - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://docs.mailslurp.com/) - [Examples](https://github.com/mailslurp/examples) repository * * The version of the OpenAPI document: 6.5.2 * Contact: contact@mailslurp.dev * * 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 { AcquirePhonePoolLeaseOptions, AcquirePhonePoolLeaseOptionsFromJSON, AcquirePhonePoolLeaseOptionsToJSON, AddPhonePoolNumbersOptions, AddPhonePoolNumbersOptionsFromJSON, AddPhonePoolNumbersOptionsToJSON, AvailablePhoneNumbersResult, AvailablePhoneNumbersResultFromJSON, AvailablePhoneNumbersResultToJSON, ConsentStatusDto, ConsentStatusDtoFromJSON, ConsentStatusDtoToJSON, CreateEmergencyAddressOptions, CreateEmergencyAddressOptionsFromJSON, CreateEmergencyAddressOptionsToJSON, CreatePhoneNumberOptions, CreatePhoneNumberOptionsFromJSON, CreatePhoneNumberOptionsToJSON, CreatePhonePoolOptions, CreatePhonePoolOptionsFromJSON, CreatePhonePoolOptionsToJSON, CreatePhoneProvisioningJobOptions, CreatePhoneProvisioningJobOptionsFromJSON, CreatePhoneProvisioningJobOptionsToJSON, EmergencyAddress, EmergencyAddressFromJSON, EmergencyAddressToJSON, EmergencyAddressDto, EmergencyAddressDtoFromJSON, EmergencyAddressDtoToJSON, EmptyResponseDto, EmptyResponseDtoFromJSON, EmptyResponseDtoToJSON, GetOrCreatePhonePoolOptions, GetOrCreatePhonePoolOptionsFromJSON, GetOrCreatePhonePoolOptionsToJSON, PagePhoneMessageThreadItemProjection, PagePhoneMessageThreadItemProjectionFromJSON, PagePhoneMessageThreadItemProjectionToJSON, PagePhoneMessageThreadProjection, PagePhoneMessageThreadProjectionFromJSON, PagePhoneMessageThreadProjectionToJSON, PagePhoneNumberProjection, PagePhoneNumberProjectionFromJSON, PagePhoneNumberProjectionToJSON, PagePhoneNumberReleaseProjection, PagePhoneNumberReleaseProjectionFromJSON, PagePhoneNumberReleaseProjectionToJSON, PageSentSmsProjection, PageSentSmsProjectionFromJSON, PageSentSmsProjectionToJSON, PageSmsProjection, PageSmsProjectionFromJSON, PageSmsProjectionToJSON, PhoneNumberDto, PhoneNumberDtoFromJSON, PhoneNumberDtoToJSON, PhoneNumberLineTypeLookupDto, PhoneNumberLineTypeLookupDtoFromJSON, PhoneNumberLineTypeLookupDtoToJSON, PhoneNumberReleaseProjection, PhoneNumberReleaseProjectionFromJSON, PhoneNumberReleaseProjectionToJSON, PhoneNumberTagsOptions, PhoneNumberTagsOptionsFromJSON, PhoneNumberTagsOptionsToJSON, PhoneNumberValidationDto, PhoneNumberValidationDtoFromJSON, PhoneNumberValidationDtoToJSON, PhonePlanAvailability, PhonePlanAvailabilityFromJSON, PhonePlanAvailabilityToJSON, PhonePlanDto, PhonePlanDtoFromJSON, PhonePlanDtoToJSON, PhonePoolDetailDto, PhonePoolDetailDtoFromJSON, PhonePoolDetailDtoToJSON, PhonePoolDto, PhonePoolDtoFromJSON, PhonePoolDtoToJSON, PhonePoolLeaseDto, PhonePoolLeaseDtoFromJSON, PhonePoolLeaseDtoToJSON, PhoneProviderCapabilitiesResult, PhoneProviderCapabilitiesResultFromJSON, PhoneProviderCapabilitiesResultToJSON, PhoneProvisioningJobDto, PhoneProvisioningJobDtoFromJSON, PhoneProvisioningJobDtoToJSON, PhoneSmsPrepaidCreditDto, PhoneSmsPrepaidCreditDtoFromJSON, PhoneSmsPrepaidCreditDtoToJSON, PhoneSmsPrepaidCreditsDto, PhoneSmsPrepaidCreditsDtoFromJSON, PhoneSmsPrepaidCreditsDtoToJSON, PhoneSummaryDto, PhoneSummaryDtoFromJSON, PhoneSummaryDtoToJSON, SearchAvailablePhoneNumbersOptions, SearchAvailablePhoneNumbersOptionsFromJSON, SearchAvailablePhoneNumbersOptionsToJSON, SentSmsDto, SentSmsDtoFromJSON, SentSmsDtoToJSON, SetPhoneFavouritedOptions, SetPhoneFavouritedOptionsFromJSON, SetPhoneFavouritedOptionsToJSON, SmsSendOptions, SmsSendOptionsFromJSON, SmsSendOptionsToJSON, TestPhoneNumberOptions, TestPhoneNumberOptionsFromJSON, TestPhoneNumberOptionsToJSON, UpdatePhoneNumberOptions, UpdatePhoneNumberOptionsFromJSON, UpdatePhoneNumberOptionsToJSON, UpdatePhonePoolOptions, UpdatePhonePoolOptionsFromJSON, UpdatePhonePoolOptionsToJSON, ValidatePhoneNumberOptions, ValidatePhoneNumberOptionsFromJSON, ValidatePhoneNumberOptionsToJSON, } from '../models'; export interface AcquirePhonePoolLeaseRequest { poolId: string; acquirePhonePoolLeaseOptions: AcquirePhonePoolLeaseOptions; } export interface AddAllPhoneNumbersToPhonePoolRequest { poolId: string; } export interface AddPhoneNumberTagsRequest { phoneNumberId: string; phoneNumberTagsOptions: PhoneNumberTagsOptions; } export interface AddPhoneNumbersToPhonePoolRequest { poolId: string; addPhonePoolNumbersOptions: AddPhonePoolNumbersOptions; } export interface CreateEmergencyAddressRequest { createEmergencyAddressOptions: CreateEmergencyAddressOptions; } export interface CreatePhoneNumberRequest { createPhoneNumberOptions: CreatePhoneNumberOptions; } export interface CreatePhonePoolRequest { createPhonePoolOptions: CreatePhonePoolOptions; } export interface CreatePhoneProvisioningJobRequest { createPhoneProvisioningJobOptions: CreatePhoneProvisioningJobOptions; } export interface DeleteEmergencyAddressRequest { addressId: string; } export interface DeletePhoneMessageThreadItemsRequest { phoneNumberId: string; otherNumber: string; } export interface DeletePhoneNumberRequest { phoneNumberId: string; } export interface DeletePhonePoolRequest { poolId: string; } export interface GetAllPhoneMessageThreadsRequest { page?: number; size?: number; } export interface GetAllPhoneNumberReleasesRequest { page?: number; size?: number; sort?: GetAllPhoneNumberReleasesSortEnum; } export interface GetEmergencyAddressRequest { addressId: string; } export interface GetOrCreatePhonePoolRequest { getOrCreatePhonePoolOptions: GetOrCreatePhonePoolOptions; } export interface GetPhoneMessageThreadItemsRequest { phoneNumberId: string; otherNumber: string; page?: number; size?: number; } export interface GetPhoneMessageThreadsRequest { phoneNumberId: string; page?: number; size?: number; } export interface GetPhoneNumberRequest { phoneNumberId: string; } export interface GetPhoneNumberByNameRequest { name: string; } export interface GetPhoneNumberByPhoneNumberRequest { phoneNumber: string; } export interface GetPhoneNumberLineTypeIntelligenceRequest { validatePhoneNumberOptions: ValidatePhoneNumberOptions; } export interface GetPhoneNumberReleaseRequest { releaseId: string; } export interface GetPhoneNumberTagsRequest { phoneNumberId: string; } export interface GetPhoneNumbersRequest { phoneCountry?: GetPhoneNumbersPhoneCountryEnum; lineType?: string; carrierName?: string; mobileCountryCode?: string; mobileNetworkCode?: string; providerLabel?: string; page?: number; size?: number; sort?: GetPhoneNumbersSortEnum; since?: Date; before?: Date; search?: string; tag?: Array<string>; include?: Array<string>; favourite?: boolean; } export interface GetPhonePoolRequest { poolId: string; } export interface GetPhonePoolByNameRequest { name: string; } export interface GetPhoneProvisioningCapabilitiesRequest { phoneCountry: GetPhoneProvisioningCapabilitiesPhoneCountryEnum; providerLabel?: string; } export interface GetPhoneProvisioningJobRequest { jobId: string; } export interface GetPhoneSmsPrepaidCreditRequest { creditId: string; } export interface GetPhoneTagsRequest { search?: string; } export interface GetSentSmsByPhoneNumberRequest { phoneNumberId: string; page?: number; size?: number; sort?: GetSentSmsByPhoneNumberSortEnum; since?: Date; before?: Date; search?: string; } export interface GetSmsByPhoneNumberRequest { phoneNumberId: string; page?: number; size?: number; sort?: GetSmsByPhoneNumberSortEnum; unreadOnly?: boolean; since?: Date; before?: Date; search?: string; favourite?: boolean; } export interface ReassignPhoneNumberReleaseRequest { releaseId: string; } export interface ReleasePhonePoolLeaseRequest { poolId: string; leaseId: string; } export interface RemovePhoneNumberFromPhonePoolRequest { poolId: string; phoneNumberId: string; } export interface RemovePhoneNumberTagsRequest { phoneNumberId: string; phoneNumberTagsOptions: PhoneNumberTagsOptions; } export interface SearchAvailablePhoneNumbersRequest { searchAvailablePhoneNumbersOptions: SearchAvailablePhoneNumbersOptions; } export interface SendSmsFromPhoneNumberRequest { phoneNumberId: string; smsSendOptions: SmsSendOptions; } export interface SetConsentStatusRequest { agree: boolean; } export interface SetPhoneFavouritedRequest { phoneNumberId: string; setPhoneFavouritedOptions: SetPhoneFavouritedOptions; } export interface SetPhoneNumberTagsRequest { phoneNumberId: string; phoneNumberTagsOptions: PhoneNumberTagsOptions; } export interface TestPhoneNumberSendSmsRequest { phoneNumberId: string; testPhoneNumberOptions: TestPhoneNumberOptions; xTestId?: string; } export interface UpdatePhoneNumberRequest { phoneNumberId: string; updatePhoneNumberOptions: UpdatePhoneNumberOptions; } export interface UpdatePhonePoolRequest { poolId: string; updatePhonePoolOptions: UpdatePhonePoolOptions; } export interface ValidatePhoneNumberRequest { validatePhoneNumberOptions: ValidatePhoneNumberOptions; } /** * */ export class PhoneControllerApi extends runtime.BaseAPI { /** * Acquire an available phone number from the pool and mark it leased * Acquire phone pool lease */ async acquirePhonePoolLeaseRaw( requestParameters: AcquirePhonePoolLeaseRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhonePoolLeaseDto>> { if ( requestParameters.poolId === null || requestParameters.poolId === undefined ) { throw new runtime.RequiredError( 'poolId', 'Required parameter requestParameters.poolId was null or undefined when calling acquirePhonePoolLease.' ); } if ( requestParameters.acquirePhonePoolLeaseOptions === null || requestParameters.acquirePhonePoolLeaseOptions === undefined ) { throw new runtime.RequiredError( 'acquirePhonePoolLeaseOptions', 'Required parameter requestParameters.acquirePhonePoolLeaseOptions was null or undefined when calling acquirePhonePoolLease.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools/{poolId}/leases`.replace( `{${'poolId'}}`, encodeURIComponent(String(requestParameters.poolId)) ), method: 'POST', headers: headerParameters, query: queryParameters, body: AcquirePhonePoolLeaseOptionsToJSON( requestParameters.acquirePhonePoolLeaseOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhonePoolLeaseDtoFromJSON(jsonValue) ); } /** * Acquire an available phone number from the pool and mark it leased * Acquire phone pool lease */ async acquirePhonePoolLease( requestParameters: AcquirePhonePoolLeaseRequest, initOverrides?: RequestInit ): Promise<PhonePoolLeaseDto> { const response = await this.acquirePhonePoolLeaseRaw( requestParameters, initOverrides ); return await response.value(); } /** * Add all active owned phone numbers to a pool * Add all phone numbers to phone pool */ async addAllPhoneNumbersToPhonePoolRaw( requestParameters: AddAllPhoneNumbersToPhonePoolRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhonePoolDetailDto>> { if ( requestParameters.poolId === null || requestParameters.poolId === undefined ) { throw new runtime.RequiredError( 'poolId', 'Required parameter requestParameters.poolId was null or undefined when calling addAllPhoneNumbersToPhonePool.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools/{poolId}/numbers/add-all`.replace( `{${'poolId'}}`, encodeURIComponent(String(requestParameters.poolId)) ), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhonePoolDetailDtoFromJSON(jsonValue) ); } /** * Add all active owned phone numbers to a pool * Add all phone numbers to phone pool */ async addAllPhoneNumbersToPhonePool( requestParameters: AddAllPhoneNumbersToPhonePoolRequest, initOverrides?: RequestInit ): Promise<PhonePoolDetailDto> { const response = await this.addAllPhoneNumbersToPhonePoolRaw( requestParameters, initOverrides ); return await response.value(); } /** * Add one or more tags to a phone number * Add phone number tags */ async addPhoneNumberTagsRaw( requestParameters: AddPhoneNumberTagsRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhoneNumberDto>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling addPhoneNumberTags.' ); } if ( requestParameters.phoneNumberTagsOptions === null || requestParameters.phoneNumberTagsOptions === undefined ) { throw new runtime.RequiredError( 'phoneNumberTagsOptions', 'Required parameter requestParameters.phoneNumberTagsOptions was null or undefined when calling addPhoneNumberTags.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}/tags`.replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ), method: 'POST', headers: headerParameters, query: queryParameters, body: PhoneNumberTagsOptionsToJSON( requestParameters.phoneNumberTagsOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhoneNumberDtoFromJSON(jsonValue) ); } /** * Add one or more tags to a phone number * Add phone number tags */ async addPhoneNumberTags( requestParameters: AddPhoneNumberTagsRequest, initOverrides?: RequestInit ): Promise<PhoneNumberDto> { const response = await this.addPhoneNumberTagsRaw( requestParameters, initOverrides ); return await response.value(); } /** * Add one or more owned phone numbers to a pool * Add phone numbers to phone pool */ async addPhoneNumbersToPhonePoolRaw( requestParameters: AddPhoneNumbersToPhonePoolRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhonePoolDetailDto>> { if ( requestParameters.poolId === null || requestParameters.poolId === undefined ) { throw new runtime.RequiredError( 'poolId', 'Required parameter requestParameters.poolId was null or undefined when calling addPhoneNumbersToPhonePool.' ); } if ( requestParameters.addPhonePoolNumbersOptions === null || requestParameters.addPhonePoolNumbersOptions === undefined ) { throw new runtime.RequiredError( 'addPhonePoolNumbersOptions', 'Required parameter requestParameters.addPhonePoolNumbersOptions was null or undefined when calling addPhoneNumbersToPhonePool.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools/{poolId}/numbers`.replace( `{${'poolId'}}`, encodeURIComponent(String(requestParameters.poolId)) ), method: 'POST', headers: headerParameters, query: queryParameters, body: AddPhonePoolNumbersOptionsToJSON( requestParameters.addPhonePoolNumbersOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhonePoolDetailDtoFromJSON(jsonValue) ); } /** * Add one or more owned phone numbers to a pool * Add phone numbers to phone pool */ async addPhoneNumbersToPhonePool( requestParameters: AddPhoneNumbersToPhonePoolRequest, initOverrides?: RequestInit ): Promise<PhonePoolDetailDto> { const response = await this.addPhoneNumbersToPhonePoolRaw( requestParameters, initOverrides ); return await response.value(); } /** * Add an emergency address to a phone number * Create an emergency address */ async createEmergencyAddressRaw( requestParameters: CreateEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<EmergencyAddress>> { if ( requestParameters.createEmergencyAddressOptions === null || requestParameters.createEmergencyAddressOptions === undefined ) { throw new runtime.RequiredError( 'createEmergencyAddressOptions', 'Required parameter requestParameters.createEmergencyAddressOptions was null or undefined when calling createEmergencyAddress.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/emergency-addresses`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreateEmergencyAddressOptionsToJSON( requestParameters.createEmergencyAddressOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => EmergencyAddressFromJSON(jsonValue) ); } /** * Add an emergency address to a phone number * Create an emergency address */ async createEmergencyAddress( requestParameters: CreateEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<EmergencyAddress> { const response = await this.createEmergencyAddressRaw( requestParameters, initOverrides ); return await response.value(); } /** * Create new phone number * Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation. */ async createPhoneNumberRaw( requestParameters: CreatePhoneNumberRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhoneNumberDto>> { if ( requestParameters.createPhoneNumberOptions === null || requestParameters.createPhoneNumberOptions === undefined ) { throw new runtime.RequiredError( 'createPhoneNumberOptions', 'Required parameter requestParameters.createPhoneNumberOptions was null or undefined when calling createPhoneNumber.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreatePhoneNumberOptionsToJSON( requestParameters.createPhoneNumberOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhoneNumberDtoFromJSON(jsonValue) ); } /** * Create new phone number * Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation. */ async createPhoneNumber( requestParameters: CreatePhoneNumberRequest, initOverrides?: RequestInit ): Promise<PhoneNumberDto> { const response = await this.createPhoneNumberRaw( requestParameters, initOverrides ); return await response.value(); } /** * Create a reusable pool of phone numbers for coordinated leasing * Create phone pool */ async createPhonePoolRaw( requestParameters: CreatePhonePoolRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhonePoolDetailDto>> { if ( requestParameters.createPhonePoolOptions === null || requestParameters.createPhonePoolOptions === undefined ) { throw new runtime.RequiredError( 'createPhonePoolOptions', 'Required parameter requestParameters.createPhonePoolOptions was null or undefined when calling createPhonePool.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreatePhonePoolOptionsToJSON( requestParameters.createPhonePoolOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhonePoolDetailDtoFromJSON(jsonValue) ); } /** * Create a reusable pool of phone numbers for coordinated leasing * Create phone pool */ async createPhonePool( requestParameters: CreatePhonePoolRequest, initOverrides?: RequestInit ): Promise<PhonePoolDetailDto> { const response = await this.createPhonePoolRaw( requestParameters, initOverrides ); return await response.value(); } /** * Create an advanced phone provisioning job from shortlisted numbers * Create a phone provisioning job */ async createPhoneProvisioningJobRaw( requestParameters: CreatePhoneProvisioningJobRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhoneProvisioningJobDto>> { if ( requestParameters.createPhoneProvisioningJobOptions === null || requestParameters.createPhoneProvisioningJobOptions === undefined ) { throw new runtime.RequiredError( 'createPhoneProvisioningJobOptions', 'Required parameter requestParameters.createPhoneProvisioningJobOptions was null or undefined when calling createPhoneProvisioningJob.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/provisioning/jobs`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreatePhoneProvisioningJobOptionsToJSON( requestParameters.createPhoneProvisioningJobOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhoneProvisioningJobDtoFromJSON(jsonValue) ); } /** * Create an advanced phone provisioning job from shortlisted numbers * Create a phone provisioning job */ async createPhoneProvisioningJob( requestParameters: CreatePhoneProvisioningJobRequest, initOverrides?: RequestInit ): Promise<PhoneProvisioningJobDto> { const response = await this.createPhoneProvisioningJobRaw( requestParameters, initOverrides ); return await response.value(); } /** * Remove all phone number from account * Delete all phone numbers */ async deleteAllPhoneNumberRaw( initOverrides?: RequestInit ): Promise<runtime.ApiResponse<void>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers`, method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.VoidApiResponse(response); } /** * Remove all phone number from account * Delete all phone numbers */ async deleteAllPhoneNumber(initOverrides?: RequestInit): Promise<void> { await this.deleteAllPhoneNumberRaw(initOverrides); } /** * Delete an emergency address * Delete an emergency address */ async deleteEmergencyAddressRaw( requestParameters: DeleteEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<EmptyResponseDto>> { if ( requestParameters.addressId === null || requestParameters.addressId === undefined ) { throw new runtime.RequiredError( 'addressId', 'Required parameter requestParameters.addressId was null or undefined when calling deleteEmergencyAddress.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/emergency-addresses/{addressId}`.replace( `{${'addressId'}}`, encodeURIComponent(String(requestParameters.addressId)) ), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => EmptyResponseDtoFromJSON(jsonValue) ); } /** * Delete an emergency address * Delete an emergency address */ async deleteEmergencyAddress( requestParameters: DeleteEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<EmptyResponseDto> { const response = await this.deleteEmergencyAddressRaw( requestParameters, initOverrides ); return await response.value(); } /** * Delete all messages in an SMS thread * Delete messages in a phone thread */ async deletePhoneMessageThreadItemsRaw( requestParameters: DeletePhoneMessageThreadItemsRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<EmptyResponseDto>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling deletePhoneMessageThreadItems.' ); } if ( requestParameters.otherNumber === null || requestParameters.otherNumber === undefined ) { throw new runtime.RequiredError( 'otherNumber', 'Required parameter requestParameters.otherNumber was null or undefined when calling deletePhoneMessageThreadItems.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}` .replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ) .replace( `{${'otherNumber'}}`, encodeURIComponent(String(requestParameters.otherNumber)) ), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => EmptyResponseDtoFromJSON(jsonValue) ); } /** * Delete all messages in an SMS thread * Delete messages in a phone thread */ async deletePhoneMessageThreadItems( requestParameters: DeletePhoneMessageThreadItemsRequest, initOverrides?: RequestInit ): Promise<EmptyResponseDto> { const response = await this.deletePhoneMessageThreadItemsRaw( requestParameters, initOverrides ); return await response.value(); } /** * Remove phone number from account * Delete a phone number */ async deletePhoneNumberRaw( requestParameters: DeletePhoneNumberRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<void>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling deletePhoneNumber.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}`.replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.VoidApiResponse(response); } /** * Remove phone number from account * Delete a phone number */ async deletePhoneNumber( requestParameters: DeletePhoneNumberRequest, initOverrides?: RequestInit ): Promise<void> { await this.deletePhoneNumberRaw(requestParameters, initOverrides); } /** * Delete a phone pool and release any active leases from that pool * Delete phone pool */ async deletePhonePoolRaw( requestParameters: DeletePhonePoolRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<void>> { if ( requestParameters.poolId === null || requestParameters.poolId === undefined ) { throw new runtime.RequiredError( 'poolId', 'Required parameter requestParameters.poolId was null or undefined when calling deletePhonePool.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools/{poolId}`.replace( `{${'poolId'}}`, encodeURIComponent(String(requestParameters.poolId)) ), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.VoidApiResponse(response); } /** * Delete a phone pool and release any active leases from that pool * Delete phone pool */ async deletePhonePool( requestParameters: DeletePhonePoolRequest, initOverrides?: RequestInit ): Promise<void> { await this.deletePhonePoolRaw(requestParameters, initOverrides); } /** * List all message threads for all phones * Get the latest messages for all phones */ async getAllPhoneMessageThreadsRaw( requestParameters: GetAllPhoneMessageThreadsRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PagePhoneMessageThreadProjection>> { const queryParameters: any = {}; if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.size !== undefined) { queryParameters['size'] = requestParameters.size; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/message-threads`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PagePhoneMessageThreadProjectionFromJSON(jsonValue) ); } /** * List all message threads for all phones * Get the latest messages for all phones */ async getAllPhoneMessageThreads( requestParameters: GetAllPhoneMessageThreadsRequest, initOverrides?: RequestInit ): Promise<PagePhoneMessageThreadProjection> { const response = await this.getAllPhoneMessageThreadsRaw( requestParameters, initOverrides ); return await response.value(); } /** * List released or deleted phone numbers * Get all phone number releases */ async getAllPhoneNumberReleasesRaw( requestParameters: GetAllPhoneNumberReleasesRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PagePhoneNumberReleaseProjection>> { const queryParameters: any = {}; if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.size !== undefined) { queryParameters['size'] = requestParameters.size; } if (requestParameters.sort !== undefined) { queryParameters['sort'] = requestParameters.sort; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/releases`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PagePhoneNumberReleaseProjectionFromJSON(jsonValue) ); } /** * List released or deleted phone numbers * Get all phone number releases */ async getAllPhoneNumberReleases( requestParameters: GetAllPhoneNumberReleasesRequest, initOverrides?: RequestInit ): Promise<PagePhoneNumberReleaseProjection> { const response = await this.getAllPhoneNumberReleasesRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get the status of phone usage consent * Get consent status */ async getConsentStatusRaw( initOverrides?: RequestInit ): Promise<runtime.ApiResponse<ConsentStatusDto>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/consent`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => ConsentStatusDtoFromJSON(jsonValue) ); } /** * Get the status of phone usage consent * Get consent status */ async getConsentStatus( initOverrides?: RequestInit ): Promise<ConsentStatusDto> { const response = await this.getConsentStatusRaw(initOverrides); return await response.value(); } /** * Fetch an emergency address by ID * Get an emergency address */ async getEmergencyAddressRaw( requestParameters: GetEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<EmergencyAddress>> { if ( requestParameters.addressId === null || requestParameters.addressId === undefined ) { throw new runtime.RequiredError( 'addressId', 'Required parameter requestParameters.addressId was null or undefined when calling getEmergencyAddress.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/emergency-addresses/{addressId}`.replace( `{${'addressId'}}`, encodeURIComponent(String(requestParameters.addressId)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => EmergencyAddressFromJSON(jsonValue) ); } /** * Fetch an emergency address by ID * Get an emergency address */ async getEmergencyAddress( requestParameters: GetEmergencyAddressRequest, initOverrides?: RequestInit ): Promise<EmergencyAddress> { const response = await this.getEmergencyAddressRaw( requestParameters, initOverrides ); return await response.value(); } /** * List emergency addresses * Get emergency addresses */ async getEmergencyAddressesRaw( initOverrides?: RequestInit ): Promise<runtime.ApiResponse<Array<EmergencyAddressDto>>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/emergency-addresses`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(EmergencyAddressDtoFromJSON) ); } /** * List emergency addresses * Get emergency addresses */ async getEmergencyAddresses( initOverrides?: RequestInit ): Promise<Array<EmergencyAddressDto>> { const response = await this.getEmergencyAddressesRaw(initOverrides); return await response.value(); } /** * Get a phone pool by name or create it if it does not exist * Get or create phone pool */ async getOrCreatePhonePoolRaw( requestParameters: GetOrCreatePhonePoolRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhonePoolDetailDto>> { if ( requestParameters.getOrCreatePhonePoolOptions === null || requestParameters.getOrCreatePhonePoolOptions === undefined ) { throw new runtime.RequiredError( 'getOrCreatePhonePoolOptions', 'Required parameter requestParameters.getOrCreatePhonePoolOptions was null or undefined when calling getOrCreatePhonePool.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/pools/get-or-create`, method: 'POST', headers: headerParameters, query: queryParameters, body: GetOrCreatePhonePoolOptionsToJSON( requestParameters.getOrCreatePhonePoolOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhonePoolDetailDtoFromJSON(jsonValue) ); } /** * Get a phone pool by name or create it if it does not exist * Get or create phone pool */ async getOrCreatePhonePool( requestParameters: GetOrCreatePhonePoolRequest, initOverrides?: RequestInit ): Promise<PhonePoolDetailDto> { const response = await this.getOrCreatePhonePoolRaw( requestParameters, initOverrides ); return await response.value(); } /** * List message thread messages for a phone message thread * Get messages in a phone thread */ async getPhoneMessageThreadItemsRaw( requestParameters: GetPhoneMessageThreadItemsRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PagePhoneMessageThreadItemProjection>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling getPhoneMessageThreadItems.' ); } if ( requestParameters.otherNumber === null || requestParameters.otherNumber === undefined ) { throw new runtime.RequiredError( 'otherNumber', 'Required parameter requestParameters.otherNumber was null or undefined when calling getPhoneMessageThreadItems.' ); } const queryParameters: any = {}; if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.size !== undefined) { queryParameters['size'] = requestParameters.size; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}` .replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ) .replace( `{${'otherNumber'}}`, encodeURIComponent(String(requestParameters.otherNumber)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PagePhoneMessageThreadItemProjectionFromJSON(jsonValue) ); } /** * List message thread messages for a phone message thread * Get messages in a phone thread */ async getPhoneMessageThreadItems( requestParameters: GetPhoneMessageThreadItemsRequest, initOverrides?: RequestInit ): Promise<PagePhoneMessageThreadItemProjection> { const response = await this.getPhoneMessageThreadItemsRaw( requestParameters, initOverrides ); return await response.value(); } /** * List message threads for a phone * Get the latest message preview for a thread */ async getPhoneMessageThreadsRaw( requestParameters: GetPhoneMessageThreadsRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PagePhoneMessageThreadProjection>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling getPhoneMessageThreads.' ); } const queryParameters: any = {}; if (requestParameters.page !== undefined) { queryParameters['page'] = requestParameters.page; } if (requestParameters.size !== undefined) { queryParameters['size'] = requestParameters.size; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}/message-threads`.replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PagePhoneMessageThreadProjectionFromJSON(jsonValue) ); } /** * List message threads for a phone * Get the latest message preview for a thread */ async getPhoneMessageThreads( requestParameters: GetPhoneMessageThreadsRequest, initOverrides?: RequestInit ): Promise<PagePhoneMessageThreadProjection> { const response = await this.getPhoneMessageThreadsRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get a phone number by ID * Get a phone number by ID */ async getPhoneNumberRaw( requestParameters: GetPhoneNumberRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhoneNumberDto>> { if ( requestParameters.phoneNumberId === null || requestParameters.phoneNumberId === undefined ) { throw new runtime.RequiredError( 'phoneNumberId', 'Required parameter requestParameters.phoneNumberId was null or undefined when calling getPhoneNumber.' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/{phoneNumberId}`.replace( `{${'phoneNumberId'}}`, encodeURIComponent(String(requestParameters.phoneNumberId)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => PhoneNumberDtoFromJSON(jsonValue) ); } /** * Get a phone number by ID * Get a phone number by ID */ async getPhoneNumber( requestParameters: GetPhoneNumberRequest, initOverrides?: RequestInit ): Promise<PhoneNumberDto> { const response = await this.getPhoneNumberRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get a phone number by name * Get a phone number by name */ async getPhoneNumberByNameRaw( requestParameters: GetPhoneNumberByNameRequest, initOverrides?: RequestInit ): Promise<runtime.ApiResponse<PhoneNumberDto>> { if ( requestParameters.name === null || requestParameters.name === undefined ) { throw new runtime.RequiredError( 'name', 'Required parameter requestParameters.name was null or undefined when calling getPhoneNumberByName.' ); } const queryParameters: any = {}; if (requestParameters.name !== undefined) { queryParameters['name'] = requestParameters.name; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters['x-api-key'] = this.configuration.apiKey('x-api-key'); // API_KEY authentication } const response = await this.request( { path: `/phone/numbers/by-name`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides