/* 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 { CreateInboxPlacementTestOptions, CreateInboxPlacementTestOptionsFromJSON, CreateInboxPlacementTestOptionsToJSON, InboxPlacementAnalysisBundleDto, InboxPlacementAnalysisBundleDtoFromJSON, InboxPlacementAnalysisBundleDtoToJSON, InboxPlacementAnalyticsBreakdownDto, InboxPlacementAnalyticsBreakdownDtoFromJSON, InboxPlacementAnalyticsBreakdownDtoToJSON, InboxPlacementAnalyticsSeriesDto, InboxPlacementAnalyticsSeriesDtoFromJSON, InboxPlacementAnalyticsSeriesDtoToJSON, InboxPlacementPublicShareDto, InboxPlacementPublicShareDtoFromJSON, InboxPlacementPublicShareDtoToJSON, InboxPlacementTestResultsDto, InboxPlacementTestResultsDtoFromJSON, InboxPlacementTestResultsDtoToJSON, InboxPlacementTestRunDto, InboxPlacementTestRunDtoFromJSON, InboxPlacementTestRunDtoToJSON, } from '../models'; export interface CreateInboxPlacementTestRequest { createInboxPlacementTestOptions: CreateInboxPlacementTestOptions; } export interface ExportInboxPlacementTestResultsRequest { id: string; } export interface GetInboxPlacementAnalyticsBreakdownRequest { since?: Date; before?: Date; senderDomain?: string; fromEmail?: string; limit?: number; } export interface GetInboxPlacementAnalyticsSeriesRequest { since?: Date; before?: Date; bucket?: GetInboxPlacementAnalyticsSeriesBucketEnum; groupBy?: GetInboxPlacementAnalyticsSeriesGroupByEnum; senderDomain?: string; fromEmail?: string; runLimit?: number; groupLimit?: number; } export interface GetInboxPlacementPublicShareRequest { shareToken: string; } export interface GetInboxPlacementPublicShareAnalysisRequest { shareToken: string; } export interface GetInboxPlacementTestRequest { id: string; } export interface GetInboxPlacementTestAnalysisRequest { id: string; } export interface GetInboxPlacementTestResultsRequest { id: string; } export interface GetInboxPlacementTestsRequest { limit?: number; } /** * */ export class ApiInboxPlacementTestControllerApi extends runtime.BaseAPI { /** * Create a new direct-send inbox placement test */ async createInboxPlacementTestRaw( requestParameters: CreateInboxPlacementTestRequest, initOverrides?: RequestInit ): Promise> { if ( requestParameters.createInboxPlacementTestOptions === null || requestParameters.createInboxPlacementTestOptions === undefined ) { throw new runtime.RequiredError( 'createInboxPlacementTestOptions', 'Required parameter requestParameters.createInboxPlacementTestOptions was null or undefined when calling createInboxPlacementTest.' ); } 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: `/inbox-placement-tests`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreateInboxPlacementTestOptionsToJSON( requestParameters.createInboxPlacementTestOptions ), }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementTestRunDtoFromJSON(jsonValue) ); } /** * Create a new direct-send inbox placement test */ async createInboxPlacementTest( requestParameters: CreateInboxPlacementTestRequest, initOverrides?: RequestInit ): Promise { const response = await this.createInboxPlacementTestRaw( requestParameters, initOverrides ); return await response.value(); } /** * Export one row per placement target, including run-level delivery totals, 0-10 placement scores, and target placement outcome fields. * Export inbox placement test results as CSV */ async exportInboxPlacementTestResultsRaw( requestParameters: ExportInboxPlacementTestResultsRequest, initOverrides?: RequestInit ): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError( 'id', 'Required parameter requestParameters.id was null or undefined when calling exportInboxPlacementTestResults.' ); } 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: `/inbox-placement-tests/{id}/results/export`.replace( `{${'id'}}`, encodeURIComponent(String(requestParameters.id)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.VoidApiResponse(response); } /** * Export one row per placement target, including run-level delivery totals, 0-10 placement scores, and target placement outcome fields. * Export inbox placement test results as CSV */ async exportInboxPlacementTestResults( requestParameters: ExportInboxPlacementTestResultsRequest, initOverrides?: RequestInit ): Promise { await this.exportInboxPlacementTestResultsRaw( requestParameters, initOverrides ); } /** * Return aggregated folder, provider, sender-domain, and from-email breakdowns for inbox placement runs in a time range. * Get inbox placement analytics breakdowns */ async getInboxPlacementAnalyticsBreakdownRaw( requestParameters: GetInboxPlacementAnalyticsBreakdownRequest, initOverrides?: RequestInit ): Promise> { const queryParameters: any = {}; if (requestParameters.since !== undefined) { queryParameters['since'] = (requestParameters.since as any).toISOString(); } if (requestParameters.before !== undefined) { queryParameters['before'] = ( requestParameters.before as any ).toISOString(); } if (requestParameters.senderDomain !== undefined) { queryParameters['senderDomain'] = requestParameters.senderDomain; } if (requestParameters.fromEmail !== undefined) { queryParameters['fromEmail'] = requestParameters.fromEmail; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } 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: `/inbox-placement-tests/analytics/breakdown`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementAnalyticsBreakdownDtoFromJSON(jsonValue) ); } /** * Return aggregated folder, provider, sender-domain, and from-email breakdowns for inbox placement runs in a time range. * Get inbox placement analytics breakdowns */ async getInboxPlacementAnalyticsBreakdown( requestParameters: GetInboxPlacementAnalyticsBreakdownRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementAnalyticsBreakdownRaw( requestParameters, initOverrides ); return await response.value(); } /** * Return chart-ready inbox placement metrics over time, with optional sender/domain filters and grouped comparisons for sender domains or from-email addresses. * Get inbox placement analytics time series */ async getInboxPlacementAnalyticsSeriesRaw( requestParameters: GetInboxPlacementAnalyticsSeriesRequest, initOverrides?: RequestInit ): Promise> { const queryParameters: any = {}; if (requestParameters.since !== undefined) { queryParameters['since'] = (requestParameters.since as any).toISOString(); } if (requestParameters.before !== undefined) { queryParameters['before'] = ( requestParameters.before as any ).toISOString(); } if (requestParameters.bucket !== undefined) { queryParameters['bucket'] = requestParameters.bucket; } if (requestParameters.groupBy !== undefined) { queryParameters['groupBy'] = requestParameters.groupBy; } if (requestParameters.senderDomain !== undefined) { queryParameters['senderDomain'] = requestParameters.senderDomain; } if (requestParameters.fromEmail !== undefined) { queryParameters['fromEmail'] = requestParameters.fromEmail; } if (requestParameters.runLimit !== undefined) { queryParameters['runLimit'] = requestParameters.runLimit; } if (requestParameters.groupLimit !== undefined) { queryParameters['groupLimit'] = requestParameters.groupLimit; } 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: `/inbox-placement-tests/analytics/series`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementAnalyticsSeriesDtoFromJSON(jsonValue) ); } /** * Return chart-ready inbox placement metrics over time, with optional sender/domain filters and grouped comparisons for sender domains or from-email addresses. * Get inbox placement analytics time series */ async getInboxPlacementAnalyticsSeries( requestParameters: GetInboxPlacementAnalyticsSeriesRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementAnalyticsSeriesRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get a public inbox placement share */ async getInboxPlacementPublicShareRaw( requestParameters: GetInboxPlacementPublicShareRequest, initOverrides?: RequestInit ): Promise> { if ( requestParameters.shareToken === null || requestParameters.shareToken === undefined ) { throw new runtime.RequiredError( 'shareToken', 'Required parameter requestParameters.shareToken was null or undefined when calling getInboxPlacementPublicShare.' ); } 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: `/inbox-placement-tests/share/{shareToken}`.replace( `{${'shareToken'}}`, encodeURIComponent(String(requestParameters.shareToken)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementPublicShareDtoFromJSON(jsonValue) ); } /** * Get a public inbox placement share */ async getInboxPlacementPublicShare( requestParameters: GetInboxPlacementPublicShareRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementPublicShareRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get public inbox placement share analysis */ async getInboxPlacementPublicShareAnalysisRaw( requestParameters: GetInboxPlacementPublicShareAnalysisRequest, initOverrides?: RequestInit ): Promise> { if ( requestParameters.shareToken === null || requestParameters.shareToken === undefined ) { throw new runtime.RequiredError( 'shareToken', 'Required parameter requestParameters.shareToken was null or undefined when calling getInboxPlacementPublicShareAnalysis.' ); } 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: `/inbox-placement-tests/share/{shareToken}/analysis`.replace( `{${'shareToken'}}`, encodeURIComponent(String(requestParameters.shareToken)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementAnalysisBundleDtoFromJSON(jsonValue) ); } /** * Get public inbox placement share analysis */ async getInboxPlacementPublicShareAnalysis( requestParameters: GetInboxPlacementPublicShareAnalysisRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementPublicShareAnalysisRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get inbox placement test run */ async getInboxPlacementTestRaw( requestParameters: GetInboxPlacementTestRequest, initOverrides?: RequestInit ): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError( 'id', 'Required parameter requestParameters.id was null or undefined when calling getInboxPlacementTest.' ); } 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: `/inbox-placement-tests/{id}`.replace( `{${'id'}}`, encodeURIComponent(String(requestParameters.id)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementTestRunDtoFromJSON(jsonValue) ); } /** * Get inbox placement test run */ async getInboxPlacementTest( requestParameters: GetInboxPlacementTestRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementTestRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get inbox placement run analysis */ async getInboxPlacementTestAnalysisRaw( requestParameters: GetInboxPlacementTestAnalysisRequest, initOverrides?: RequestInit ): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError( 'id', 'Required parameter requestParameters.id was null or undefined when calling getInboxPlacementTestAnalysis.' ); } 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: `/inbox-placement-tests/{id}/analysis`.replace( `{${'id'}}`, encodeURIComponent(String(requestParameters.id)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementAnalysisBundleDtoFromJSON(jsonValue) ); } /** * Get inbox placement run analysis */ async getInboxPlacementTestAnalysis( requestParameters: GetInboxPlacementTestAnalysisRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementTestAnalysisRaw( requestParameters, initOverrides ); return await response.value(); } /** * Get inbox placement test results */ async getInboxPlacementTestResultsRaw( requestParameters: GetInboxPlacementTestResultsRequest, initOverrides?: RequestInit ): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError( 'id', 'Required parameter requestParameters.id was null or undefined when calling getInboxPlacementTestResults.' ); } 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: `/inbox-placement-tests/{id}/results`.replace( `{${'id'}}`, encodeURIComponent(String(requestParameters.id)) ), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => InboxPlacementTestResultsDtoFromJSON(jsonValue) ); } /** * Get inbox placement test results */ async getInboxPlacementTestResults( requestParameters: GetInboxPlacementTestResultsRequest, initOverrides?: RequestInit ): Promise { const response = await this.getInboxPlacementTestResultsRaw( requestParameters, initOverrides ); return await response.value(); } /** * List inbox placement test runs */ async getInboxPlacementTestsRaw( requestParameters: GetInboxPlacementTestsRequest, initOverrides?: RequestInit ): Promise>> { const queryParameters: any = {}; if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } 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: `/inbox-placement-tests`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides ); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(InboxPlacementTestRunDtoFromJSON) ); } /** * List inbox placement test runs */ async getInboxPlacementTests( requestParameters: GetInboxPlacementTestsRequest, initOverrides?: RequestInit ): Promise> { const response = await this.getInboxPlacementTestsRaw( requestParameters, initOverrides ); return await response.value(); } } /** * @export * @enum {string} */ export enum GetInboxPlacementAnalyticsSeriesBucketEnum { HOUR = 'HOUR', DAY = 'DAY', } /** * @export * @enum {string} */ export enum GetInboxPlacementAnalyticsSeriesGroupByEnum { NONE = 'NONE', SENDER_DOMAIN = 'SENDER_DOMAIN', FROM_EMAIL = 'FROM_EMAIL', }