/* tslint:disable */
/* eslint-disable */
/**
 * refugee-compensation
 * Сервис выгрузок для компенсаций
 *
 * The version of the OpenAPI document: 1
 * 
 *
 * 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 CreateExportRequest
 */
export interface CreateExportRequest {
    /**
     * ОГРН
     * @type {string}
     * @memberof CreateExportRequest
     */
    ogrn: string;
    /**
     * UID организации
     * @type {string}
     * @memberof CreateExportRequest
     */
    organizationId: string;
    /**
     * Название организации
     * @type {string}
     * @memberof CreateExportRequest
     */
    organizationName: string;
    /**
     * Код региона
     * @type {string}
     * @memberof CreateExportRequest
     */
    region: string;
    /**
     * Название региона
     * @type {string}
     * @memberof CreateExportRequest
     */
    regionName: string;
}
/**
 * 
 * @export
 * @interface Document
 */
export interface Document {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Document
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Document
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Document
     */
    schema: string;
}
/**
 * 
 * @export
 * @interface ExportRegistryUcrainianRefugeeAccept
 */
export interface ExportRegistryUcrainianRefugeeAccept {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    schema: string;
    /**
     * 
     * @type {number}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    created?: number;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    departmentId?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    departmentName?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    state?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    region?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    regionName?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    registryFileLink?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAccept
     */
    registrySberFileLink?: string;
}
/**
 * 
 * @export
 * @interface ExportRegistryUcrainianRefugeeAcceptAllOf
 */
export interface ExportRegistryUcrainianRefugeeAcceptAllOf {
    /**
     * 
     * @type {number}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    created?: number;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    departmentId?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    departmentName?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    state?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    region?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    regionName?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    registryFileLink?: string;
    /**
     * 
     * @type {string}
     * @memberof ExportRegistryUcrainianRefugeeAcceptAllOf
     */
    registrySberFileLink?: string;
}
/**
 * 
 * @export
 * @interface ModifyResponse
 */
export interface ModifyResponse {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof ModifyResponse
     */
    success?: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof ModifyResponse
     */
    message?: string;
    /**
     * Дата модификации всех Документов в рамках операции
     * @type {number}
     * @memberof ModifyResponse
     */
    modified?: number;
    /**
     * IDs Документов в рамках операции
     * @type {Array<string>}
     * @memberof ModifyResponse
     */
    objectIds?: Array<string>;
}
/**
 * 
 * @export
 * @interface ModifyResponseAllOf
 */
export interface ModifyResponseAllOf {
    /**
     * Дата модификации всех Документов в рамках операции
     * @type {number}
     * @memberof ModifyResponseAllOf
     */
    modified?: number;
    /**
     * IDs Документов в рамках операции
     * @type {Array<string>}
     * @memberof ModifyResponseAllOf
     */
    objectIds?: Array<string>;
}
/**
 * 
 * @export
 * @interface ReportResponse
 */
export interface ReportResponse {
    /**
     * 
     * @type {number}
     * @memberof ReportResponse
     */
    processedRowsCount?: number;
    /**
     * 
     * @type {string}
     * @memberof ReportResponse
     */
    s3ExcelLink?: string;
}
/**
 * 
 * @export
 * @interface Response
 */
export interface Response {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof Response
     */
    success?: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof Response
     */
    message?: string;
}

/**
 * DefaultApi - axios parameter creator
 * @export
 */
export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        test: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/test`;
            // 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,
            };
        },
    }
};

/**
 * DefaultApi - functional programming interface
 * @export
 */
export const DefaultApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async test(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.test(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DefaultApi - factory interface
 * @export
 */
export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DefaultApiFp(configuration)
    return {
        /**
         * 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        test(options?: any): AxiosPromise<string> {
            return localVarFp.test(options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DefaultApi - object-oriented interface
 * @export
 * @class DefaultApi
 * @extends {BaseAPI}
 */
export class DefaultApi extends BaseAPI {
    /**
     * 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public test(options?: any) {
        return DefaultApiFp(this.configuration).test(options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ExportApi - axios parameter creator
 * @export
 */
export const ExportApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество записей экспорта
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countExportRecords: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/registry/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;

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

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


    
            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 {Array<CreateExportRequest>} createExportRequest Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExport: async (createExportRequest: Array<CreateExportRequest>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'createExportRequest' is not null or undefined
            assertParamExists('createExport', 'createExportRequest', createExportRequest)
            const localVarPath = `/registry/export`;
            // 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;charset=utf-8';

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новую запись экспорта
         * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExportRecord: async (exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'exportRegistryUcrainianRefugeeAccept' is not null or undefined
            assertParamExists('createExportRecord', 'exportRegistryUcrainianRefugeeAccept', exportRegistryUcrainianRefugeeAccept)
            const localVarPath = `/registry`;
            // 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;charset=utf-8';

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        exportRegistry: async (id: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('exportRegistry', 'id', id)
            const localVarPath = `/registry/{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;

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


    
            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 Генерирует отчёт по идентификатору организации в xlsx в s3
         * @param {string} orgId 
         * @param {string} [statusId] Идентификатор статуса
         * @param {string} [dateFrom] Дата подачи от
         * @param {string} [dateTo] Дата подачи до
         * @param {string} [serviceId] Идентификатор услуги
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getReportData: async (orgId: string, statusId?: string, dateFrom?: string, dateTo?: string, serviceId?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgId' is not null or undefined
            assertParamExists('getReportData', 'orgId', orgId)
            const localVarPath = `/registry/reportData/{org_id}`
                .replace(`{${"org_id"}}`, encodeURIComponent(String(orgId)));
            // 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;

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список записей экспорта с пагинацией
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingExportRecords: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/registry`;
            // 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;

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

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

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

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

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

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


    
            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} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchExportRecords: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/registry/records`;
            // 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;

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

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

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

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


    
            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 {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateExportRecord: async (exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'exportRegistryUcrainianRefugeeAccept' is not null or undefined
            assertParamExists('updateExportRecord', 'exportRegistryUcrainianRefugeeAccept', exportRegistryUcrainianRefugeeAccept)
            const localVarPath = `/registry`;
            // 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;


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

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

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

/**
 * ExportApi - functional programming interface
 * @export
 */
export const ExportApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ExportApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество записей экспорта
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countExportRecords(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countExportRecords(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создаёт реестр на выплату
         * @param {Array<CreateExportRequest>} createExportRequest Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createExport(createExportRequest: Array<CreateExportRequest>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createExport(createExportRequest, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новую запись экспорта
         * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createExportRecord(exportRegistryUcrainianRefugeeAccept, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async exportRegistry(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExportRegistryUcrainianRefugeeAccept>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.exportRegistry(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Генерирует отчёт по идентификатору организации в xlsx в s3
         * @param {string} orgId 
         * @param {string} [statusId] Идентификатор статуса
         * @param {string} [dateFrom] Дата подачи от
         * @param {string} [dateTo] Дата подачи до
         * @param {string} [serviceId] Идентификатор услуги
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getReportData(orgId: string, statusId?: string, dateFrom?: string, dateTo?: string, serviceId?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ReportResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getReportData(orgId, statusId, dateFrom, dateTo, serviceId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список записей экспорта с пагинацией
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingExportRecords(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExportRegistryUcrainianRefugeeAccept>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingExportRecords(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает все записи экспорта
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchExportRecords(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ExportRegistryUcrainianRefugeeAccept>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchExportRecords(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет запись об экспорте
         * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateExportRecord(exportRegistryUcrainianRefugeeAccept, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ExportApi - factory interface
 * @export
 */
export const ExportApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ExportApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество записей экспорта
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countExportRecords(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countExportRecords(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создаёт реестр на выплату
         * @param {Array<CreateExportRequest>} createExportRequest Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExport(createExportRequest: Array<CreateExportRequest>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.createExport(createExportRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новую запись экспорта
         * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.createExportRecord(exportRegistryUcrainianRefugeeAccept, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        exportRegistry(id: string, expand?: string, options?: any): AxiosPromise<ExportRegistryUcrainianRefugeeAccept> {
            return localVarFp.exportRegistry(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Генерирует отчёт по идентификатору организации в xlsx в s3
         * @param {string} orgId 
         * @param {string} [statusId] Идентификатор статуса
         * @param {string} [dateFrom] Дата подачи от
         * @param {string} [dateTo] Дата подачи до
         * @param {string} [serviceId] Идентификатор услуги
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getReportData(orgId: string, statusId?: string, dateFrom?: string, dateTo?: string, serviceId?: string, options?: any): AxiosPromise<ReportResponse> {
            return localVarFp.getReportData(orgId, statusId, dateFrom, dateTo, serviceId, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список записей экспорта с пагинацией
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingExportRecords(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<ExportRegistryUcrainianRefugeeAccept> {
            return localVarFp.pagingExportRecords(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает все записи экспорта
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchExportRecords(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<ExportRegistryUcrainianRefugeeAccept>> {
            return localVarFp.searchExportRecords(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет запись об экспорте
         * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateExportRecord(exportRegistryUcrainianRefugeeAccept, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ExportApi - object-oriented interface
 * @export
 * @class ExportApi
 * @extends {BaseAPI}
 */
export class ExportApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает количество записей экспорта
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public countExportRecords(query?: string, fulltext?: string, options?: any) {
        return ExportApiFp(this.configuration).countExportRecords(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создаёт реестр на выплату
     * @param {Array<CreateExportRequest>} createExportRequest Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public createExport(createExportRequest: Array<CreateExportRequest>, options?: any) {
        return ExportApiFp(this.configuration).createExport(createExportRequest, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создает новую запись экспорта
     * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public createExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any) {
        return ExportApiFp(this.configuration).createExportRecord(exportRegistryUcrainianRefugeeAccept, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает объект по его идентификатору
     * @param {string} id 
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public exportRegistry(id: string, expand?: string, options?: any) {
        return ExportApiFp(this.configuration).exportRegistry(id, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Генерирует отчёт по идентификатору организации в xlsx в s3
     * @param {string} orgId 
     * @param {string} [statusId] Идентификатор статуса
     * @param {string} [dateFrom] Дата подачи от
     * @param {string} [dateTo] Дата подачи до
     * @param {string} [serviceId] Идентификатор услуги
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public getReportData(orgId: string, statusId?: string, dateFrom?: string, dateTo?: string, serviceId?: string, options?: any) {
        return ExportApiFp(this.configuration).getReportData(orgId, statusId, dateFrom, dateTo, serviceId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
     * @summary Возвращает список записей экспорта с пагинацией
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {string} [sort] Тип сортировки
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public pagingExportRecords(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return ExportApiFp(this.configuration).pagingExportRecords(page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает список объектов без пейджинга.
     * @summary Возвращает все записи экспорта
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {string} [sort] Тип сортировки
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public searchExportRecords(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return ExportApiFp(this.configuration).searchExportRecords(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет запись об экспорте
     * @param {Array<ExportRegistryUcrainianRefugeeAccept>} exportRegistryUcrainianRefugeeAccept Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ExportApi
     */
    public updateExportRecord(exportRegistryUcrainianRefugeeAccept: Array<ExportRegistryUcrainianRefugeeAccept>, options?: any) {
        return ExportApiFp(this.configuration).updateExportRecord(exportRegistryUcrainianRefugeeAccept, options).then((request) => request(this.axios, this.basePath));
    }
}


