/* tslint:disable */
/* eslint-disable */
/**
 * notifier-registry
 * notifier-registry
 *
 * The version of the OpenAPI document: 1.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


import { Configuration } from './configuration';
import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';

/**
 * 
 * @export
 * @interface Channel
 */
export interface Channel {
    /**
     * 
     * @type {string}
     * @memberof Channel
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Channel
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof Channel
     */
    description?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Channel
     */
    store?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof Channel
     */
    notifyOnDelivery?: boolean;
}
/**
 * 
 * @export
 * @interface ChannelTO
 */
export interface ChannelTO {
    /**
     * 
     * @type {string}
     * @memberof ChannelTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof ChannelTO
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof ChannelTO
     */
    description?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ChannelTO
     */
    store?: boolean;
}
/**
 * 
 * @export
 * @interface Delivery
 */
export interface Delivery {
    /**
     * 
     * @type {string}
     * @memberof Delivery
     */
    shipped?: string;
    /**
     * 
     * @type {string}
     * @memberof Delivery
     */
    delivered?: string;
    /**
     * 
     * @type {string}
     * @memberof Delivery
     */
    till?: string;
    /**
     * 
     * @type {string}
     * @memberof Delivery
     */
    nextTry?: string;
    /**
     * 
     * @type {number}
     * @memberof Delivery
     */
    attempts?: number;
}
/**
 * 
 * @export
 * @interface Document
 */
export interface Document {
    [key: string]: object | any;

    /**
     * 
     * @type {boolean}
     * @memberof Document
     */
    empty?: boolean;
}
/**
 * 
 * @export
 * @interface Envelope
 */
export interface Envelope {
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    id?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Envelope
     */
    checked?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    traceId?: string;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    createDate?: string;
    /**
     * 
     * @type {object}
     * @memberof Envelope
     */
    messageContext?: object;
    /**
     * 
     * @type {object}
     * @memberof Envelope
     */
    body?: object;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    channel?: string;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    templateId?: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof Envelope
     */
    extra?: { [key: string]: string; };
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    event?: string;
    /**
     * 
     * @type {Delivery}
     * @memberof Envelope
     */
    delivery?: Delivery;
    /**
     * 
     * @type {number}
     * @memberof Envelope
     */
    status?: number;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    source?: string;
    /**
     * 
     * @type {string}
     * @memberof Envelope
     */
    error?: string;
    /**
     * 
     * @type {Recipient}
     * @memberof Envelope
     */
    recipient?: Recipient;
}
/**
 * 
 * @export
 * @interface EnvelopeCount
 */
export interface EnvelopeCount {
    /**
     * 
     * @type {number}
     * @memberof EnvelopeCount
     */
    all?: number;
    /**
     * 
     * @type {number}
     * @memberof EnvelopeCount
     */
    _new?: number;
}
/**
 * 
 * @export
 * @interface EnvelopeTO
 */
export interface EnvelopeTO {
    /**
     * 
     * @type {string}
     * @memberof EnvelopeTO
     */
    id?: string;
    /**
     * 
     * @type {boolean}
     * @memberof EnvelopeTO
     */
    checked?: boolean;
    /**
     * 
     * @type {object}
     * @memberof EnvelopeTO
     */
    messageContext?: object;
    /**
     * 
     * @type {string}
     * @memberof EnvelopeTO
     */
    source?: string;
    /**
     * 
     * @type {number}
     * @memberof EnvelopeTO
     */
    status?: number;
    /**
     * 
     * @type {RecipientTO}
     * @memberof EnvelopeTO
     */
    recipient?: RecipientTO;
    /**
     * 
     * @type {string}
     * @memberof EnvelopeTO
     */
    event?: string;
    /**
     * 
     * @type {object}
     * @memberof EnvelopeTO
     */
    body?: object;
    /**
     * 
     * @type {string}
     * @memberof EnvelopeTO
     */
    channel?: string;
}
/**
 * 
 * @export
 * @interface Event
 */
export interface Event {
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    description?: string;
    /**
     * 
     * @type {EventType}
     * @memberof Event
     */
    type?: EventType;
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    group?: string;
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    groupTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof Event
     */
    subGroup?: string;
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Event
     */
    trigger?: { [key: string]: object; };
    /**
     * 
     * @type {Array<string>}
     * @memberof Event
     */
    templates?: Array<string>;
}
/**
 * 
 * @export
 * @interface EventTO
 */
export interface EventTO {
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    description?: string;
    /**
     * 
     * @type {NamedTO}
     * @memberof EventTO
     */
    type?: NamedTO;
    /**
     * 
     * @type {Array<string>}
     * @memberof EventTO
     */
    templates?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    group?: string;
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    groupTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof EventTO
     */
    subGroup?: string;
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof EventTO
     */
    trigger?: { [key: string]: object; };
}
/**
 * 
 * @export
 * @interface EventType
 */
export interface EventType {
    /**
     * 
     * @type {string}
     * @memberof EventType
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof EventType
     */
    name?: string;
}
/**
 * 
 * @export
 * @interface GroupRule
 */
export interface GroupRule {
    /**
     * 
     * @type {string}
     * @memberof GroupRule
     */
    custom?: GroupRuleCustomEnum;
    /**
     * 
     * @type {string}
     * @memberof GroupRule
     */
    root?: GroupRuleRootEnum;
}

/**
    * @export
    * @enum {string}
    */
export enum GroupRuleCustomEnum {
    All = 'ALL',
    Trace = 'TRACE',
    Debug = 'DEBUG',
    Info = 'INFO',
    Warn = 'WARN',
    Error = 'ERROR',
    Off = 'OFF'
}
/**
    * @export
    * @enum {string}
    */
export enum GroupRuleRootEnum {
    All = 'ALL',
    Trace = 'TRACE',
    Debug = 'DEBUG',
    Info = 'INFO',
    Warn = 'WARN',
    Error = 'ERROR',
    Off = 'OFF'
}

/**
 * 
 * @export
 * @interface LogTO
 */
export interface LogTO {
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    date?: string;
    /**
     * 
     * @type {boolean}
     * @memberof LogTO
     */
    success?: boolean;
    /**
     * 
     * @type {EnvelopeTO}
     * @memberof LogTO
     */
    envelope?: EnvelopeTO;
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    messageTemplateId?: string;
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    error?: string;
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    body?: string;
    /**
     * 
     * @type {string}
     * @memberof LogTO
     */
    title?: string;
}
/**
 * 
 * @export
 * @interface MessageLog
 */
export interface MessageLog {
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    date?: string;
    /**
     * 
     * @type {boolean}
     * @memberof MessageLog
     */
    success?: boolean;
    /**
     * 
     * @type {Envelope}
     * @memberof MessageLog
     */
    envelope?: Envelope;
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    messageTemplateId?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    error?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    body?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageLog
     */
    title?: string;
}
/**
 * Список найденных объектов
 * @export
 * @interface MessageTemplate
 */
export interface MessageTemplate {
    /**
     * 
     * @type {string}
     * @memberof MessageTemplate
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageTemplate
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageTemplate
     */
    body?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageTemplate
     */
    title?: string;
    /**
     * 
     * @type {Channel}
     * @memberof MessageTemplate
     */
    channel?: Channel;
    /**
     * 
     * @type {TemplateEngine}
     * @memberof MessageTemplate
     */
    engine?: TemplateEngine;
    /**
     * 
     * @type {string}
     * @memberof MessageTemplate
     */
    language?: string;
}
/**
 * 
 * @export
 * @interface NamedTO
 */
export interface NamedTO {
    /**
     * 
     * @type {string}
     * @memberof NamedTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof NamedTO
     */
    name?: string;
}
/**
 * 
 * @export
 * @interface PageOfChannel
 */
export interface PageOfChannel {
    /**
     * 
     * @type {string}
     * @memberof PageOfChannel
     */
    sort?: string;
    /**
     * Общее колличество записей в наборе
     * @type {number}
     * @memberof PageOfChannel
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfChannel
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 100)
     * @type {number}
     * @memberof PageOfChannel
     */
    perPage?: number;
    /**
     * Список найденных объектов
     * @type {Array<Channel>}
     * @memberof PageOfChannel
     */
    items?: Array<Channel>;
}
/**
 * 
 * @export
 * @interface PageOfEnvelope
 */
export interface PageOfEnvelope {
    /**
     * 
     * @type {string}
     * @memberof PageOfEnvelope
     */
    sort?: string;
    /**
     * Общее колличество записей в наборе
     * @type {number}
     * @memberof PageOfEnvelope
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfEnvelope
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 100)
     * @type {number}
     * @memberof PageOfEnvelope
     */
    perPage?: number;
    /**
     * Список найденных объектов
     * @type {Array<Envelope>}
     * @memberof PageOfEnvelope
     */
    items?: Array<Envelope>;
}
/**
 * 
 * @export
 * @interface PageOfEvent
 */
export interface PageOfEvent {
    /**
     * 
     * @type {string}
     * @memberof PageOfEvent
     */
    sort?: string;
    /**
     * Общее колличество записей в наборе
     * @type {number}
     * @memberof PageOfEvent
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfEvent
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 100)
     * @type {number}
     * @memberof PageOfEvent
     */
    perPage?: number;
    /**
     * Список найденных объектов
     * @type {Array<Event>}
     * @memberof PageOfEvent
     */
    items?: Array<Event>;
}
/**
 * 
 * @export
 * @interface PageOfMessageLog
 */
export interface PageOfMessageLog {
    /**
     * 
     * @type {string}
     * @memberof PageOfMessageLog
     */
    sort?: string;
    /**
     * Общее колличество записей в наборе
     * @type {number}
     * @memberof PageOfMessageLog
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfMessageLog
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 100)
     * @type {number}
     * @memberof PageOfMessageLog
     */
    perPage?: number;
    /**
     * Список найденных объектов
     * @type {Array<MessageLog>}
     * @memberof PageOfMessageLog
     */
    items?: Array<MessageLog>;
}
/**
 * 
 * @export
 * @interface PageOfMessageTemplate
 */
export interface PageOfMessageTemplate {
    /**
     * 
     * @type {string}
     * @memberof PageOfMessageTemplate
     */
    sort?: string;
    /**
     * Общее колличество записей в наборе
     * @type {number}
     * @memberof PageOfMessageTemplate
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfMessageTemplate
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 100)
     * @type {number}
     * @memberof PageOfMessageTemplate
     */
    perPage?: number;
    /**
     * Список найденных объектов
     * @type {Array<MessageTemplate>}
     * @memberof PageOfMessageTemplate
     */
    items?: Array<MessageTemplate>;
}
/**
 * 
 * @export
 * @interface Placeholder
 */
export interface Placeholder {
    /**
     * 
     * @type {string}
     * @memberof Placeholder
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Placeholder
     */
    code?: string;
    /**
     * 
     * @type {string}
     * @memberof Placeholder
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof Placeholder
     */
    type?: string;
    /**
     * 
     * @type {string}
     * @memberof Placeholder
     */
    path?: string;
}
/**
 * 
 * @export
 * @interface PlaceholderTO
 */
export interface PlaceholderTO {
    /**
     * 
     * @type {string}
     * @memberof PlaceholderTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof PlaceholderTO
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof PlaceholderTO
     */
    code?: string;
    /**
     * 
     * @type {string}
     * @memberof PlaceholderTO
     */
    type?: string;
    /**
     * 
     * @type {string}
     * @memberof PlaceholderTO
     */
    path?: string;
}
/**
 * 
 * @export
 * @interface Recipient
 */
export interface Recipient {
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    user?: string;
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    domain?: string;
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    region?: string;
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    address?: string;
    /**
     * 
     * @type {string}
     * @memberof Recipient
     */
    description?: string;
}
/**
 * 
 * @export
 * @interface RecipientTO
 */
export interface RecipientTO {
    /**
     * 
     * @type {string}
     * @memberof RecipientTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof RecipientTO
     */
    user?: string;
    /**
     * 
     * @type {string}
     * @memberof RecipientTO
     */
    address?: string;
    /**
     * 
     * @type {string}
     * @memberof RecipientTO
     */
    description?: string;
}
/**
 * 
 * @export
 * @interface Response
 */
export interface Response {
    /**
     * 
     * @type {boolean}
     * @memberof Response
     */
    success?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Response
     */
    message?: string;
}
/**
 * 
 * @export
 * @interface Rule
 */
export interface Rule {
    /**
     * 
     * @type {string}
     * @memberof Rule
     */
    logger?: string;
    /**
     * 
     * @type {string}
     * @memberof Rule
     */
    level?: RuleLevelEnum;
}

/**
    * @export
    * @enum {string}
    */
export enum RuleLevelEnum {
    All = 'ALL',
    Trace = 'TRACE',
    Debug = 'DEBUG',
    Info = 'INFO',
    Warn = 'WARN',
    Error = 'ERROR',
    Off = 'OFF'
}

/**
 * 
 * @export
 * @interface Sort
 */
export interface Sort {
    /**
     * 
     * @type {object}
     * @memberof Sort
     */
    sorter?: object;
    /**
     * 
     * @type {boolean}
     * @memberof Sort
     */
    sorted?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof Sort
     */
    unsorted?: boolean;
}
/**
 * 
 * @export
 * @interface TemplateEngine
 */
export interface TemplateEngine {
    /**
     * 
     * @type {string}
     * @memberof TemplateEngine
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof TemplateEngine
     */
    name?: string;
}
/**
 * 
 * @export
 * @interface TemplateTO
 */
export interface TemplateTO {
    /**
     * 
     * @type {string}
     * @memberof TemplateTO
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof TemplateTO
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof TemplateTO
     */
    body?: string;
    /**
     * 
     * @type {string}
     * @memberof TemplateTO
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof TemplateTO
     */
    language?: string;
    /**
     * 
     * @type {NamedTO}
     * @memberof TemplateTO
     */
    channel?: NamedTO;
    /**
     * 
     * @type {NamedTO}
     * @memberof TemplateTO
     */
    engine?: NamedTO;
}
/**
 * 
 * @export
 * @interface UserPage
 */
export interface UserPage {
    /**
     * 
     * @type {Sort}
     * @memberof UserPage
     */
    sort?: Sort;
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof UserPage
     */
    filter?: { [key: string]: object; };
    /**
     * 
     * @type {string}
     * @memberof UserPage
     */
    userId?: string;
    /**
     * 
     * @type {string}
     * @memberof UserPage
     */
    domainId?: string;
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof UserPage
     */
    domainFilter?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof UserPage
     */
    regionFilter?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof UserPage
     */
    userFilter?: { [key: string]: object; };
    /**
     * 
     * @type {number}
     * @memberof UserPage
     */
    offset?: number;
    /**
     * 
     * @type {number}
     * @memberof UserPage
     */
    pageSize?: number;
    /**
     * 
     * @type {number}
     * @memberof UserPage
     */
    pageNumber?: number;
    /**
     * 
     * @type {object}
     * @memberof UserPage
     */
    sorter?: object;
    /**
     * 
     * @type {boolean}
     * @memberof UserPage
     */
    unpaged?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof UserPage
     */
    paged?: boolean;
}

/**
 * ChannelsApi - axios parameter creator
 * @export
 */
export const ChannelsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Метод создаёт канал
         * @summary Создать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createChannel: async (channelTO: ChannelTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'channelTO' is not null or undefined
            assertParamExists('createChannel', 'channelTO', channelTO)
            const localVarPath = `/channels`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(channelTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Удаляет канал по идентификатору
         * @summary Удалить канал по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteChannel: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteChannel', 'id', id)
            const localVarPath = `/channels/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Удаляет все каналы
         * @summary Удалить все каналы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteChannels: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/channels/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает объект канала по идентификатору
         * @summary Получить канал
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getChannel: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getChannel', 'id', id)
            const localVarPath = `/channels/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список каналов. Оборачивает отсортированную коллекцию в объект с пагинацией.
         * @summary Получить список каналов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingChannels: async (page?: number, size?: number, sort?: object, filter?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/channels/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (filter !== undefined) {
                localVarQueryParameter['filter'] = filter;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает список каналов
         * @summary Получить список каналов
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchChannels: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/channels`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод редактирует канал
         * @summary Редактировать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateChannel: async (channelTO: ChannelTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'channelTO' is not null or undefined
            assertParamExists('updateChannel', 'channelTO', channelTO)
            const localVarPath = `/channels`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(channelTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * ChannelsApi - functional programming interface
 * @export
 */
export const ChannelsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ChannelsApiAxiosParamCreator(configuration)
    return {
        /**
         * Метод создаёт канал
         * @summary Создать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createChannel(channelTO: ChannelTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Channel>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createChannel(channelTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Удаляет канал по идентификатору
         * @summary Удалить канал по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteChannel(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<boolean>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteChannel(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Удаляет все каналы
         * @summary Удалить все каналы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteChannels(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteChannels(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает объект канала по идентификатору
         * @summary Получить канал
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getChannel(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Channel>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getChannel(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список каналов. Оборачивает отсортированную коллекцию в объект с пагинацией.
         * @summary Получить список каналов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingChannels(page?: number, size?: number, sort?: object, filter?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfChannel>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingChannels(page, size, sort, filter, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает список каналов
         * @summary Получить список каналов
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchChannels(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Channel>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchChannels(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод редактирует канал
         * @summary Редактировать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateChannel(channelTO: ChannelTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Channel>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateChannel(channelTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ChannelsApi - factory interface
 * @export
 */
export const ChannelsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ChannelsApiFp(configuration)
    return {
        /**
         * Метод создаёт канал
         * @summary Создать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createChannel(channelTO: ChannelTO, options?: any): AxiosPromise<Channel> {
            return localVarFp.createChannel(channelTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Удаляет канал по идентификатору
         * @summary Удалить канал по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteChannel(id: string, body?: string, options?: any): AxiosPromise<boolean> {
            return localVarFp.deleteChannel(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Удаляет все каналы
         * @summary Удалить все каналы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteChannels(options?: any): AxiosPromise<string> {
            return localVarFp.deleteChannels(options).then((request) => request(axios, basePath));
        },
        /**
         * Получает объект канала по идентификатору
         * @summary Получить канал
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getChannel(id: string, body?: string, options?: any): AxiosPromise<Channel> {
            return localVarFp.getChannel(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список каналов. Оборачивает отсортированную коллекцию в объект с пагинацией.
         * @summary Получить список каналов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingChannels(page?: number, size?: number, sort?: object, filter?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfChannel> {
            return localVarFp.pagingChannels(page, size, sort, filter, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает список каналов
         * @summary Получить список каналов
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchChannels(userPage?: UserPage, options?: any): AxiosPromise<Array<Channel>> {
            return localVarFp.searchChannels(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод редактирует канал
         * @summary Редактировать канал
         * @param {ChannelTO} channelTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateChannel(channelTO: ChannelTO, options?: any): AxiosPromise<Channel> {
            return localVarFp.updateChannel(channelTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ChannelsApi - object-oriented interface
 * @export
 * @class ChannelsApi
 * @extends {BaseAPI}
 */
export class ChannelsApi extends BaseAPI {
    /**
     * Метод создаёт канал
     * @summary Создать канал
     * @param {ChannelTO} channelTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public createChannel(channelTO: ChannelTO, options?: any) {
        return ChannelsApiFp(this.configuration).createChannel(channelTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Удаляет канал по идентификатору
     * @summary Удалить канал по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public deleteChannel(id: string, body?: string, options?: any) {
        return ChannelsApiFp(this.configuration).deleteChannel(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Удаляет все каналы
     * @summary Удалить все каналы
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public deleteChannels(options?: any) {
        return ChannelsApiFp(this.configuration).deleteChannels(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает объект канала по идентификатору
     * @summary Получить канал
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public getChannel(id: string, body?: string, options?: any) {
        return ChannelsApiFp(this.configuration).getChannel(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список каналов. Оборачивает отсортированную коллекцию в объект с пагинацией.
     * @summary Получить список каналов с пагинацией и сортировкой
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {object} [sort] 
     * @param {string} [filter] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public pagingChannels(page?: number, size?: number, sort?: object, filter?: string, userPage?: UserPage, options?: any) {
        return ChannelsApiFp(this.configuration).pagingChannels(page, size, sort, filter, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает список каналов
     * @summary Получить список каналов
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public searchChannels(userPage?: UserPage, options?: any) {
        return ChannelsApiFp(this.configuration).searchChannels(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод редактирует канал
     * @summary Редактировать канал
     * @param {ChannelTO} channelTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ChannelsApi
     */
    public updateChannel(channelTO: ChannelTO, options?: any) {
        return ChannelsApiFp(this.configuration).updateChannel(channelTO, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * EnvelopesApi - axios parameter creator
 * @export
 */
export const EnvelopesApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Метод получает количество объектов Envelope с состоянием checked и unchecked
         * @summary Получить количество объектов Envelope
         * @param {string} [authorization] Авторизация
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countEnvelopes1: async (authorization?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод создаёт сообщение.
         * @summary Создать сообщение
         * @param {Envelope} envelope 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createEnvelope1: async (envelope: Envelope, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelope' is not null or undefined
            assertParamExists('createEnvelope1', 'envelope', envelope)
            const localVarPath = `/envelopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(envelope, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDomainEnvelope1: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteDomainEnvelope1', 'id', id)
            const localVarPath = `/envelopes/domain/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDomainEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/domain`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет сообщение по идентификатору. 
         * @summary Удалить сообщение
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvelope1: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteEnvelope1', 'id', id)
            const localVarPath = `/envelopes/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все сообщения.
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvelopes1: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRegionEnvelope1: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteRegionEnvelope1', 'id', id)
            const localVarPath = `/envelopes/region/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRegionEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/region`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет сообщение пользователя по идентификатору. Проверяется принадлежность сообщения пользователю.
         * @summary Удалить сообщение пользователя
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteUserEnvelope1: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteUserEnvelope1', 'id', id)
            const localVarPath = `/envelopes/user/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все сообщения пользователя.
         * @summary Удалить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteUserEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/user`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainFilteredEnvelope1: async (id: string, body: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getDomainFilteredEnvelope1', 'id', id)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('getDomainFilteredEnvelope1', 'body', body)
            const localVarPath = `/envelopes/domain/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает сообщение по идентификатору.
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getEnvelope1: async (id: string, body: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getEnvelope1', 'id', id)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('getEnvelope1', 'body', body)
            const localVarPath = `/envelopes/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает объект сообщения принадлежащий пользователю
         * @summary Получить сообщение пользователя
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getFilteredEnvelope1: async (id: string, body: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getFilteredEnvelope1', 'id', id)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('getFilteredEnvelope1', 'body', body)
            const localVarPath = `/envelopes/user/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает спсиок шаблонов прменённых к сообщению.
         * @summary Получить список шаблонов по идентификатору сообщения
         * @param {string} envelopeId 
         * @param {string} channel 
         * @param {string} [authorization] Авторизация
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessageTemplateWithType1: async (envelopeId: string, channel: string, authorization?: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelopeId' is not null or undefined
            assertParamExists('getMessageTemplateWithType1', 'envelopeId', envelopeId)
            // verify required parameter 'channel' is not null or undefined
            assertParamExists('getMessageTemplateWithType1', 'channel', channel)
            const localVarPath = `/envelopes/{envelopeId}/templates`
                .replace(`{${"envelopeId"}}`, encodeURIComponent(String(envelopeId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (channel !== undefined) {
                localVarQueryParameter['channel'] = channel;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRegionFilteredEnvelope1: async (id: string, body: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getRegionFilteredEnvelope1', 'id', id)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('getRegionFilteredEnvelope1', 'body', body)
            const localVarPath = `/envelopes/region/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDomainEnvelopes1: async (authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/domain/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingEnvelopes1: async (authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingRegionEnvelopes1: async (authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/region/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает все сообщения пользователя с паинацией и сортировкой.
         * @summary Получить все сообщения пользователя с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingUserEnvelopes1: async (authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/user/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchDomainEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/domain`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список всех сообщений.
         * @summary Получить список сообщений
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchPagingEnvelopes1: async (authorization?: string, sort?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/search`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (authorization !== undefined && authorization !== null) {
                localVarHeaderParameter['Authorization'] = String(authorization);
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchRegionEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/region`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список всех сообщений пользователя.
         * @summary Получить список сообщений пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchUserEnvelopes1: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/envelopes/user`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomainEnvelopes1: async (envelopeTO: Array<EnvelopeTO>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelopeTO' is not null or undefined
            assertParamExists('updateDomainEnvelopes1', 'envelopeTO', envelopeTO)
            const localVarPath = `/envelopes/domain`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(envelopeTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод редактирует сообщение.
         * @summary Редактировать сообщение
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateEnvelope1: async (envelopeTO: Array<EnvelopeTO>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelopeTO' is not null or undefined
            assertParamExists('updateEnvelope1', 'envelopeTO', envelopeTO)
            const localVarPath = `/envelopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(envelopeTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRegionEnvelopes1: async (envelopeTO: Array<EnvelopeTO>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelopeTO' is not null or undefined
            assertParamExists('updateRegionEnvelopes1', 'envelopeTO', envelopeTO)
            const localVarPath = `/envelopes/region`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(envelopeTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод редактирует сообщение пользователя.
         * @summary Редактировать сообщение пользователя
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateUserEnvelopes1: async (envelopeTO: Array<EnvelopeTO>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'envelopeTO' is not null or undefined
            assertParamExists('updateUserEnvelopes1', 'envelopeTO', envelopeTO)
            const localVarPath = `/envelopes/user`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(envelopeTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * EnvelopesApi - functional programming interface
 * @export
 */
export const EnvelopesApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = EnvelopesApiAxiosParamCreator(configuration)
    return {
        /**
         * Метод получает количество объектов Envelope с состоянием checked и unchecked
         * @summary Получить количество объектов Envelope
         * @param {string} [authorization] Авторизация
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countEnvelopes1(authorization?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EnvelopeCount>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countEnvelopes1(authorization, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод создаёт сообщение.
         * @summary Создать сообщение
         * @param {Envelope} envelope 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createEnvelope1(envelope: Envelope, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Envelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createEnvelope1(envelope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDomainEnvelope1(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDomainEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDomainEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDomainEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет сообщение по идентификатору. 
         * @summary Удалить сообщение
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteEnvelope1(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все сообщения.
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteEnvelopes1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteEnvelopes1(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRegionEnvelope1(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRegionEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRegionEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRegionEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет сообщение пользователя по идентификатору. Проверяется принадлежность сообщения пользователю.
         * @summary Удалить сообщение пользователя
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteUserEnvelope1(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все сообщения пользователя.
         * @summary Удалить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteUserEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDomainFilteredEnvelope1(id: string, body: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Envelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDomainFilteredEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает сообщение по идентификатору.
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getEnvelope1(id: string, body: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Envelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает объект сообщения принадлежащий пользователю
         * @summary Получить сообщение пользователя
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getFilteredEnvelope1(id: string, body: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Envelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getFilteredEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает спсиок шаблонов прменённых к сообщению.
         * @summary Получить список шаблонов по идентификатору сообщения
         * @param {string} envelopeId 
         * @param {string} channel 
         * @param {string} [authorization] Авторизация
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getMessageTemplateWithType1(envelopeId: string, channel: string, authorization?: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getMessageTemplateWithType1(envelopeId, channel, authorization, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRegionFilteredEnvelope1(id: string, body: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Envelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRegionFilteredEnvelope1(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingDomainEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfEnvelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingDomainEnvelopes1(authorization, page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfEnvelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingEnvelopes1(authorization, page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingRegionEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfEnvelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingRegionEnvelopes1(authorization, page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает все сообщения пользователя с паинацией и сортировкой.
         * @summary Получить все сообщения пользователя с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingUserEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfEnvelope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingUserEnvelopes1(authorization, page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchDomainEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchDomainEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список всех сообщений.
         * @summary Получить список сообщений
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchPagingEnvelopes1(authorization?: string, sort?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchPagingEnvelopes1(authorization, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchRegionEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchRegionEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список всех сообщений пользователя.
         * @summary Получить список сообщений пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchUserEnvelopes1(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchUserEnvelopes1(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDomainEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDomainEnvelopes1(envelopeTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод редактирует сообщение.
         * @summary Редактировать сообщение
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateEnvelope1(envelopeTO: Array<EnvelopeTO>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateEnvelope1(envelopeTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateRegionEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateRegionEnvelopes1(envelopeTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод редактирует сообщение пользователя.
         * @summary Редактировать сообщение пользователя
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateUserEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Envelope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserEnvelopes1(envelopeTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * EnvelopesApi - factory interface
 * @export
 */
export const EnvelopesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = EnvelopesApiFp(configuration)
    return {
        /**
         * Метод получает количество объектов Envelope с состоянием checked и unchecked
         * @summary Получить количество объектов Envelope
         * @param {string} [authorization] Авторизация
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countEnvelopes1(authorization?: string, userPage?: UserPage, options?: any): AxiosPromise<EnvelopeCount> {
            return localVarFp.countEnvelopes1(authorization, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод создаёт сообщение.
         * @summary Создать сообщение
         * @param {Envelope} envelope 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createEnvelope1(envelope: Envelope, options?: any): AxiosPromise<Envelope> {
            return localVarFp.createEnvelope1(envelope, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDomainEnvelope1(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteDomainEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDomainEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<string> {
            return localVarFp.deleteDomainEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет сообщение по идентификатору. 
         * @summary Удалить сообщение
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvelope1(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все сообщения.
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvelopes1(options?: any): AxiosPromise<string> {
            return localVarFp.deleteEnvelopes1(options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
         * @summary Удалить сообщение домена
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRegionEnvelope1(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteRegionEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все сообщения домена.
         * @summary Удалить все сообщения домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRegionEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<string> {
            return localVarFp.deleteRegionEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет сообщение пользователя по идентификатору. Проверяется принадлежность сообщения пользователю.
         * @summary Удалить сообщение пользователя
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteUserEnvelope1(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteUserEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все сообщения пользователя.
         * @summary Удалить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteUserEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<string> {
            return localVarFp.deleteUserEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainFilteredEnvelope1(id: string, body: string, options?: any): AxiosPromise<Envelope> {
            return localVarFp.getDomainFilteredEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает сообщение по идентификатору.
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getEnvelope1(id: string, body: string, options?: any): AxiosPromise<Envelope> {
            return localVarFp.getEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает объект сообщения принадлежащий пользователю
         * @summary Получить сообщение пользователя
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getFilteredEnvelope1(id: string, body: string, options?: any): AxiosPromise<Envelope> {
            return localVarFp.getFilteredEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает спсиок шаблонов прменённых к сообщению.
         * @summary Получить список шаблонов по идентификатору сообщения
         * @param {string} envelopeId 
         * @param {string} channel 
         * @param {string} [authorization] Авторизация
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessageTemplateWithType1(envelopeId: string, channel: string, authorization?: string, body?: string, options?: any): AxiosPromise<MessageTemplate> {
            return localVarFp.getMessageTemplateWithType1(envelopeId, channel, authorization, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает объект сообщения принадлежащий домену
         * @summary Получить сообщение домена
         * @param {string} id 
         * @param {string} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRegionFilteredEnvelope1(id: string, body: string, options?: any): AxiosPromise<Envelope> {
            return localVarFp.getRegionFilteredEnvelope1(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDomainEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfEnvelope> {
            return localVarFp.pagingDomainEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfEnvelope> {
            return localVarFp.pagingEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает все сообщения домена с паинацией и сортировкой.
         * @summary Получить все сообщения домена с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingRegionEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfEnvelope> {
            return localVarFp.pagingRegionEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает все сообщения пользователя с паинацией и сортировкой.
         * @summary Получить все сообщения пользователя с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingUserEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfEnvelope> {
            return localVarFp.pagingUserEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchDomainEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.searchDomainEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список всех сообщений.
         * @summary Получить список сообщений
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.searchEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает все сообщения с паинацией и сортировкой.
         * @summary Получить все сообщения с паинацией и сортировкой
         * @param {string} [authorization] Авторизация
         * @param {string} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchPagingEnvelopes1(authorization?: string, sort?: string, userPage?: UserPage, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.searchPagingEnvelopes1(authorization, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список всех сообщений домена.
         * @summary Получить список сообщений домена
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchRegionEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.searchRegionEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список всех сообщений пользователя.
         * @summary Получить список сообщений пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchUserEnvelopes1(userPage?: UserPage, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.searchUserEnvelopes1(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomainEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.updateDomainEnvelopes1(envelopeTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод редактирует сообщение.
         * @summary Редактировать сообщение
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateEnvelope1(envelopeTO: Array<EnvelopeTO>, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.updateEnvelope1(envelopeTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод редактирует сообщение домена.
         * @summary Редактировать сообщение домена
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRegionEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.updateRegionEnvelopes1(envelopeTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод редактирует сообщение пользователя.
         * @summary Редактировать сообщение пользователя
         * @param {Array<EnvelopeTO>} envelopeTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateUserEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any): AxiosPromise<Array<Envelope>> {
            return localVarFp.updateUserEnvelopes1(envelopeTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * EnvelopesApi - object-oriented interface
 * @export
 * @class EnvelopesApi
 * @extends {BaseAPI}
 */
export class EnvelopesApi extends BaseAPI {
    /**
     * Метод получает количество объектов Envelope с состоянием checked и unchecked
     * @summary Получить количество объектов Envelope
     * @param {string} [authorization] Авторизация
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public countEnvelopes1(authorization?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).countEnvelopes1(authorization, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод создаёт сообщение.
     * @summary Создать сообщение
     * @param {Envelope} envelope 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public createEnvelope1(envelope: Envelope, options?: any) {
        return EnvelopesApiFp(this.configuration).createEnvelope1(envelope, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
     * @summary Удалить сообщение домена
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteDomainEnvelope1(id: string, body?: string, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteDomainEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все сообщения домена.
     * @summary Удалить все сообщения домена
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteDomainEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteDomainEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет сообщение по идентификатору. 
     * @summary Удалить сообщение
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteEnvelope1(id: string, body?: string, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все сообщения.
     * @summary Удалить все сообщения
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteEnvelopes1(options?: any) {
        return EnvelopesApiFp(this.configuration).deleteEnvelopes1(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет сообщение домена по идентификатору. Проверяется принадлежность сообщения домену.
     * @summary Удалить сообщение домена
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteRegionEnvelope1(id: string, body?: string, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteRegionEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все сообщения домена.
     * @summary Удалить все сообщения домена
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteRegionEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteRegionEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет сообщение пользователя по идентификатору. Проверяется принадлежность сообщения пользователю.
     * @summary Удалить сообщение пользователя
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteUserEnvelope1(id: string, body?: string, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteUserEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все сообщения пользователя.
     * @summary Удалить все сообщения пользователя
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public deleteUserEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).deleteUserEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает объект сообщения принадлежащий домену
     * @summary Получить сообщение домена
     * @param {string} id 
     * @param {string} body 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public getDomainFilteredEnvelope1(id: string, body: string, options?: any) {
        return EnvelopesApiFp(this.configuration).getDomainFilteredEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает сообщение по идентификатору.
     * @summary Получить сообщение по идентификатору
     * @param {string} id 
     * @param {string} body 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public getEnvelope1(id: string, body: string, options?: any) {
        return EnvelopesApiFp(this.configuration).getEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает объект сообщения принадлежащий пользователю
     * @summary Получить сообщение пользователя
     * @param {string} id 
     * @param {string} body 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public getFilteredEnvelope1(id: string, body: string, options?: any) {
        return EnvelopesApiFp(this.configuration).getFilteredEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает спсиок шаблонов прменённых к сообщению.
     * @summary Получить список шаблонов по идентификатору сообщения
     * @param {string} envelopeId 
     * @param {string} channel 
     * @param {string} [authorization] Авторизация
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public getMessageTemplateWithType1(envelopeId: string, channel: string, authorization?: string, body?: string, options?: any) {
        return EnvelopesApiFp(this.configuration).getMessageTemplateWithType1(envelopeId, channel, authorization, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает объект сообщения принадлежащий домену
     * @summary Получить сообщение домена
     * @param {string} id 
     * @param {string} body 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public getRegionFilteredEnvelope1(id: string, body: string, options?: any) {
        return EnvelopesApiFp(this.configuration).getRegionFilteredEnvelope1(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает все сообщения домена с паинацией и сортировкой.
     * @summary Получить все сообщения домена с паинацией и сортировкой
     * @param {string} [authorization] Авторизация
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {string} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public pagingDomainEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).pagingDomainEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает все сообщения с паинацией и сортировкой.
     * @summary Получить все сообщения с паинацией и сортировкой
     * @param {string} [authorization] Авторизация
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {string} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public pagingEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).pagingEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает все сообщения домена с паинацией и сортировкой.
     * @summary Получить все сообщения домена с паинацией и сортировкой
     * @param {string} [authorization] Авторизация
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {string} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public pagingRegionEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).pagingRegionEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает все сообщения пользователя с паинацией и сортировкой.
     * @summary Получить все сообщения пользователя с паинацией и сортировкой
     * @param {string} [authorization] Авторизация
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {string} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public pagingUserEnvelopes1(authorization?: string, page?: number, size?: number, sort?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).pagingUserEnvelopes1(authorization, page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список всех сообщений домена.
     * @summary Получить список сообщений домена
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public searchDomainEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).searchDomainEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список всех сообщений.
     * @summary Получить список сообщений
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public searchEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).searchEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает все сообщения с паинацией и сортировкой.
     * @summary Получить все сообщения с паинацией и сортировкой
     * @param {string} [authorization] Авторизация
     * @param {string} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public searchPagingEnvelopes1(authorization?: string, sort?: string, userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).searchPagingEnvelopes1(authorization, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список всех сообщений домена.
     * @summary Получить список сообщений домена
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public searchRegionEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).searchRegionEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список всех сообщений пользователя.
     * @summary Получить список сообщений пользователя
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public searchUserEnvelopes1(userPage?: UserPage, options?: any) {
        return EnvelopesApiFp(this.configuration).searchUserEnvelopes1(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод редактирует сообщение домена.
     * @summary Редактировать сообщение домена
     * @param {Array<EnvelopeTO>} envelopeTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public updateDomainEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any) {
        return EnvelopesApiFp(this.configuration).updateDomainEnvelopes1(envelopeTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод редактирует сообщение.
     * @summary Редактировать сообщение
     * @param {Array<EnvelopeTO>} envelopeTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public updateEnvelope1(envelopeTO: Array<EnvelopeTO>, options?: any) {
        return EnvelopesApiFp(this.configuration).updateEnvelope1(envelopeTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод редактирует сообщение домена.
     * @summary Редактировать сообщение домена
     * @param {Array<EnvelopeTO>} envelopeTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public updateRegionEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any) {
        return EnvelopesApiFp(this.configuration).updateRegionEnvelopes1(envelopeTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод редактирует сообщение пользователя.
     * @summary Редактировать сообщение пользователя
     * @param {Array<EnvelopeTO>} envelopeTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EnvelopesApi
     */
    public updateUserEnvelopes1(envelopeTO: Array<EnvelopeTO>, options?: any) {
        return EnvelopesApiFp(this.configuration).updateUserEnvelopes1(envelopeTO, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * EventsApi - axios parameter creator
 * @export
 */
export const EventsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Создаёт объект события
         * @summary Создать объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createEvent: async (eventTO: EventTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'eventTO' is not null or undefined
            assertParamExists('createEvent', 'eventTO', eventTO)
            const localVarPath = `/events`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(eventTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Обновляет объект события
         * @summary Удаляет объект события по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEvent: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteEvent', 'id', id)
            const localVarPath = `/events/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Удаляет все объекты событий
         * @summary Удаляет все объекты событий
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEvents: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/events/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает объект события по идентификатоору
         * @summary Получить объект события
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getEvent: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getEvent', 'id', id)
            const localVarPath = `/events/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получить список событий c пагинацией и сортировкой
         * @summary Получить список событий c пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingEvents: async (page?: number, size?: number, sort?: object, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/events/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает список событий
         * @summary Получить список событий
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchEvents: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/events`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает список шаблонов по идентификатору события
         * @summary Получить список шаблонов по событию
         * @param {string} id 
         * @param {string} [channel] 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchTemplates: async (id: string, channel?: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('searchTemplates', 'id', id)
            const localVarPath = `/events/{id}/templates`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (channel !== undefined) {
                localVarQueryParameter['channel'] = channel;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Обновляет объект события
         * @summary Обновить объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateEvent: async (eventTO: EventTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'eventTO' is not null or undefined
            assertParamExists('updateEvent', 'eventTO', eventTO)
            const localVarPath = `/events`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(eventTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * EventsApi - functional programming interface
 * @export
 */
export const EventsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = EventsApiAxiosParamCreator(configuration)
    return {
        /**
         * Создаёт объект события
         * @summary Создать объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createEvent(eventTO: EventTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Event>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createEvent(eventTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Обновляет объект события
         * @summary Удаляет объект события по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteEvent(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Event>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteEvent(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Удаляет все объекты событий
         * @summary Удаляет все объекты событий
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteEvents(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteEvents(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает объект события по идентификатоору
         * @summary Получить объект события
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getEvent(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Event>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getEvent(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получить список событий c пагинацией и сортировкой
         * @summary Получить список событий c пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingEvents(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfEvent>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingEvents(page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает список событий
         * @summary Получить список событий
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchEvents(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Event>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchEvents(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает список шаблонов по идентификатору события
         * @summary Получить список шаблонов по событию
         * @param {string} id 
         * @param {string} [channel] 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchTemplates(id: string, channel?: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Event>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchTemplates(id, channel, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Обновляет объект события
         * @summary Обновить объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateEvent(eventTO: EventTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Event>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateEvent(eventTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * EventsApi - factory interface
 * @export
 */
export const EventsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = EventsApiFp(configuration)
    return {
        /**
         * Создаёт объект события
         * @summary Создать объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createEvent(eventTO: EventTO, options?: any): AxiosPromise<Event> {
            return localVarFp.createEvent(eventTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Обновляет объект события
         * @summary Удаляет объект события по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEvent(id: string, body?: string, options?: any): AxiosPromise<Event> {
            return localVarFp.deleteEvent(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Удаляет все объекты событий
         * @summary Удаляет все объекты событий
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEvents(options?: any): AxiosPromise<string> {
            return localVarFp.deleteEvents(options).then((request) => request(axios, basePath));
        },
        /**
         * Получает объект события по идентификатоору
         * @summary Получить объект события
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getEvent(id: string, body?: string, options?: any): AxiosPromise<Event> {
            return localVarFp.getEvent(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Получить список событий c пагинацией и сортировкой
         * @summary Получить список событий c пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingEvents(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any): AxiosPromise<PageOfEvent> {
            return localVarFp.pagingEvents(page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает список событий
         * @summary Получить список событий
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchEvents(userPage?: UserPage, options?: any): AxiosPromise<Array<Event>> {
            return localVarFp.searchEvents(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает список шаблонов по идентификатору события
         * @summary Получить список шаблонов по событию
         * @param {string} id 
         * @param {string} [channel] 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchTemplates(id: string, channel?: string, body?: string, options?: any): AxiosPromise<Array<Event>> {
            return localVarFp.searchTemplates(id, channel, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Обновляет объект события
         * @summary Обновить объект события
         * @param {EventTO} eventTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateEvent(eventTO: EventTO, options?: any): AxiosPromise<Event> {
            return localVarFp.updateEvent(eventTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * EventsApi - object-oriented interface
 * @export
 * @class EventsApi
 * @extends {BaseAPI}
 */
export class EventsApi extends BaseAPI {
    /**
     * Создаёт объект события
     * @summary Создать объект события
     * @param {EventTO} eventTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public createEvent(eventTO: EventTO, options?: any) {
        return EventsApiFp(this.configuration).createEvent(eventTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Обновляет объект события
     * @summary Удаляет объект события по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public deleteEvent(id: string, body?: string, options?: any) {
        return EventsApiFp(this.configuration).deleteEvent(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Удаляет все объекты событий
     * @summary Удаляет все объекты событий
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public deleteEvents(options?: any) {
        return EventsApiFp(this.configuration).deleteEvents(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает объект события по идентификатоору
     * @summary Получить объект события
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public getEvent(id: string, body?: string, options?: any) {
        return EventsApiFp(this.configuration).getEvent(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получить список событий c пагинацией и сортировкой
     * @summary Получить список событий c пагинацией и сортировкой
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {object} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public pagingEvents(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any) {
        return EventsApiFp(this.configuration).pagingEvents(page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает список событий
     * @summary Получить список событий
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public searchEvents(userPage?: UserPage, options?: any) {
        return EventsApiFp(this.configuration).searchEvents(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает список шаблонов по идентификатору события
     * @summary Получить список шаблонов по событию
     * @param {string} id 
     * @param {string} [channel] 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public searchTemplates(id: string, channel?: string, body?: string, options?: any) {
        return EventsApiFp(this.configuration).searchTemplates(id, channel, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Обновляет объект события
     * @summary Обновить объект события
     * @param {EventTO} eventTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof EventsApi
     */
    public updateEvent(eventTO: EventTO, options?: any) {
        return EventsApiFp(this.configuration).updateEvent(eventTO, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * LogApi - axios parameter creator
 * @export
 */
export const LogApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Метод создаёт сообщение
         * @summary Создать сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMessage: async (logTO: LogTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'logTO' is not null or undefined
            assertParamExists('createMessage', 'logTO', logTO)
            const localVarPath = `/log`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(logTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет сообщение по идентификатору
         * @summary Удалить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessage: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteMessage', 'id', id)
            const localVarPath = `/log/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все сообщения
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessages: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/log/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает сообщение пользователя по идентификатоору
         * @summary Получить сообщение пользователя по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getFilteredMessage: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getFilteredMessage', 'id', id)
            const localVarPath = `/log/user/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает сообщение по идентификатоору
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessage: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getMessage', 'id', id)
            const localVarPath = `/log/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает все сообщения пользователя
         * @summary Получить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getUserMessages: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/log/user`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список сообщений с пагинацией и сортировкой
         * @summary Получить список сообщений с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingMessages: async (page?: number, size?: number, sort?: object, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/log/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает все сообщения
         * @summary Получить все сообщения
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchMessages: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/log`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод обновляет сообщение
         * @summary Обновить сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateMessage: async (logTO: LogTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'logTO' is not null or undefined
            assertParamExists('updateMessage', 'logTO', logTO)
            const localVarPath = `/log`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(logTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * LogApi - functional programming interface
 * @export
 */
export const LogApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = LogApiAxiosParamCreator(configuration)
    return {
        /**
         * Метод создаёт сообщение
         * @summary Создать сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createMessage(logTO: LogTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageLog>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createMessage(logTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет сообщение по идентификатору
         * @summary Удалить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteMessage(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteMessage(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все сообщения
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteMessages(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteMessages(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает сообщение пользователя по идентификатоору
         * @summary Получить сообщение пользователя по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getFilteredMessage(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageLog>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getFilteredMessage(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает сообщение по идентификатоору
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getMessage(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageLog>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getMessage(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает все сообщения пользователя
         * @summary Получить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getUserMessages(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Event>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getUserMessages(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список сообщений с пагинацией и сортировкой
         * @summary Получить список сообщений с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingMessages(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfMessageLog>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingMessages(page, size, sort, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает все сообщения
         * @summary Получить все сообщения
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchMessages(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Event>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchMessages(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод обновляет сообщение
         * @summary Обновить сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateMessage(logTO: LogTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageLog>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateMessage(logTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * LogApi - factory interface
 * @export
 */
export const LogApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = LogApiFp(configuration)
    return {
        /**
         * Метод создаёт сообщение
         * @summary Создать сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMessage(logTO: LogTO, options?: any): AxiosPromise<MessageLog> {
            return localVarFp.createMessage(logTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет сообщение по идентификатору
         * @summary Удалить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessage(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteMessage(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все сообщения
         * @summary Удалить все сообщения
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessages(options?: any): AxiosPromise<string> {
            return localVarFp.deleteMessages(options).then((request) => request(axios, basePath));
        },
        /**
         * Получает сообщение пользователя по идентификатоору
         * @summary Получить сообщение пользователя по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getFilteredMessage(id: string, body?: string, options?: any): AxiosPromise<MessageLog> {
            return localVarFp.getFilteredMessage(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает сообщение по идентификатоору
         * @summary Получить сообщение по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessage(id: string, body?: string, options?: any): AxiosPromise<MessageLog> {
            return localVarFp.getMessage(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает все сообщения пользователя
         * @summary Получить все сообщения пользователя
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getUserMessages(userPage?: UserPage, options?: any): AxiosPromise<Array<Event>> {
            return localVarFp.getUserMessages(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список сообщений с пагинацией и сортировкой
         * @summary Получить список сообщений с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {object} [sort] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingMessages(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any): AxiosPromise<PageOfMessageLog> {
            return localVarFp.pagingMessages(page, size, sort, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает все сообщения
         * @summary Получить все сообщения
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchMessages(userPage?: UserPage, options?: any): AxiosPromise<Array<Event>> {
            return localVarFp.searchMessages(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод обновляет сообщение
         * @summary Обновить сообщение
         * @param {LogTO} logTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateMessage(logTO: LogTO, options?: any): AxiosPromise<MessageLog> {
            return localVarFp.updateMessage(logTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * LogApi - object-oriented interface
 * @export
 * @class LogApi
 * @extends {BaseAPI}
 */
export class LogApi extends BaseAPI {
    /**
     * Метод создаёт сообщение
     * @summary Создать сообщение
     * @param {LogTO} logTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public createMessage(logTO: LogTO, options?: any) {
        return LogApiFp(this.configuration).createMessage(logTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет сообщение по идентификатору
     * @summary Удалить сообщение по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public deleteMessage(id: string, body?: string, options?: any) {
        return LogApiFp(this.configuration).deleteMessage(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все сообщения
     * @summary Удалить все сообщения
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public deleteMessages(options?: any) {
        return LogApiFp(this.configuration).deleteMessages(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает сообщение пользователя по идентификатоору
     * @summary Получить сообщение пользователя по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public getFilteredMessage(id: string, body?: string, options?: any) {
        return LogApiFp(this.configuration).getFilteredMessage(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает сообщение по идентификатоору
     * @summary Получить сообщение по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public getMessage(id: string, body?: string, options?: any) {
        return LogApiFp(this.configuration).getMessage(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает все сообщения пользователя
     * @summary Получить все сообщения пользователя
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public getUserMessages(userPage?: UserPage, options?: any) {
        return LogApiFp(this.configuration).getUserMessages(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список сообщений с пагинацией и сортировкой
     * @summary Получить список сообщений с пагинацией и сортировкой
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {object} [sort] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public pagingMessages(page?: number, size?: number, sort?: object, userPage?: UserPage, options?: any) {
        return LogApiFp(this.configuration).pagingMessages(page, size, sort, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает все сообщения
     * @summary Получить все сообщения
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public searchMessages(userPage?: UserPage, options?: any) {
        return LogApiFp(this.configuration).searchMessages(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод обновляет сообщение
     * @summary Обновить сообщение
     * @param {LogTO} logTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LogApi
     */
    public updateMessage(logTO: LogTO, options?: any) {
        return LogApiFp(this.configuration).updateMessage(logTO, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * LoggingApi - axios parameter creator
 * @export
 */
export const LoggingApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
         * @summary Возвращает Swagger/OpenAPI файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getApi: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/api`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список правил логгирования сервиса для пакетов и классов
         * @summary Возвращает правила логгирования
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRules: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/logging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Устанавливает логирования для ROOT и всех установленных классов/пакетов, согласно настроек конфигурационного файла
         * @summary Сбросить и установить уровни логирования по умочанию
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        reset: async (body?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/logging/reset`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Применяет груповое правило логгирования сервиса для ROOT и всех установленных классов/пакетов
         * @summary Применяет груповое правило логгирования
         * @param {GroupRule} [groupRule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setGroupRule: async (groupRule?: GroupRule, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/logging/group`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(groupRule, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Применяет правила логгирования сервиса для пакетов и классов
         * @summary Применяет правила логгирования
         * @param {Array<Rule>} [rule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setRules: async (rule?: Array<Rule>, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/logging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(rule, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * LoggingApi - functional programming interface
 * @export
 */
export const LoggingApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = LoggingApiAxiosParamCreator(configuration)
    return {
        /**
         * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
         * @summary Возвращает Swagger/OpenAPI файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getApi(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getApi(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список правил логгирования сервиса для пакетов и классов
         * @summary Возвращает правила логгирования
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRules(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Rule>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRules(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Устанавливает логирования для ROOT и всех установленных классов/пакетов, согласно настроек конфигурационного файла
         * @summary Сбросить и установить уровни логирования по умочанию
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async reset(body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.reset(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Применяет груповое правило логгирования сервиса для ROOT и всех установленных классов/пакетов
         * @summary Применяет груповое правило логгирования
         * @param {GroupRule} [groupRule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async setGroupRule(groupRule?: GroupRule, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.setGroupRule(groupRule, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Применяет правила логгирования сервиса для пакетов и классов
         * @summary Применяет правила логгирования
         * @param {Array<Rule>} [rule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async setRules(rule?: Array<Rule>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.setRules(rule, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * LoggingApi - factory interface
 * @export
 */
export const LoggingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = LoggingApiFp(configuration)
    return {
        /**
         * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
         * @summary Возвращает Swagger/OpenAPI файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getApi(options?: any): AxiosPromise<void> {
            return localVarFp.getApi(options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список правил логгирования сервиса для пакетов и классов
         * @summary Возвращает правила логгирования
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRules(options?: any): AxiosPromise<Rule> {
            return localVarFp.getRules(options).then((request) => request(axios, basePath));
        },
        /**
         * Устанавливает логирования для ROOT и всех установленных классов/пакетов, согласно настроек конфигурационного файла
         * @summary Сбросить и установить уровни логирования по умочанию
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        reset(body?: string, options?: any): AxiosPromise<Response> {
            return localVarFp.reset(body, options).then((request) => request(axios, basePath));
        },
        /**
         * Применяет груповое правило логгирования сервиса для ROOT и всех установленных классов/пакетов
         * @summary Применяет груповое правило логгирования
         * @param {GroupRule} [groupRule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setGroupRule(groupRule?: GroupRule, options?: any): AxiosPromise<Response> {
            return localVarFp.setGroupRule(groupRule, options).then((request) => request(axios, basePath));
        },
        /**
         * Применяет правила логгирования сервиса для пакетов и классов
         * @summary Применяет правила логгирования
         * @param {Array<Rule>} [rule] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setRules(rule?: Array<Rule>, options?: any): AxiosPromise<Response> {
            return localVarFp.setRules(rule, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * LoggingApi - object-oriented interface
 * @export
 * @class LoggingApi
 * @extends {BaseAPI}
 */
export class LoggingApi extends BaseAPI {
    /**
     * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
     * @summary Возвращает Swagger/OpenAPI файл
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LoggingApi
     */
    public getApi(options?: any) {
        return LoggingApiFp(this.configuration).getApi(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает список правил логгирования сервиса для пакетов и классов
     * @summary Возвращает правила логгирования
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LoggingApi
     */
    public getRules(options?: any) {
        return LoggingApiFp(this.configuration).getRules(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Устанавливает логирования для ROOT и всех установленных классов/пакетов, согласно настроек конфигурационного файла
     * @summary Сбросить и установить уровни логирования по умочанию
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LoggingApi
     */
    public reset(body?: string, options?: any) {
        return LoggingApiFp(this.configuration).reset(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Применяет груповое правило логгирования сервиса для ROOT и всех установленных классов/пакетов
     * @summary Применяет груповое правило логгирования
     * @param {GroupRule} [groupRule] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LoggingApi
     */
    public setGroupRule(groupRule?: GroupRule, options?: any) {
        return LoggingApiFp(this.configuration).setGroupRule(groupRule, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Применяет правила логгирования сервиса для пакетов и классов
     * @summary Применяет правила логгирования
     * @param {Array<Rule>} [rule] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LoggingApi
     */
    public setRules(rule?: Array<Rule>, options?: any) {
        return LoggingApiFp(this.configuration).setRules(rule, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PlaceholdersApi - axios parameter creator
 * @export
 */
export const PlaceholdersApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Создаёт объект плейсхолдера
         * @summary Создать объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPlaceholder: async (placeholderTO: PlaceholderTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'placeholderTO' is not null or undefined
            assertParamExists('createPlaceholder', 'placeholderTO', placeholderTO)
            const localVarPath = `/placeholders`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(placeholderTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Удаляет объект плейсхолдера по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePlaceholder: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deletePlaceholder', 'id', id)
            const localVarPath = `/placeholders/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Удаляет все объекты плейсхолдеров
         * @summary Удаляет все объекты плейсхолдеров
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePlaceholders: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/placeholders/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает объект плейсхолдера по идентификатоору
         * @summary Получить объект плейсхолдера
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPlaceholder: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPlaceholder', 'id', id)
            const localVarPath = `/placeholders/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает список плейсхолдеров
         * @summary Получить список плейсхолдеров
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchPlaceholders: async (userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/placeholders`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Обновить объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePlaceholder: async (placeholderTO: PlaceholderTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'placeholderTO' is not null or undefined
            assertParamExists('updatePlaceholder', 'placeholderTO', placeholderTO)
            const localVarPath = `/placeholders`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(placeholderTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * PlaceholdersApi - functional programming interface
 * @export
 */
export const PlaceholdersApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PlaceholdersApiAxiosParamCreator(configuration)
    return {
        /**
         * Создаёт объект плейсхолдера
         * @summary Создать объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPlaceholder(placeholderTO: PlaceholderTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Placeholder>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPlaceholder(placeholderTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Удаляет объект плейсхолдера по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePlaceholder(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Placeholder>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePlaceholder(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Удаляет все объекты плейсхолдеров
         * @summary Удаляет все объекты плейсхолдеров
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePlaceholders(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePlaceholders(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает объект плейсхолдера по идентификатоору
         * @summary Получить объект плейсхолдера
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPlaceholder(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Placeholder>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPlaceholder(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает список плейсхолдеров
         * @summary Получить список плейсхолдеров
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchPlaceholders(userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Placeholder>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchPlaceholders(userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Обновить объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePlaceholder(placeholderTO: PlaceholderTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Placeholder>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePlaceholder(placeholderTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PlaceholdersApi - factory interface
 * @export
 */
export const PlaceholdersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PlaceholdersApiFp(configuration)
    return {
        /**
         * Создаёт объект плейсхолдера
         * @summary Создать объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPlaceholder(placeholderTO: PlaceholderTO, options?: any): AxiosPromise<Placeholder> {
            return localVarFp.createPlaceholder(placeholderTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Удаляет объект плейсхолдера по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePlaceholder(id: string, body?: string, options?: any): AxiosPromise<Placeholder> {
            return localVarFp.deletePlaceholder(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Удаляет все объекты плейсхолдеров
         * @summary Удаляет все объекты плейсхолдеров
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePlaceholders(options?: any): AxiosPromise<string> {
            return localVarFp.deletePlaceholders(options).then((request) => request(axios, basePath));
        },
        /**
         * Получает объект плейсхолдера по идентификатоору
         * @summary Получить объект плейсхолдера
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPlaceholder(id: string, body?: string, options?: any): AxiosPromise<Placeholder> {
            return localVarFp.getPlaceholder(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает список плейсхолдеров
         * @summary Получить список плейсхолдеров
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchPlaceholders(userPage?: UserPage, options?: any): AxiosPromise<Array<Placeholder>> {
            return localVarFp.searchPlaceholders(userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Обновляет объект плейсхолдера
         * @summary Обновить объект плейсхолдера
         * @param {PlaceholderTO} placeholderTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePlaceholder(placeholderTO: PlaceholderTO, options?: any): AxiosPromise<Placeholder> {
            return localVarFp.updatePlaceholder(placeholderTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * PlaceholdersApi - object-oriented interface
 * @export
 * @class PlaceholdersApi
 * @extends {BaseAPI}
 */
export class PlaceholdersApi extends BaseAPI {
    /**
     * Создаёт объект плейсхолдера
     * @summary Создать объект плейсхолдера
     * @param {PlaceholderTO} placeholderTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public createPlaceholder(placeholderTO: PlaceholderTO, options?: any) {
        return PlaceholdersApiFp(this.configuration).createPlaceholder(placeholderTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Обновляет объект плейсхолдера
     * @summary Удаляет объект плейсхолдера по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public deletePlaceholder(id: string, body?: string, options?: any) {
        return PlaceholdersApiFp(this.configuration).deletePlaceholder(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Удаляет все объекты плейсхолдеров
     * @summary Удаляет все объекты плейсхолдеров
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public deletePlaceholders(options?: any) {
        return PlaceholdersApiFp(this.configuration).deletePlaceholders(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает объект плейсхолдера по идентификатоору
     * @summary Получить объект плейсхолдера
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public getPlaceholder(id: string, body?: string, options?: any) {
        return PlaceholdersApiFp(this.configuration).getPlaceholder(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает список плейсхолдеров
     * @summary Получить список плейсхолдеров
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public searchPlaceholders(userPage?: UserPage, options?: any) {
        return PlaceholdersApiFp(this.configuration).searchPlaceholders(userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Обновляет объект плейсхолдера
     * @summary Обновить объект плейсхолдера
     * @param {PlaceholderTO} placeholderTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaceholdersApi
     */
    public updatePlaceholder(placeholderTO: PlaceholderTO, options?: any) {
        return PlaceholdersApiFp(this.configuration).updatePlaceholder(placeholderTO, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * TemplatesApi - axios parameter creator
 * @export
 */
export const TemplatesApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Создаёт шаблон
         * @summary Создать шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMessageTemplate: async (templateTO: TemplateTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'templateTO' is not null or undefined
            assertParamExists('createMessageTemplate', 'templateTO', templateTO)
            const localVarPath = `/templates`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(templateTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет шаблон
         * @summary Удалить шаблон
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessageTemplate: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteMessageTemplate', 'id', id)
            const localVarPath = `/templates/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод удаляет все шаблоны
         * @summary Удалить все шаблоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessageTemplates: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/templates/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает шаблон по идентификатору
         * @summary Получить шаблон по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessageTemplate: async (id: string, body?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getMessageTemplate', 'id', id)
            const localVarPath = `/templates/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод получает список всех шаблонов с пагинацией и сортировкой
         * @summary Получить список всех шаблонов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingMessageTemplates: async (page?: number, size?: number, sort?: string, filter?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/templates/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (filter !== undefined) {
                localVarQueryParameter['filter'] = filter;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Получает список шаблонов
         * @summary Получить список шаблонов
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchMessageTemplates: async (filter?: string, userPage?: UserPage, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/templates`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            if (filter !== undefined) {
                localVarQueryParameter['filter'] = filter;
            }


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(userPage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод обновляет шаблон
         * @summary Обновить шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateMessageTemplate: async (templateTO: TemplateTO, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'templateTO' is not null or undefined
            assertParamExists('updateMessageTemplate', 'templateTO', templateTO)
            const localVarPath = `/templates`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication storageAuth required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(templateTO, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * TemplatesApi - functional programming interface
 * @export
 */
export const TemplatesApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = TemplatesApiAxiosParamCreator(configuration)
    return {
        /**
         * Создаёт шаблон
         * @summary Создать шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createMessageTemplate(templateTO: TemplateTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createMessageTemplate(templateTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет шаблон
         * @summary Удалить шаблон
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteMessageTemplate(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteMessageTemplate(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод удаляет все шаблоны
         * @summary Удалить все шаблоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteMessageTemplates(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteMessageTemplates(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает шаблон по идентификатору
         * @summary Получить шаблон по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getMessageTemplate(id: string, body?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getMessageTemplate(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод получает список всех шаблонов с пагинацией и сортировкой
         * @summary Получить список всех шаблонов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingMessageTemplates(page?: number, size?: number, sort?: string, filter?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfMessageTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingMessageTemplates(page, size, sort, filter, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Получает список шаблонов
         * @summary Получить список шаблонов
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchMessageTemplates(filter?: string, userPage?: UserPage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<MessageTemplate>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchMessageTemplates(filter, userPage, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод обновляет шаблон
         * @summary Обновить шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateMessageTemplate(templateTO: TemplateTO, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MessageTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateMessageTemplate(templateTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * TemplatesApi - factory interface
 * @export
 */
export const TemplatesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = TemplatesApiFp(configuration)
    return {
        /**
         * Создаёт шаблон
         * @summary Создать шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMessageTemplate(templateTO: TemplateTO, options?: any): AxiosPromise<MessageTemplate> {
            return localVarFp.createMessageTemplate(templateTO, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет шаблон
         * @summary Удалить шаблон
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessageTemplate(id: string, body?: string, options?: any): AxiosPromise<string> {
            return localVarFp.deleteMessageTemplate(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод удаляет все шаблоны
         * @summary Удалить все шаблоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMessageTemplates(options?: any): AxiosPromise<string> {
            return localVarFp.deleteMessageTemplates(options).then((request) => request(axios, basePath));
        },
        /**
         * Получает шаблон по идентификатору
         * @summary Получить шаблон по идентификатору
         * @param {string} id 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMessageTemplate(id: string, body?: string, options?: any): AxiosPromise<MessageTemplate> {
            return localVarFp.getMessageTemplate(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод получает список всех шаблонов с пагинацией и сортировкой
         * @summary Получить список всех шаблонов с пагинацией и сортировкой
         * @param {number} [page] 
         * @param {number} [size] 
         * @param {string} [sort] 
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingMessageTemplates(page?: number, size?: number, sort?: string, filter?: string, userPage?: UserPage, options?: any): AxiosPromise<PageOfMessageTemplate> {
            return localVarFp.pagingMessageTemplates(page, size, sort, filter, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Получает список шаблонов
         * @summary Получить список шаблонов
         * @param {string} [filter] 
         * @param {UserPage} [userPage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchMessageTemplates(filter?: string, userPage?: UserPage, options?: any): AxiosPromise<Array<MessageTemplate>> {
            return localVarFp.searchMessageTemplates(filter, userPage, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод обновляет шаблон
         * @summary Обновить шаблон
         * @param {TemplateTO} templateTO 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateMessageTemplate(templateTO: TemplateTO, options?: any): AxiosPromise<MessageTemplate> {
            return localVarFp.updateMessageTemplate(templateTO, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * TemplatesApi - object-oriented interface
 * @export
 * @class TemplatesApi
 * @extends {BaseAPI}
 */
export class TemplatesApi extends BaseAPI {
    /**
     * Создаёт шаблон
     * @summary Создать шаблон
     * @param {TemplateTO} templateTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public createMessageTemplate(templateTO: TemplateTO, options?: any) {
        return TemplatesApiFp(this.configuration).createMessageTemplate(templateTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет шаблон
     * @summary Удалить шаблон
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public deleteMessageTemplate(id: string, body?: string, options?: any) {
        return TemplatesApiFp(this.configuration).deleteMessageTemplate(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод удаляет все шаблоны
     * @summary Удалить все шаблоны
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public deleteMessageTemplates(options?: any) {
        return TemplatesApiFp(this.configuration).deleteMessageTemplates(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает шаблон по идентификатору
     * @summary Получить шаблон по идентификатору
     * @param {string} id 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public getMessageTemplate(id: string, body?: string, options?: any) {
        return TemplatesApiFp(this.configuration).getMessageTemplate(id, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод получает список всех шаблонов с пагинацией и сортировкой
     * @summary Получить список всех шаблонов с пагинацией и сортировкой
     * @param {number} [page] 
     * @param {number} [size] 
     * @param {string} [sort] 
     * @param {string} [filter] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public pagingMessageTemplates(page?: number, size?: number, sort?: string, filter?: string, userPage?: UserPage, options?: any) {
        return TemplatesApiFp(this.configuration).pagingMessageTemplates(page, size, sort, filter, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Получает список шаблонов
     * @summary Получить список шаблонов
     * @param {string} [filter] 
     * @param {UserPage} [userPage] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public searchMessageTemplates(filter?: string, userPage?: UserPage, options?: any) {
        return TemplatesApiFp(this.configuration).searchMessageTemplates(filter, userPage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод обновляет шаблон
     * @summary Обновить шаблон
     * @param {TemplateTO} templateTO 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof TemplatesApi
     */
    public updateMessageTemplate(templateTO: TemplateTO, options?: any) {
        return TemplatesApiFp(this.configuration).updateMessageTemplate(templateTO, options).then((request) => request(this.axios, this.basePath));
    }
}


