/* tslint:disable */
/* eslint-disable */
/**
 * personalaccount
 * Сервис хранения и обработки личных данных
 *
 * 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 ApplicationData
 */
export interface ApplicationData {
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    service?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    serviceId?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    systemStartDate?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    systemShortName?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    systemDepartmentFullName?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    statusExternal?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    statusSystem?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    orderID?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    registryOrderCode?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    registryOrderID?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    registryCode?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationData
     */
    registryID?: string;
    /**
     * 
     * @type {Array<RegistryData>}
     * @memberof ApplicationData
     */
    registryData?: Array<RegistryData>;
}
/**
 * 
 * @export
 * @interface ApplicationsCountGroup
 */
export interface ApplicationsCountGroup {
    /**
     * 
     * @type {number}
     * @memberof ApplicationsCountGroup
     */
    appCount?: number;
    /**
     * 
     * @type {number}
     * @memberof ApplicationsCountGroup
     */
    sameCount?: number;
}
/**
 * 
 * @export
 * @interface BaseDocument
 */
export interface BaseDocument {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof BaseDocument
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof BaseDocument
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof BaseDocument
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof BaseDocument
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof BaseDocument
     */
    modifyDate?: string;
}
/**
 * 
 * @export
 * @interface BaseDocumentAllOf
 */
export interface BaseDocumentAllOf {
    /**
     * Дата добавления
     * @type {string}
     * @memberof BaseDocumentAllOf
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof BaseDocumentAllOf
     */
    modifyDate?: string;
}
/**
 * 
 * @export
 * @interface ChangedFieldType
 */
export interface ChangedFieldType {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ChangedFieldType
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ChangedFieldType
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ChangedFieldType
     */
    schema: string;
    /**
     * Путь до проверяемого значения ЛД
     * @type {string}
     * @memberof ChangedFieldType
     */
    key: string;
    /**
     * Данные проверяемого поля
     * @type {string}
     * @memberof ChangedFieldType
     */
    value: string;
    /**
     * Данные для отображения на UI
     * @type {string}
     * @memberof ChangedFieldType
     */
    description: string;
}
/**
 * 
 * @export
 * @interface ChangedFieldTypeAllOf
 */
export interface ChangedFieldTypeAllOf {
    /**
     * Путь до проверяемого значения ЛД
     * @type {string}
     * @memberof ChangedFieldTypeAllOf
     */
    key: string;
    /**
     * Данные проверяемого поля
     * @type {string}
     * @memberof ChangedFieldTypeAllOf
     */
    value: string;
    /**
     * Данные для отображения на UI
     * @type {string}
     * @memberof ChangedFieldTypeAllOf
     */
    description: string;
}
/**
 * Гражданство
 * @export
 * @enum {string}
 */

export enum CitizenshipEnum {
    Rf = 'RF',
    NotRf = 'NOT_RF'
}

/**
 * 
 * @export
 * @interface CommonDocument
 */
export interface CommonDocument {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof CommonDocument
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof CommonDocument
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof CommonDocument
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof CommonDocument
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof CommonDocument
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof CommonDocument
     */
    status?: CommonDocumentStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof CommonDocument
     */
    checkDate?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum CommonDocumentStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface CommonDocumentAllOf
 */
export interface CommonDocumentAllOf {
    /**
     * Статус
     * @type {string}
     * @memberof CommonDocumentAllOf
     */
    status?: CommonDocumentAllOfStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof CommonDocumentAllOf
     */
    checkDate?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum CommonDocumentAllOfStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface ContactData
 */
export interface ContactData {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ContactData
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ContactData
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ContactData
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof ContactData
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof ContactData
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof ContactData
     */
    status?: ContactDataStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof ContactData
     */
    checkDate?: string;
    /**
     * Тип контакта
     * @type {string}
     * @memberof ContactData
     */
    contactType?: string;
    /**
     * Контакт тел/email
     * @type {string}
     * @memberof ContactData
     */
    contact?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum ContactDataStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface ContactDataAllOf
 */
export interface ContactDataAllOf {
    /**
     * Тип контакта
     * @type {string}
     * @memberof ContactDataAllOf
     */
    contactType?: string;
    /**
     * Контакт тел/email
     * @type {string}
     * @memberof ContactDataAllOf
     */
    contact?: string;
}
/**
 * 
 * @export
 * @interface Criteria
 */
export interface Criteria {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Criteria
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Criteria
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Criteria
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof Criteria
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof Criteria
     */
    modifyDate?: string;
    /**
     * Наименование критерия
     * @type {string}
     * @memberof Criteria
     */
    name: string;
    /**
     * Описание
     * @type {string}
     * @memberof Criteria
     */
    description?: string;
    /**
     * Сохраненный ID процесса из коллекции Process
     * @type {string}
     * @memberof Criteria
     */
    processId?: string;
    /**
     * Наименование файла процесса для выдачи
     * @type {string}
     * @memberof Criteria
     */
    processName?: string;
    /**
     * Фильтры для критериев
     * @type {Array<CriteriaFilter>}
     * @memberof Criteria
     */
    filters?: Array<CriteriaFilter>;
    /**
     * Тип критерия
     * @type {string}
     * @memberof Criteria
     */
    type: CriteriaTypeEnum;
    /**
     * Значения списка
     * @type {Array<string>}
     * @memberof Criteria
     */
    values?: Array<string>;
    /**
     * Необходимость перерасчёта критерия
     * @type {boolean}
     * @memberof Criteria
     */
    reqCalculation?: boolean;
    /**
     *  TODO: Изменить тип структуры поля changedFieldGuid
     *  Список отвечающий за хранение структуры полей ЛД, изменение которых влияет на перерасчет рассчитанного ранее критерия
     * @type {Array<string>}
     * @memberof Criteria
     */
     changedFields?: Array<CriteriaChangedField>;
    /**
     * Статус критерия
     * @type {object}
     * @memberof Criteria
     */ 
    status: string;
}

/**
    * @export
    * @enum {string}
    */
export enum CriteriaTypeEnum {
    Boolean = 'BOOLEAN',
    Number = 'NUMBER',
    Text = 'TEXT',
    List = 'LIST'
}

/**
 * 
 * @export
 * @interface CriteriaAllOf
 */
export interface CriteriaAllOf {
    /**
     * Наименование критерия
     * @type {string}
     * @memberof CriteriaAllOf
     */
    name: string;
    /**
     * Описание
     * @type {string}
     * @memberof CriteriaAllOf
     */
    description?: string;
    /**
     * Сохраненный ID процесса из коллекции Process
     * @type {string}
     * @memberof CriteriaAllOf
     */
    processId?: string;
    /**
     * Наименование файла процесса для выдачи
     * @type {string}
     * @memberof CriteriaAllOf
     */
    processName?: string;
    /**
     * Фильтры для критериев
     * @type {Array<CriteriaFilter>}
     * @memberof CriteriaAllOf
     */
    filters?: Array<CriteriaFilter>;
    /**
     * Тип критерия
     * @type {string}
     * @memberof CriteriaAllOf
     */
    type: CriteriaAllOfTypeEnum;
    /**
     * Значения списка
     * @type {Array<string>}
     * @memberof CriteriaAllOf
     */
    values?: Array<string>;
    /**
     * Необходимость перерасчёта критерия
     * @type {boolean}
     * @memberof CriteriaAllOf
     */
    reqCalculation?: boolean;
    /**
     *  Список отвечающий за хранение структуры полей ЛД, изменение которых влияет на перерасчет рассчитанного ранее критерия
     * @type {Array<CriteriaChangedField>}
     * @memberof CriteriaAllOf
     */
    changedFields?: Array<CriteriaChangedField>;
    /**
     * Статус критерия TODO openaoi
     * @type {boolean}
     * @memberof CriteriaAllOf
     */
    status: string;
}

/**
    * @export
    * @enum {string}
    */
export enum CriteriaAllOfTypeEnum {
    Boolean = 'BOOLEAN',
    Number = 'NUMBER',
    Text = 'TEXT',
    List = 'LIST'
}

/** TODO поправить на беке CriteriaAllOfEnum
    * @export
    * @enum {string}
    */
 export enum CriteriaAllOfStatusEnum { 
    Draft = 'DRAFT',
    Activated = 'ACTIVATED',
    Deactivated = 'DEACTIVATED',
}

/**
 * Параметры выборки личных дел
 * @export
 * @interface CriteriaChangedField
 */
export interface CriteriaChangedField {
    /**
     * Путь до проверяемого значения ЛД
     * @type {string}
     * @memberof CriteriaChangedField
     */
    key?: string;
    /**
     * Данные проверяемого поля
     * @type {string}
     * @memberof CriteriaChangedField
     */
    value?: string;
    /**
     * Данные для отображения на UI
     * @type {string}
     * @memberof CriteriaChangedField
     */
    changedFieldGuid?: string;
}
/**
 * Параметры выборки личных дел
 * @export
 * @interface CriteriaFilter
 */
export interface CriteriaFilter {
    /**
     * Порядковый номер фильтра
     * @type {number}
     * @memberof CriteriaFilter
     */
    filterId?: number;
    /**
     * Guid фильтра из справочника, выбранный пользователем
     * @type {string}
     * @memberof CriteriaFilter
     */
    guidFilter: string;
    /**
     * Коллекция в которой находится атрибут для поиска
     * @type {string}
     * @memberof CriteriaFilter
     */
    scheme?: string;
    /**
     * Название поля для поиска
     * @type {string}
     * @memberof CriteriaFilter
     */
    fieldName?: string;
    /**
     * Значение атрибута для поиска
     * @type {string}
     * @memberof CriteriaFilter
     */
    value: string;
    /**
     * Логический оператор сравнения
     * @type {string}
     * @memberof CriteriaFilter
     */
    operator: CriteriaFilterOperatorEnum;
    /**
     * Значение для последовательной связи фильтров
     * @type {string}
     * @memberof CriteriaFilter
     */
    globalOperator?: CriteriaFilterGlobalOperatorEnum;
}

/**
    * @export
    * @enum {string}
    */
export enum CriteriaFilterOperatorEnum {
    Equal = 'EQUAL',
    NotEqual = 'NOT_EQUAL',
    GreaterThan = 'GREATER_THAN',
    GreaterThanOrEqual = 'GREATER_THAN_OR_EQUAL',
    LessThan = 'LESS_THAN',
    LessThanOrEqual = 'LESS_THAN_OR_EQUAL',
    In = 'IN',
    NotIn = 'NOT_IN',
    Like = 'LIKE',
    NotLike = 'NOT_LIKE'
}
/**
    * @export
    * @enum {string}
    */
export enum CriteriaFilterGlobalOperatorEnum {
    And = 'AND',
    Or = 'OR'
}

/**
 * 
 * @export
 * @interface CriteriaPage
 */
export interface CriteriaPage {
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof CriteriaPage
     */
    foundRows?: number;
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof CriteriaPage
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof CriteriaPage
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof CriteriaPage
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof CriteriaPage
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof CriteriaPage
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof CriteriaPage
     */
    perPage?: number;
    /**
     * Схема документа
     * @type {string}
     * @memberof CriteriaPage
     */
    schema?: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof CriteriaPage
     */
    expand?: Array<string>;
    /**
     * 
     * @type {Array<Criteria>}
     * @memberof CriteriaPage
     */
    records: Array<Criteria>;
}
/**
 * Статус критерия
 * @export
 * @enum {string}
 */

export enum CriteriaStatusEnum {
    Draft = 'DRAFT',
    Activated = 'ACTIVATED',
    Deactivated = 'DEACTIVATED'
}

/**
 * 
 * @export
 * @interface DashBoardDto
 */
export interface DashBoardDto {
    /**
     * 
     * @type {number}
     * @memberof DashBoardDto
     */
    nonDuplicatedPersonsCount?: number;
    /**
     * 
     * @type {number}
     * @memberof DashBoardDto
     */
    personsWithPassportCount?: number;
    /**
     * 
     * @type {number}
     * @memberof DashBoardDto
     */
    personsWithApplicationsCount?: number;
    /**
     * 
     * @type {number}
     * @memberof DashBoardDto
     */
    personsWithRegAddressCount?: number;
    /**
     * 
     * @type {number}
     * @memberof DashBoardDto
     */
    personsWithPaymentDataCount?: number;
    /**
     * 
     * @type {Array<ApplicationsCountGroup>}
     * @memberof DashBoardDto
     */
    personsApplicationsPieList?: Array<ApplicationsCountGroup>;
}
/**
 * 
 * @export
 * @interface DecisionData
 */
export interface DecisionData {
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    registryCode?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    registryID?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    decisionId?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    applicationRegNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    service?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    serviceFullName?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    serviceID?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    departmentFullName?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    departmentId?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    applicationId?: string;
    /**
     * 
     * @type {number}
     * @memberof DecisionData
     */
    created?: number;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    finishSignDate?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    finishDate?: string;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    paymentDataSum?: string;
    /**
     * 
     * @type {number}
     * @memberof DecisionData
     */
    regNumber?: number;
    /**
     * 
     * @type {string}
     * @memberof DecisionData
     */
    state?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof DecisionData
     */
    exportId?: Array<string>;
    /**
     * 
     * @type {ApplicationData}
     * @memberof DecisionData
     */
    applicationData?: ApplicationData;
    /**
     * 
     * @type {Array<RegistryData>}
     * @memberof DecisionData
     */
    registry?: Array<RegistryData>;
}
/**
 * 
 * @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 DocumentType
 */
export interface DocumentType {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DocumentType
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof DocumentType
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof DocumentType
     */
    schema: string;
    /**
     * Тип документа
     * @type {string}
     * @memberof DocumentType
     */
    documentType?: string;
    /**
     * Код документа
     * @type {string}
     * @memberof DocumentType
     */
    name?: string;
    /**
     * Описание типа документа
     * @type {string}
     * @memberof DocumentType
     */
    description?: string;
    /**
     * Максимальное количество
     * @type {number}
     * @memberof DocumentType
     */
    countLimit?: number;
    /**
     * Необходимы проверки
     * @type {boolean}
     * @memberof DocumentType
     */
    needCheck?: boolean;
}
/**
 * 
 * @export
 * @interface DocumentTypeAllOf
 */
export interface DocumentTypeAllOf {
    /**
     * Тип документа
     * @type {string}
     * @memberof DocumentTypeAllOf
     */
    documentType?: string;
    /**
     * Код документа
     * @type {string}
     * @memberof DocumentTypeAllOf
     */
    name?: string;
    /**
     * Описание типа документа
     * @type {string}
     * @memberof DocumentTypeAllOf
     */
    description?: string;
    /**
     * Максимальное количество
     * @type {number}
     * @memberof DocumentTypeAllOf
     */
    countLimit?: number;
    /**
     * Необходимы проверки
     * @type {boolean}
     * @memberof DocumentTypeAllOf
     */
    needCheck?: boolean;
}
/**
 * 
 * @export
 * @interface EnrichByDuplicateRequest
 */
export interface EnrichByDuplicateRequest {
    /**
     * 
     * @type {string}
     * @memberof EnrichByDuplicateRequest
     */
    basePersonId?: string;
    /**
     * 
     * @type {PersonDto}
     * @memberof EnrichByDuplicateRequest
     */
    duplicatePerson?: PersonDto;
}
/**
 * Тип поля фильтра
 * @export
 * @enum {string}
 */

export enum FilterFieldTypeEnum {
    Boolean = 'BOOLEAN',
    List = 'LIST',
    Date = 'DATE',
    String = 'STRING',
    Directory = 'DIRECTORY'
}

/**
 * 
 * @export
 * @interface FilterType
 */
export interface FilterType {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof FilterType
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof FilterType
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof FilterType
     */
    schema: string;
    /**
     * Название фильтра для UI
     * @type {string}
     * @memberof FilterType
     */
    description?: string;
    /**
     * Коллекция для поиска
     * @type {string}
     * @memberof FilterType
     */
    collection?: string;
    /**
     * Атрибут
     * @type {string}
     * @memberof FilterType
     */
    attribute?: string;
    /**
     * Тип поля TODO string
     * @type {string}
     * @memberof FilterType
     */
    type?: string;
    /**
     * Массив операторов пригодных для каждого фильтра
     * @type {Array<{ [key: string]: string; }>}
     * @memberof FilterType
     */
    operator?: Array<{ [key: string]: string; }>;
    /**
     * Параметры списка
     * @type {Array<{ [key: string]: string; }>}
     * @memberof FilterType
     */
    searchParams?: Array<{ [key: string]: string; }>;
}
/**
 * 
 * @export
 * @interface FilterTypeAllOf
 */
export interface FilterTypeAllOf {
    /**
     * Название фильтра для UI
     * @type {string}
     * @memberof FilterTypeAllOf
     */
    description?: string;
    /**
     * Коллекция для поиска
     * @type {string}
     * @memberof FilterTypeAllOf
     */
    collection?: string;
    /**
     * Атрибут
     * @type {string}
     * @memberof FilterTypeAllOf
     */
    attribute?: string;
    /**
     * Тип поля
     * @type {object}
     * @memberof FilterTypeAllOf
     */
    type?: object;
    /**
     * Массив операторов пригодных для каждого фильтра
     * @type {Array<{ [key: string]: string; }>}
     * @memberof FilterTypeAllOf
     */
    operator?: Array<{ [key: string]: string; }>;
    /**
     * Параметры списка
     * @type {Array<{ [key: string]: string; }>}
     * @memberof FilterTypeAllOf
     */
    searchParams?: Array<{ [key: string]: string; }>;
}
/**
 * Пол
 * @export
 * @enum {string}
 */

export enum GenderEnum {
    Male = 'MALE',
    Female = 'FEMALE'
}

/**
 * 
 * @export
 * @interface InterdepReq
 */
export interface InterdepReq {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof InterdepReq
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof InterdepReq
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof InterdepReq
     */
    schema: string;
    /**
     * Дата отправки
     * @type {string}
     * @memberof InterdepReq
     */
    sendDate?: string;
    /**
     * Структура запроса
     * @type {{ [key: string]: object; }}
     * @memberof InterdepReq
     */
    request?: { [key: string]: object; };
    /**
     * Структура ответа
     * @type {{ [key: string]: object; }}
     * @memberof InterdepReq
     */
    response?: { [key: string]: object; };
    /**
     * Сквозной гуид запроса
     * @type {string}
     * @memberof InterdepReq
     */
    traceId?: string;
    /**
     * Дата получения ответа
     * @type {string}
     * @memberof InterdepReq
     */
    receiveDate?: string;
    /**
     * МЗ код
     * @type {string}
     * @memberof InterdepReq
     */
    mzCode?: string;
    /**
     * Схема вида сведений
     * @type {string}
     * @memberof InterdepReq
     */
    version?: string;
    /**
     * Статус ответа СМЭВ
     * @type {string}
     * @memberof InterdepReq
     */
    status?: InterdepReqStatusEnum;
    /**
     * Статус обработки данных ответа СМЭВ
     * @type {string}
     * @memberof InterdepReq
     */
    dataProcessingStatus?: InterdepReqDataProcessingStatusEnum;
    /**
     * Кол-во попыток
     * @type {number}
     * @memberof InterdepReq
     */
    numberOfAttempts?: number;
    /**
     * Id предыдущего запроса
     * @type {string}
     * @memberof InterdepReq
     */
    previousInterdepReqId?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum InterdepReqStatusEnum {
    Ok = 'OK',
    Fail = 'FAIL',
    Pending = 'PENDING',
    SendingFail = 'SENDING_FAIL'
}
/**
    * @export
    * @enum {string}
    */
export enum InterdepReqDataProcessingStatusEnum {
    Updated = 'UPDATED',
    Skipped = 'SKIPPED'
}

/**
 * 
 * @export
 * @interface InterdepReqAllOf
 */
export interface InterdepReqAllOf {
    /**
     * Дата отправки
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    sendDate?: string;
    /**
     * Структура запроса
     * @type {{ [key: string]: object; }}
     * @memberof InterdepReqAllOf
     */
    request?: { [key: string]: object; };
    /**
     * Структура ответа
     * @type {{ [key: string]: object; }}
     * @memberof InterdepReqAllOf
     */
    response?: { [key: string]: object; };
    /**
     * Сквозной гуид запроса
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    traceId?: string;
    /**
     * Дата получения ответа
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    receiveDate?: string;
    /**
     * МЗ код
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    mzCode?: string;
    /**
     * Схема вида сведений
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    version?: string;
    /**
     * Статус ответа СМЭВ
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    status?: InterdepReqAllOfStatusEnum;
    /**
     * Статус обработки данных ответа СМЭВ
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    dataProcessingStatus?: InterdepReqAllOfDataProcessingStatusEnum;
    /**
     * Кол-во попыток
     * @type {number}
     * @memberof InterdepReqAllOf
     */
    numberOfAttempts?: number;
    /**
     * Id предыдущего запроса
     * @type {string}
     * @memberof InterdepReqAllOf
     */
    previousInterdepReqId?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum InterdepReqAllOfStatusEnum {
    Ok = 'OK',
    Fail = 'FAIL',
    Pending = 'PENDING',
    SendingFail = 'SENDING_FAIL'
}
/**
    * @export
    * @enum {string}
    */
export enum InterdepReqAllOfDataProcessingStatusEnum {
    Updated = 'UPDATED',
    Skipped = 'SKIPPED'
}

/**
 * 
 * @export
 * @interface MigrationControllerBody
 */
export interface MigrationControllerBody {
    /**
     * 
     * @type {string}
     * @memberof MigrationControllerBody
     */
    startDateFrom?: string;
    /**
     * 
     * @type {string}
     * @memberof MigrationControllerBody
     */
    startDateTo?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof MigrationControllerBody
     */
    serviceIds?: Array<string>;
    /**
     * 
     * @type {boolean}
     * @memberof MigrationControllerBody
     */
    isError?: boolean;
}
/**
 * 
 * @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 OrderData
 */
export interface OrderData {
    /**
     * 
     * @type {string}
     * @memberof OrderData
     */
    registryOrderCode?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderData
     */
    registryOrderID?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderData
     */
    id?: string;
    /**
     * 
     * @type {number}
     * @memberof OrderData
     */
    regNumber?: number;
    /**
     * 
     * @type {string}
     * @memberof OrderData
     */
    state?: string;
    /**
     * 
     * @type {number}
     * @memberof OrderData
     */
    created?: number;
    /**
     * 
     * @type {DecisionData}
     * @memberof OrderData
     */
    decisionData?: DecisionData;
}
/**
 * Страница
 * @export
 * @interface PageCriteria
 */
export interface PageCriteria {
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageCriteria
     */
    foundRows?: number;
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageCriteria
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageCriteria
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageCriteria
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageCriteria
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageCriteria
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageCriteria
     */
    perPage?: number;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageCriteria
     */
    schema?: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageCriteria
     */
    expand?: Array<string>;
    /**
     * 
     * @type {Array<Criteria>}
     * @memberof PageCriteria
     */
    records: Array<Criteria>;
}
/**
 * Страница
 * @export
 * @interface PagePerson
 */
export interface PagePerson {
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PagePerson
     */
    foundRows?: number;
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PagePerson
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PagePerson
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PagePerson
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PagePerson
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PagePerson
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PagePerson
     */
    perPage?: number;
    /**
     * Схема документа
     * @type {string}
     * @memberof PagePerson
     */
    schema?: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PagePerson
     */
    expand?: Array<string>;
    /**
     * 
     * @type {Array<Person>}
     * @memberof PagePerson
     */
    records: Array<Person>;
}
/**
 * 
 * @export
 * @interface PaymentData
 */
export interface PaymentData {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PaymentData
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PaymentData
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PaymentData
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PaymentData
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PaymentData
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PaymentData
     */
    status?: PaymentDataStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PaymentData
     */
    checkDate?: string;
    /**
     * БИК банка получателя
     * @type {string}
     * @memberof PaymentData
     */
    bic?: string;
    /**
     * Наименование банка получателя
     * @type {string}
     * @memberof PaymentData
     */
    bank?: string;
    /**
     * Номер кор.счет банка получателя
     * @type {string}
     * @memberof PaymentData
     */
    corrAcc?: string;
    /**
     * Номер банковского счета получателя
     * @type {string}
     * @memberof PaymentData
     */
    accNumber?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum PaymentDataStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PaymentDataAllOf
 */
export interface PaymentDataAllOf {
    /**
     * БИК банка получателя
     * @type {string}
     * @memberof PaymentDataAllOf
     */
    bic?: string;
    /**
     * Наименование банка получателя
     * @type {string}
     * @memberof PaymentDataAllOf
     */
    bank?: string;
    /**
     * Номер кор.счет банка получателя
     * @type {string}
     * @memberof PaymentDataAllOf
     */
    corrAcc?: string;
    /**
     * Номер банковского счета получателя
     * @type {string}
     * @memberof PaymentDataAllOf
     */
    accNumber?: string;
}
/**
 * 
 * @export
 * @interface Person
 */
export interface Person {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Person
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Person
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Person
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof Person
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof Person
     */
    modifyDate?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Person
     */
    personHidden?: boolean;
    /**
     * СНИЛС
     * @type {string}
     * @memberof Person
     */
    snils?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Person
     */
    firstName: string;
    /**
     * Фамилия
     * @type {string}
     * @memberof Person
     */
    lastName: string;
    /**
     * Отчество
     * @type {string}
     * @memberof Person
     */
    middleName?: string;
    /**
     * ФИО
     * @type {string}
     * @memberof Person
     */
    fullName?: string;
    /**
     * TODO Поправить на стороне сервера
     * @type {GenderEnum}
     * @memberof Person
     */
    gender: GenderEnum | null;
    /**
     * Дата рождения yyyy-MM-dd
     * @type {string}
     * @memberof Person
     */
    birthday?: string;
    /**
     * Дата смерти yyyy-MM-dd
     * @type {string}
     * @memberof Person
     */
    deathDate?: string;
    /**
     * TODO Поправить на стороне сервера
     * @type {CitizenshipEnum}
     * @memberof Person
     */
    citizenship: CitizenshipEnum | null;
    /**
     * ИНН
     * @type {string}
     * @memberof Person
     */
    inn?: string;
    /**
     * guid епгу (есиа)
     * @type {string}
     * @memberof Person
     */
    guidEpgu?: string;
    /**
     * 
     * @type {PersonStatusEnum}
     * @memberof Person
     */
    status?: PersonStatusEnum;
    /**
     * Причина отклонения
     * @type {string}
     * @memberof Person
     */
    rejectReason?: string;
    /**
     * Дееспособность
     * @type {boolean}
     * @memberof Person
     */
    legalCapacity?: boolean;
}
/**
 * 
 * @export
 * @interface PersonAddress
 */
export interface PersonAddress {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonAddress
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonAddress
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonAddress
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonAddress
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonAddress
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PersonAddress
     */
    status?: PersonAddressStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PersonAddress
     */
    checkDate?: string;
    /**
     * Тип адреса
     * @type {string}
     * @memberof PersonAddress
     */
    addressType?: string;
    /**
     * Код ФИАС из БД fias
     * @type {string}
     * @memberof PersonAddress
     */
    fiasCode?: string;
    /**
     * Адрес
     * @type {string}
     * @memberof PersonAddress
     */
    address?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum PersonAddressStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PersonAddressAllOf
 */
export interface PersonAddressAllOf {
    /**
     * Тип адреса
     * @type {string}
     * @memberof PersonAddressAllOf
     */
    addressType?: string;
    /**
     * Код ФИАС из БД fias
     * @type {string}
     * @memberof PersonAddressAllOf
     */
    fiasCode?: string;
    /**
     * Адрес
     * @type {string}
     * @memberof PersonAddressAllOf
     */
    address?: string;
}
/**
 * Персональные данные
 * @export
 * @interface PersonAllOf
 */
export interface PersonAllOf {
    /**
     * 
     * @type {boolean}
     * @memberof PersonAllOf
     */
    personHidden?: boolean;
    /**
     * СНИЛС
     * @type {string}
     * @memberof PersonAllOf
     */
    snils?: string;
    /**
     * Имя
     * @type {string}
     * @memberof PersonAllOf
     */
    firstName: string;
    /**
     * Фамилия
     * @type {string}
     * @memberof PersonAllOf
     */
    lastName: string;
    /**
     * Отчество
     * @type {string}
     * @memberof PersonAllOf
     */
    middleName?: string;
    /**
     * ФИО
     * @type {string}
     * @memberof PersonAllOf
     */
    fullName?: string;
    /**
     * TODO Поправить на стороне сервера
     * @type {GenderEnum}
     * @memberof PersonAllOf
     */
    gender: GenderEnum | null;
    /**
     * Дата рождения yyyy-MM-dd
     * @type {string}
     * @memberof PersonAllOf
     */
    birthday?: string;
    /**
     * Дата смерти yyyy-MM-dd
     * @type {string}
     * @memberof PersonAllOf
     */
    deathDate?: string;
    /**
     * TODO Поправить на стороне сервера
     * @type {CitizenshipEnum}
     * @memberof PersonAllOf
     */
    citizenship: CitizenshipEnum | null;
    /**
     * ИНН
     * @type {string}
     * @memberof PersonAllOf
     */
    inn?: string;
    /**
     * guid епгу (есиа)
     * @type {string}
     * @memberof PersonAllOf
     */
    guidEpgu?: string;
    /**
     * 
     * @type {PersonStatusEnum}
     * @memberof PersonAllOf
     */
    status?: PersonStatusEnum;
    /**
     * Причина отклонения
     * @type {string}
     * @memberof PersonAllOf
     */
    rejectReason?: string;
    /**
     * Дееспособность
     * @type {boolean}
     * @memberof PersonAllOf
     */
    legalCapacity?: boolean;
}
/**
 * 
 * @export
 * @interface PersonApplication
 */
export interface PersonApplication {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonApplication
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonApplication
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonApplication
     */
    schema: string;
    /**
     * Id из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplication
     */
    applicationUUID?: string;
    /**
     * orderId из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplication
     */
    applicationNumber?: string;
    /**
     * serviceId из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplication
     */
    serviceId?: string;
}
/**
 * 
 * @export
 * @interface PersonApplicationAllOf
 */
export interface PersonApplicationAllOf {
    /**
     * Id из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplicationAllOf
     */
    applicationUUID?: string;
    /**
     * orderId из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplicationAllOf
     */
    applicationNumber?: string;
    /**
     * serviceId из таблицы applications в БД document-registry
     * @type {string}
     * @memberof PersonApplicationAllOf
     */
    serviceId?: string;
}
/**
 * 
 * @export
 * @interface PersonCriteria
 */
export interface PersonCriteria {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonCriteria
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonCriteria
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonCriteria
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonCriteria
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonCriteria
     */
    modifyDate?: string;
    /**
     * Id критерия
     * @type {string}
     * @memberof PersonCriteria
     */
    criteriaId?: string;
    /**
     * Наименование критерия
     * @type {string}
     * @memberof PersonCriteria
     */
    criteriaName?: string;
    /**
     * Значение критерия
     * @type {string}
     * @memberof PersonCriteria
     */
    value?: string;
    /**
     * Срок перерасчёта критерия yyyy-MM-dd
     * @type {string}
     * @memberof PersonCriteria
     */
    dateTo?: string;
    /**
     * Дата последнего рассчёта критерия yyyy-MM-dd
     * @type {string}
     * @memberof PersonCriteria
     */
    calculationDate?: string;
}
/**
 * 
 * @export
 * @interface PersonCriteriaAllOf
 */
export interface PersonCriteriaAllOf {
    /**
     * Id критерия
     * @type {string}
     * @memberof PersonCriteriaAllOf
     */
    criteriaId?: string;
    /**
     * Наименование критерия
     * @type {string}
     * @memberof PersonCriteriaAllOf
     */
    criteriaName?: string;
    /**
     * Значение критерия
     * @type {string}
     * @memberof PersonCriteriaAllOf
     */
    value?: string;
    /**
     * Срок перерасчёта критерия yyyy-MM-dd
     * @type {string}
     * @memberof PersonCriteriaAllOf
     */
    dateTo?: string;
    /**
     * Дата последнего рассчёта критерия yyyy-MM-dd
     * @type {string}
     * @memberof PersonCriteriaAllOf
     */
    calculationDate?: string;
}
/**
 * 
 * @export
 * @interface PersonDataStatus
 */
export interface PersonDataStatus {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonDataStatus
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonDataStatus
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonDataStatus
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonDataStatus
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonDataStatus
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PersonDataStatus
     */
    status?: PersonDataStatusStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PersonDataStatus
     */
    checkDate?: string;
    /**
     * Поле
     * @type {object}
     * @memberof PersonDataStatus
     */
    field?: object;
}

/**
    * @export
    * @enum {string}
    */
export enum PersonDataStatusStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PersonDataStatusAllOf
 */
export interface PersonDataStatusAllOf {
    /**
     * Поле
     * @type {object}
     * @memberof PersonDataStatusAllOf
     */
    field?: object;
}
/**
 * 
 * @export
 * @interface PersonDocument
 */
export interface PersonDocument {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonDocument
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonDocument
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonDocument
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonDocument
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonDocument
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PersonDocument
     */
    status?: PersonDocumentStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PersonDocument
     */
    checkDate?: string;
    /**
     * Тип документа (паспорт, свидетельство о рождении, удостоверении беженца и тд)
     * @type {string}
     * @memberof PersonDocument
     */
    documentType?: string;
    /**
     * Номер
     * @type {string}
     * @memberof PersonDocument
     */
    number?: string;
    /**
     * Серия
     * @type {string}
     * @memberof PersonDocument
     */
    series?: string;
    /**
     * Кем выдан
     * @type {string}
     * @memberof PersonDocument
     */
    issuer?: string;
    /**
     * Дата выдачи yyyy-MM-dd
     * @type {string}
     * @memberof PersonDocument
     */
    dateFrom?: string;
    /**
     * Дата окончания действия yyyy-MM-dd
     * @type {string}
     * @memberof PersonDocument
     */
    dateTo?: string;
    /**
     * Код подразделения
     * @type {string}
     * @memberof PersonDocument
     */
    departmentCode?: string;
    /**
     * guid епгу (есиа)
     * @type {string}
     * @memberof PersonDocument
     */
    guidEpgu?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum PersonDocumentStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PersonDocumentAllOf
 */
export interface PersonDocumentAllOf {
    /**
     * Тип документа (паспорт, свидетельство о рождении, удостоверении беженца и тд)
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    documentType?: string;
    /**
     * Номер
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    number?: string;
    /**
     * Серия
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    series?: string;
    /**
     * Кем выдан
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    issuer?: string;
    /**
     * Дата выдачи yyyy-MM-dd
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    dateFrom?: string;
    /**
     * Дата окончания действия yyyy-MM-dd
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    dateTo?: string;
    /**
     * Код подразделения
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    departmentCode?: string;
    /**
     * guid епгу (есиа)
     * @type {string}
     * @memberof PersonDocumentAllOf
     */
    guidEpgu?: string;
}
/**
 * Данные личного дела
 * @export
 * @interface PersonDto
 */
export interface PersonDto {
    /**
     * 
     * @type {Person}
     * @memberof PersonDto
     */
    person?: Person;
    /**
     * Данные адресов
     * @type {Array<PersonAddress>}
     * @memberof PersonDto
     */
    addresses?: Array<PersonAddress>;
    /**
     * Данные ДУЛ
     * @type {Array<PersonDocument>}
     * @memberof PersonDto
     */
    documents?: Array<PersonDocument>;
    /**
     * Контакты
     * @type {Array<ContactData>}
     * @memberof PersonDto
     */
    contacts?: Array<ContactData>;
    /**
     * Платёжные данные
     * @type {Array<PaymentData>}
     * @memberof PersonDto
     */
    paymentsData?: Array<PaymentData>;
    /**
     * Меры соцподдержки
     * @type {Array<PersonSocialSupportMeasure>}
     * @memberof PersonDto
     */
    socialSupportMeasures?: Array<PersonSocialSupportMeasure>;
    /**
     * Заявления
     * @type {Array<PersonApplication>}
     * @memberof PersonDto
     */
    applications?: Array<PersonApplication>;
    /**
     * Связи с другими ЛД
     * @type {Array<PersonRelation>}
     * @memberof PersonDto
     */
    relations?: Array<PersonRelation>;
    /**
     * Межведомственные запросы
     * @type {Array<InterdepReq>}
     * @memberof PersonDto
     */
    interdepReqs?: Array<InterdepReq>;
    /**
     * Статусы основных полей личного дела
     * @type {Array<PersonDataStatus>}
     * @memberof PersonDto
     */
    personDataStatuses?: Array<PersonDataStatus>;
    /**
     * Критерии
     * @type {Array<PersonCriteria>}
     * @memberof PersonDto
     */
    criterias?: Array<PersonCriteria>;
    /**
     * Признак того надо ли менять статус на тот, что указан у person
     * @type {boolean}
     * @memberof PersonDto
     */
    needStatusChange?: boolean;
}
/**
 * Имя поля
 * @export
 * @enum {string}
 */

export enum PersonFieldNameEnum {
    Lastname = 'LASTNAME',
    Firstname = 'FIRSTNAME',
    Middlename = 'MIDDLENAME',
    Fio = 'FIO',
    Gender = 'GENDER',
    Birthday = 'BIRTHDAY',
    Deathdate = 'DEATHDATE',
    Snils = 'SNILS',
    Inn = 'INN',
    Citizenship = 'CITIZENSHIP',
    Legalcapacity = 'LEGALCAPACITY'
}

/**
 * 
 * @export
 * @interface PersonPage
 */
export interface PersonPage {
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PersonPage
     */
    foundRows?: number;
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PersonPage
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PersonPage
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PersonPage
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PersonPage
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PersonPage
     */
    page?: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PersonPage
     */
    perPage?: number;
    /**
     * Схема документа
     * @type {string}
     * @memberof PersonPage
     */
    schema?: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PersonPage
     */
    expand?: Array<string>;
    /**
     * 
     * @type {Array<Person>}
     * @memberof PersonPage
     */
    records: Array<Person>;
}
/**
 * 
 * @export
 * @interface PersonRelation
 */
export interface PersonRelation {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonRelation
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonRelation
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonRelation
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonRelation
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonRelation
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PersonRelation
     */
    status?: PersonRelationStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PersonRelation
     */
    checkDate?: string;
    /**
     * 
     * @type {PersonRelationTypeEnum}
     * @memberof PersonRelation
     */
    relationType?: PersonRelationTypeEnum;
}

/**
    * @export
    * @enum {string}
    */
export enum PersonRelationStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PersonRelationAllOf
 */
export interface PersonRelationAllOf {
    /**
     * 
     * @type {PersonRelationTypeEnum}
     * @memberof PersonRelationAllOf
     */
    relationType?: PersonRelationTypeEnum;
}
/**
 * Связь личного дела
 * @export
 * @interface PersonRelationDto
 */
export interface PersonRelationDto {
    /**
     * Данные связанного личного дела
     * @type {object}
     * @memberof PersonRelationDto
     */
    personDto?: object;
    /**
     * Тип связи
     * @type {object}
     * @memberof PersonRelationDto
     */
    relationType?: object;
}
/**
 * Тип связи ЛД
 * @export
 * @enum {string}
 */

export enum PersonRelationTypeEnum {
    Partner = 'PARTNER',
    Child = 'CHILD',
    Parent = 'PARENT',
    Representative = 'REPRESENTATIVE',
    Represented = 'REPRESENTED'
}

/**
 * 
 * @export
 * @interface PersonSocialSupportMeasure
 */
export interface PersonSocialSupportMeasure {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonSocialSupportMeasure
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    modifyDate?: string;
    /**
     * Статус
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    status?: PersonSocialSupportMeasureStatusEnum;
    /**
     * Дата и время проверки документа  yyyy-MM-dd\'T\'HH:mm:ss
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    checkDate?: string;
    /**
     * Id меры из справочника
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    measureId?: string;
    /**
     * Id категории получателя меры из справочника
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    recipientCategoryId?: string;
    /**
     * Дата установления меры yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    measureCreationDate?: string;
    /**
     * Период с yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    periodFrom?: string;
    /**
     * Период до yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    periodTo?: string;
    /**
     * Размер выплаты на момент назначения
     * @type {number}
     * @memberof PersonSocialSupportMeasure
     */
    payment?: number;
    /**
     * Связанное решение - гуид решения
     * @type {string}
     * @memberof PersonSocialSupportMeasure
     */
    solutionGuid?: string;
}

/**
    * @export
    * @enum {string}
    */
export enum PersonSocialSupportMeasureStatusEnum {
    NotConfirmed = 'NOT_CONFIRMED',
    NeedsVerification = 'NEEDS_VERIFICATION',
    Relevant = 'RELEVANT',
    NotRelevant = 'NOT_RELEVANT',
    Wrong = 'WRONG'
}

/**
 * 
 * @export
 * @interface PersonSocialSupportMeasureAllOf
 */
export interface PersonSocialSupportMeasureAllOf {
    /**
     * Id меры из справочника
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    measureId?: string;
    /**
     * Id категории получателя меры из справочника
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    recipientCategoryId?: string;
    /**
     * Дата установления меры yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    measureCreationDate?: string;
    /**
     * Период с yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    periodFrom?: string;
    /**
     * Период до yyyy-MM-dd
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    periodTo?: string;
    /**
     * Размер выплаты на момент назначения
     * @type {number}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    payment?: number;
    /**
     * Связанное решение - гуид решения
     * @type {string}
     * @memberof PersonSocialSupportMeasureAllOf
     */
    solutionGuid?: string;
}
/**
 * Статус ЛД
 * @export
 * @enum {string}
 */

export enum PersonStatusEnum {
    Draft = 'DRAFT',
    New = 'NEW',
    Duplicate = 'DUPLICATE',
    NotConfirmed = 'NOT_CONFIRMED',
    Reviewing = 'REVIEWING',
    Modified = 'MODIFIED',
    PartiallyConfirmed = 'PARTIALLY_CONFIRMED',
    Confirmed = 'CONFIRMED',
    Gettingsnils = 'GETTINGSNILS'
}

/**
 * Данные личного дела из внешнего источника
 * @export
 * @interface PersonalAccount
 */
export interface PersonalAccount {
    /**
     * Данные личного дела
     * @type {object}
     * @memberof PersonalAccount
     */
    personDto?: object;
    /**
     * Источник
     * @type {object}
     * @memberof PersonalAccount
     */
    source?: object;
    /**
     * Связанные личные дела
     * @type {Array<PersonRelationDto>}
     * @memberof PersonalAccount
     */
    relations?: Array<PersonRelationDto>;
}
/**
 * 
 * @export
 * @interface PersonalAccountSource
 */
export interface PersonalAccountSource {
    /**
     * Источник поступления личного дела
     * @type {string}
     * @memberof PersonalAccountSource
     */
    sourceName?: string;
    /**
     * Идентификатор заявления
     * @type {string}
     * @memberof PersonalAccountSource
     */
    orderId?: string;
    /**
     * GUID заявления
     * @type {string}
     * @memberof PersonalAccountSource
     */
    orderGuid?: string;
}
/**
 * 
 * @export
 * @interface RecipientCategory
 */
export interface RecipientCategory {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RecipientCategory
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RecipientCategory
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RecipientCategory
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof RecipientCategory
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof RecipientCategory
     */
    modifyDate?: string;
    /**
     * Код
     * @type {string}
     * @memberof RecipientCategory
     */
    code?: string;
    /**
     * Наименование категории
     * @type {string}
     * @memberof RecipientCategory
     */
    name?: string;
    /**
     * Примечание
     * @type {string}
     * @memberof RecipientCategory
     */
    note?: string;
    /**
     * Группа категории получателей
     * @type {string}
     * @memberof RecipientCategory
     */
    group?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof RecipientCategory
     */
    activity?: boolean;
}
/**
 * Категории получателей
 * @export
 * @interface RecipientCategoryAllOf
 */
export interface RecipientCategoryAllOf {
    /**
     * Код
     * @type {string}
     * @memberof RecipientCategoryAllOf
     */
    code?: string;
    /**
     * Наименование категории
     * @type {string}
     * @memberof RecipientCategoryAllOf
     */
    name?: string;
    /**
     * Примечание
     * @type {string}
     * @memberof RecipientCategoryAllOf
     */
    note?: string;
    /**
     * Группа категории получателей
     * @type {string}
     * @memberof RecipientCategoryAllOf
     */
    group?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof RecipientCategoryAllOf
     */
    activity?: boolean;
}
/**
 * 
 * @export
 * @interface RecipientCategoryGroup
 */
export interface RecipientCategoryGroup {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RecipientCategoryGroup
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    modifyDate?: string;
    /**
     * Код категории
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    code?: string;
    /**
     * Наименование категории
     * @type {string}
     * @memberof RecipientCategoryGroup
     */
    name?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof RecipientCategoryGroup
     */
    activity?: boolean;
}
/**
 * Группы категорий получателей мер
 * @export
 * @interface RecipientCategoryGroupAllOf
 */
export interface RecipientCategoryGroupAllOf {
    /**
     * Код категории
     * @type {string}
     * @memberof RecipientCategoryGroupAllOf
     */
    code?: string;
    /**
     * Наименование категории
     * @type {string}
     * @memberof RecipientCategoryGroupAllOf
     */
    name?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof RecipientCategoryGroupAllOf
     */
    activity?: boolean;
}
/**
 * Дополнительные коды к мере
 * @export
 * @interface RegionCode
 */
export interface RegionCode {
    /**
     * Уникальный идентификатор региона из общего справочника регионов на idm
     * @type {string}
     * @memberof RegionCode
     */
    region: string;
    /**
     * Код меры для конкретного региона
     * @type {string}
     * @memberof RegionCode
     */
    code: string;
}
/**
 * 
 * @export
 * @interface RegistryData
 */
export interface RegistryData {
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    registryCode?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    registryId?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    applicationRegNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    service?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    serviceFullName?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    serviceID?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    departmentFullName?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    departmentId?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    applicationId?: string;
    /**
     * 
     * @type {number}
     * @memberof RegistryData
     */
    created?: number;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    finishDate?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    finishSignDate?: string;
    /**
     * 
     * @type {string}
     * @memberof RegistryData
     */
    paymentDataSum?: string;
}
/**
 * 
 * @export
 * @interface Response
 */
export interface Response {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof Response
     */
    success?: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof Response
     */
    message?: string;
}
/**
 * 
 * @export
 * @interface ResultPaymentData
 */
export interface ResultPaymentData {
    /**
     * 
     * @type {{ [key: string]: Array<OrderData>; }}
     * @memberof ResultPaymentData
     */
    orderData?: { [key: string]: Array<OrderData>; };
}
/**
 * 
 * @export
 * @interface ReturnDecisionData
 */
export interface ReturnDecisionData {
    /**
     * 
     * @type {Array<ApplicationData>}
     * @memberof ReturnDecisionData
     */
    applicationData?: Array<ApplicationData>;
}
/**
 * 
 * @export
 * @interface S3LinkDto
 */
export interface S3LinkDto {
    /**
     * Имя файла
     * @type {string}
     * @memberof S3LinkDto
     */
    filename?: string;
    /**
     * Ссылка на s3
     * @type {string}
     * @memberof S3LinkDto
     */
    s3link?: string;
}
/**
 * Данные для поиска
 * @export
 * @interface SearchData
 */
export interface SearchData {
    /**
     * СНИЛС
     * @type {string}
     * @memberof SearchData
     */
    snils?: string;
    /**
     * ФИО
     * @type {string}
     * @memberof SearchData
     */
    fullName?: string;
    /**
     * Дата рождения в формате YYYY-MM-DD
     * @type {string}
     * @memberof SearchData
     */
    birthday?: string;
    /**
     * ИНН
     * @type {string}
     * @memberof SearchData
     */
    inn?: string;
    /**
     * Контакт телефон
     * @type {string}
     * @memberof SearchData
     */
    phone?: string;
    /**
     * Контакт email
     * @type {string}
     * @memberof SearchData
     */
    email?: string;
    /**
     * Тип документа (паспорт, свидетельство о рождении, удостоверении беженца и тд)
     * @type {string}
     * @memberof SearchData
     */
    documentType?: string;
    /**
     * Номер документа
     * @type {string}
     * @memberof SearchData
     */
    number?: string;
    /**
     * Серия документа
     * @type {string}
     * @memberof SearchData
     */
    series?: string;
    /**
     * Адрес
     * @type {string}
     * @memberof SearchData
     */
    address?: string;
    /**
     * Номер заявления
     * @type {string}
     * @memberof SearchData
     */
    applicationNum?: string;
    /**
     * Номер решения
     * @type {string}
     * @memberof SearchData
     */
    solutionNum?: string;
    /**
     * Статус
     * @type {string}
     * @memberof SearchData
     */
    hidden?: SearchDataHiddenEnum;
    /**
     * Гуид запроса
     * @type {string}
     * @memberof SearchData
     */
    traceId?: string;
    /**
     * Идентификатор меры соц.поддержки
     * @type {string}
     * @memberof SearchData
     */
    measureId?: string;
    /**
     * Идентификатор категории получателя меры соц.поддержки
     * @type {string}
     * @memberof SearchData
     */
    recipientCategoryId?: string;
    /**
     * 
     * @type {Array<SearchPersonCriteria>}
     * @memberof SearchData
     */
    criteria?: Array<SearchPersonCriteria>;
}

/**
    * @export
    * @enum {string}
    */
export enum SearchDataHiddenEnum {
    Active = 'ACTIVE',
    Deleted = 'DELETED',
    All = 'ALL'
}

/**
 * Критерий для поиска
 * @export
 * @interface SearchPersonCriteria
 */
export interface SearchPersonCriteria {
    /**
     * Идентификатор критерия из справочника Criteria
     * @type {string}
     * @memberof SearchPersonCriteria
     */
    criteriaId: string;
    /**
     * Оператор для поиска значения критерия
     * @type {string}
     * @memberof SearchPersonCriteria
     */
    operator: SearchPersonCriteriaOperatorEnum;
    /**
     * Значение критерия для поиска
     * @type {string}
     * @memberof SearchPersonCriteria
     */
    value: string;
}

/**
    * @export
    * @enum {string}
    */
export enum SearchPersonCriteriaOperatorEnum {
    Equal = 'EQUAL',
    NotEqual = 'NOT_EQUAL',
    GreaterThan = 'GREATER_THAN',
    GreaterThanOrEqual = 'GREATER_THAN_OR_EQUAL',
    LessThan = 'LESS_THAN',
    LessThanOrEqual = 'LESS_THAN_OR_EQUAL',
    In = 'IN',
    NotIn = 'NOT_IN',
    Like = 'LIKE',
    NotLike = 'NOT_LIKE'
}

/**
 * Запрос поиска
 * @export
 * @interface SearchRequest
 */
export interface SearchRequest {
    /**
     * Номер страницы
     * @type {number}
     * @memberof SearchRequest
     */
    page?: number;
    /**
     * Количество элементов на страницу
     * @type {number}
     * @memberof SearchRequest
     */
    perPage?: number;
    /**
     * Сортировка
     * @type {string}
     * @memberof SearchRequest
     */
    sort?: string;
    /**
     * добавление в ответ из других таблиц. Пример expand: contactdata,paymentdata,personapplication,persondocument
     * @type {string}
     * @memberof SearchRequest
     */
    expand?: string;
    /**
     * 
     * @type {SearchData}
     * @memberof SearchRequest
     */
    searchData?: SearchData;
}
/**
 * 
 * @export
 * @interface SocialSupportMeasure
 */
export interface SocialSupportMeasure {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof SocialSupportMeasure
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    schema: string;
    /**
     * Дата добавления
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    creationDate?: string;
    /**
     * Дата изменения
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    modifyDate?: string;
    /**
     * Код меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    code?: string;
    /**
     * Наименование меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    name?: string;
    /**
     * Уровень нормативно-правового регулирования меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    supportLevelCode?: string;
    /**
     * Источник финансирования меры социальной защиты
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    financeSourceCode?: string;
    /**
     * Форма предоставления меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    provisionFormCode?: string;
    /**
     * Код рубрикатора
     * @type {string}
     * @memberof SocialSupportMeasure
     */
    rubricatorCode?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof SocialSupportMeasure
     */
    activity?: boolean;
    /**
     * Дополнительные коды к мере
     * @type {Array<RegionCode>}
     * @memberof SocialSupportMeasure
     */
    regionCodes?: Array<RegionCode>;
}
/**
 * Меры социальной поддержки
 * @export
 * @interface SocialSupportMeasureAllOf
 */
export interface SocialSupportMeasureAllOf {
    /**
     * Код меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    code?: string;
    /**
     * Наименование меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    name?: string;
    /**
     * Уровень нормативно-правового регулирования меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    supportLevelCode?: string;
    /**
     * Источник финансирования меры социальной защиты
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    financeSourceCode?: string;
    /**
     * Форма предоставления меры социальной защиты (поддержки)
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    provisionFormCode?: string;
    /**
     * Код рубрикатора
     * @type {string}
     * @memberof SocialSupportMeasureAllOf
     */
    rubricatorCode?: string;
    /**
     * Активность
     * @type {boolean}
     * @memberof SocialSupportMeasureAllOf
     */
    activity?: boolean;
    /**
     * Дополнительные коды к мере
     * @type {Array<RegionCode>}
     * @memberof SocialSupportMeasureAllOf
     */
    regionCodes?: Array<RegionCode>;
}
// TODO: Добавляется вручную
export enum ImportOperationTypeEnum {
    Update = 'UPDATE',
    Create = 'CREATE'
}
/**
 * 
 * @export
 * @interface SocialSupportMeasureUpdateDto
 */
export interface SocialSupportMeasureUpdateDto {
    /**
     * 
     * @type {string}
     * @memberof SocialSupportMeasureUpdateDto
     */
    id?: string;
    /**
     * 
     * @type {Array<RegionCode>}
     * @memberof SocialSupportMeasureUpdateDto
     */
    regionCodes?: Array<RegionCode>;
}

/**
 * ConvertApi - axios parameter creator
 * @export
 */
export const ConvertApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Преобразует json объекта в xml c использованием файла xslt
         * @param {object} [payload] json как текст
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        convertJsonToXml: async (payload?: object, template?: any, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/convert-format-with-xslt/json-to-xml`;
            // 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;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();


            if (payload !== undefined) { 
                localVarFormParams.append('payload', new Blob([JSON.stringify(payload)], { type: "application/json", }));
            }
    
            if (template !== undefined) { 
                localVarFormParams.append('template', template as any);
            }
    
    
            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = localVarFormParams;

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Получает xml объект по ссылке на s3 и преобразует его в json c использованием файла xslt
         * @param {string} [payload] s3 ссылка на xml-файл
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        convertXmlToJson: async (payload?: string, template?: any, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/convert-format-with-xslt/xml-to-json`;
            // 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;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();


            if (payload !== undefined) { 
                localVarFormParams.append('payload', payload as any);
            }
    
            if (template !== undefined) { 
                localVarFormParams.append('template', template as any);
            }
    
    
            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = localVarFormParams;

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

/**
 * ConvertApi - functional programming interface
 * @export
 */
export const ConvertApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ConvertApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Преобразует json объекта в xml c использованием файла xslt
         * @param {object} [payload] json как текст
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async convertJsonToXml(payload?: object, template?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<S3LinkDto>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.convertJsonToXml(payload, template, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получает xml объект по ссылке на s3 и преобразует его в json c использованием файла xslt
         * @param {string} [payload] s3 ссылка на xml-файл
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async convertXmlToJson(payload?: string, template?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.convertXmlToJson(payload, template, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ConvertApi - factory interface
 * @export
 */
export const ConvertApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ConvertApiFp(configuration)
    return {
        /**
         * 
         * @summary Преобразует json объекта в xml c использованием файла xslt
         * @param {object} [payload] json как текст
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        convertJsonToXml(payload?: object, template?: any, options?: any): AxiosPromise<S3LinkDto> {
            return localVarFp.convertJsonToXml(payload, template, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получает xml объект по ссылке на s3 и преобразует его в json c использованием файла xslt
         * @param {string} [payload] s3 ссылка на xml-файл
         * @param {any} [template] таблица xslt-стилей как файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        convertXmlToJson(payload?: string, template?: any, options?: any): AxiosPromise<Response> {
            return localVarFp.convertXmlToJson(payload, template, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ConvertApi - object-oriented interface
 * @export
 * @class ConvertApi
 * @extends {BaseAPI}
 */
export class ConvertApi extends BaseAPI {
    /**
     * 
     * @summary Преобразует json объекта в xml c использованием файла xslt
     * @param {object} [payload] json как текст
     * @param {any} [template] таблица xslt-стилей как файл
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ConvertApi
     */
    public convertJsonToXml(payload?: object, template?: any, options?: any) {
        return ConvertApiFp(this.configuration).convertJsonToXml(payload, template, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получает xml объект по ссылке на s3 и преобразует его в json c использованием файла xslt
     * @param {string} [payload] s3 ссылка на xml-файл
     * @param {any} [template] таблица xslt-стилей как файл
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ConvertApi
     */
    public convertXmlToJson(payload?: string, template?: any, options?: any) {
        return ConvertApiFp(this.configuration).convertXmlToJson(payload, template, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * CriteriaApi - axios parameter creator
 * @export
 */
export const CriteriaApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Criteria>} criteria Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCriteria: async (criteria: Array<Criteria>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'criteria' is not null or undefined
            assertParamExists('createCriteria', 'criteria', criteria)
            const localVarPath = `/criteria`;
            // 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(criteria, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {string} [kILL] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteCriteria: async (requestBody: Array<string>, kILL?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('deleteCriteria', 'requestBody', requestBody)
            const localVarPath = `/criteria`;
            // 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;

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


    
            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(requestBody, localVarRequestOptions, configuration)

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


    
            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}
         */
        listFilterTypes: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/criteria-dictionary`;
            // 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,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 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}
         */
        pagingCriteria: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/criteria`;
            // 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 {Array<Criteria>} criteria Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateCriteria: async (criteria: Array<Criteria>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'criteria' is not null or undefined
            assertParamExists('updateCriteria', 'criteria', criteria)
            const localVarPath = `/criteria`;
            // 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(criteria, localVarRequestOptions, configuration)

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

/**
 * CriteriaApi - functional programming interface
 * @export
 */
export const CriteriaApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = CriteriaApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Criteria>} criteria Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createCriteria(criteria: Array<Criteria>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createCriteria(criteria, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {string} [kILL] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteCriteria(requestBody: Array<string>, kILL?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteCriteria(requestBody, kILL, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getCriteria(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Criteria>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getCriteria(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника измененных полей
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listChangedFields(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ChangedFieldType>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listChangedFields(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника критериев
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listCriteria(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Criteria>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listCriteria(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника типов фильтров
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listFilterTypes(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<FilterType>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listFilterTypes(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 pagingCriteria(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CriteriaPage>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingCriteria(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Criteria>} criteria Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateCriteria(criteria: Array<Criteria>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateCriteria(criteria, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * CriteriaApi - factory interface
 * @export
 */
export const CriteriaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = CriteriaApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Criteria>} criteria Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCriteria(criteria: Array<Criteria>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.createCriteria(criteria, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {string} [kILL] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteCriteria(requestBody: Array<string>, kILL?: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteCriteria(requestBody, kILL, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCriteria(id: string, expand?: string, options?: any): AxiosPromise<Criteria> {
            return localVarFp.getCriteria(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника измененных полей
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listChangedFields(options?: any): AxiosPromise<Array<ChangedFieldType>> {
            return localVarFp.listChangedFields(options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника критериев
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listCriteria(options?: any): AxiosPromise<Array<Criteria>> {
            return localVarFp.listCriteria(options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника типов фильтров
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listFilterTypes(options?: any): AxiosPromise<Array<FilterType>> {
            return localVarFp.listFilterTypes(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}
         */
        pagingCriteria(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<CriteriaPage> {
            return localVarFp.pagingCriteria(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Criteria>} criteria Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateCriteria(criteria: Array<Criteria>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateCriteria(criteria, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * CriteriaApi - object-oriented interface
 * @export
 * @class CriteriaApi
 * @extends {BaseAPI}
 */
export class CriteriaApi extends BaseAPI {
    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Criteria>} criteria Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CriteriaApi
     */
    public createCriteria(criteria: Array<Criteria>, options?: any) {
        return CriteriaApiFp(this.configuration).createCriteria(criteria, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет объект по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {string} [kILL] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CriteriaApi
     */
    public deleteCriteria(requestBody: Array<string>, kILL?: string, options?: any) {
        return CriteriaApiFp(this.configuration).deleteCriteria(requestBody, kILL, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * Возвращает список без пейджинга.
     * @summary Возвращает все записи справочника измененных полей
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CriteriaApi
     */
    public listChangedFields(options?: any) {
        return CriteriaApiFp(this.configuration).listChangedFields(options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * Возвращает список без пейджинга.
     * @summary Возвращает все записи справочника типов фильтров
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CriteriaApi
     */
    public listFilterTypes(options?: any) {
        return CriteriaApiFp(this.configuration).listFilterTypes(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 CriteriaApi
     */
    public pagingCriteria(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return CriteriaApiFp(this.configuration).pagingCriteria(page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Criteria>} criteria Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CriteriaApi
     */
    public updateCriteria(criteria: Array<Criteria>, options?: any) {
        return CriteriaApiFp(this.configuration).updateCriteria(criteria, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * DashboardApi - axios parameter creator
 * @export
 */
export const DashboardApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Возвращает информацию по общему Dashboard
         * @summary Возвращает информацию по общему Dashboard
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        dashboard: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/dashboard`;
            // 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,
            };
        },
    }
};

/**
 * DashboardApi - functional programming interface
 * @export
 */
export const DashboardApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DashboardApiAxiosParamCreator(configuration)
    return {
        /**
         * Возвращает информацию по общему Dashboard
         * @summary Возвращает информацию по общему Dashboard
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async dashboard(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DashBoardDto>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.dashboard(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DashboardApi - factory interface
 * @export
 */
export const DashboardApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DashboardApiFp(configuration)
    return {
        /**
         * Возвращает информацию по общему Dashboard
         * @summary Возвращает информацию по общему Dashboard
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        dashboard(options?: any): AxiosPromise<DashBoardDto> {
            return localVarFp.dashboard(options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DashboardApi - object-oriented interface
 * @export
 * @class DashboardApi
 * @extends {BaseAPI}
 */
export class DashboardApi extends BaseAPI {
    /**
     * Возвращает информацию по общему Dashboard
     * @summary Возвращает информацию по общему Dashboard
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DashboardApi
     */
    public dashboard(options?: any) {
        return DashboardApiFp(this.configuration).dashboard(options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * DocumentTypesApi - axios parameter creator
 * @export
 */
export const DocumentTypesApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника типов документов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listDocumentTypes: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/documenttypes/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;


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

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

/**
 * DocumentTypesApi - functional programming interface
 * @export
 */
export const DocumentTypesApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DocumentTypesApiAxiosParamCreator(configuration)
    return {
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника типов документов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listDocumentTypes(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<DocumentType>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listDocumentTypes(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DocumentTypesApi - factory interface
 * @export
 */
export const DocumentTypesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DocumentTypesApiFp(configuration)
    return {
        /**
         * Возвращает список без пейджинга.
         * @summary Возвращает все записи справочника типов документов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listDocumentTypes(options?: any): AxiosPromise<Array<DocumentType>> {
            return localVarFp.listDocumentTypes(options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DocumentTypesApi - object-oriented interface
 * @export
 * @class DocumentTypesApi
 * @extends {BaseAPI}
 */
export class DocumentTypesApi extends BaseAPI {
    /**
     * Возвращает список без пейджинга.
     * @summary Возвращает все записи справочника типов документов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentTypesApi
     */
    public listDocumentTypes(options?: any) {
        return DocumentTypesApiFp(this.configuration).listDocumentTypes(options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * DuplicatesApi - axios parameter creator
 * @export
 */
export const DuplicatesApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Обогащает личное дело по данным дубликата
         * @param {Array<EnrichByDuplicateRequest>} enrichByDuplicateRequest Запрос на обогащение основного личного дела из дубликата
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        enrichByDuplicate: async (enrichByDuplicateRequest: Array<EnrichByDuplicateRequest>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'enrichByDuplicateRequest' is not null or undefined
            assertParamExists('enrichByDuplicate', 'enrichByDuplicateRequest', enrichByDuplicateRequest)
            const localVarPath = `/duplicates/enrichByDuplicate`;
            // 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(enrichByDuplicateRequest, localVarRequestOptions, configuration)

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

/**
 * DuplicatesApi - functional programming interface
 * @export
 */
export const DuplicatesApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DuplicatesApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Обогащает личное дело по данным дубликата
         * @param {Array<EnrichByDuplicateRequest>} enrichByDuplicateRequest Запрос на обогащение основного личного дела из дубликата
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async enrichByDuplicate(enrichByDuplicateRequest: Array<EnrichByDuplicateRequest>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Person>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.enrichByDuplicate(enrichByDuplicateRequest, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DuplicatesApi - factory interface
 * @export
 */
export const DuplicatesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DuplicatesApiFp(configuration)
    return {
        /**
         * 
         * @summary Обогащает личное дело по данным дубликата
         * @param {Array<EnrichByDuplicateRequest>} enrichByDuplicateRequest Запрос на обогащение основного личного дела из дубликата
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        enrichByDuplicate(enrichByDuplicateRequest: Array<EnrichByDuplicateRequest>, options?: any): AxiosPromise<Person> {
            return localVarFp.enrichByDuplicate(enrichByDuplicateRequest, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DuplicatesApi - object-oriented interface
 * @export
 * @class DuplicatesApi
 * @extends {BaseAPI}
 */
export class DuplicatesApi extends BaseAPI {
    /**
     * 
     * @summary Обогащает личное дело по данным дубликата
     * @param {Array<EnrichByDuplicateRequest>} enrichByDuplicateRequest Запрос на обогащение основного личного дела из дубликата
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DuplicatesApi
     */
    public enrichByDuplicate(enrichByDuplicateRequest: Array<EnrichByDuplicateRequest>, options?: any) {
        return DuplicatesApiFp(this.configuration).enrichByDuplicate(enrichByDuplicateRequest, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * MigrationApi - axios parameter creator
 * @export
 */
export const MigrationApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создание миграции личных дел из созданных раннее заявлений
         * @param {MigrationControllerBody} migrationControllerBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        migration: async (migrationControllerBody: MigrationControllerBody, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'migrationControllerBody' is not null or undefined
            assertParamExists('migration', 'migrationControllerBody', migrationControllerBody)
            const localVarPath = `/migration/create_application_migration`;
            // 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(migrationControllerBody, localVarRequestOptions, configuration)

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

/**
 * MigrationApi - functional programming interface
 * @export
 */
export const MigrationApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = MigrationApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создание миграции личных дел из созданных раннее заявлений
         * @param {MigrationControllerBody} migrationControllerBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async migration(migrationControllerBody: MigrationControllerBody, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Person>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.migration(migrationControllerBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * MigrationApi - factory interface
 * @export
 */
export const MigrationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = MigrationApiFp(configuration)
    return {
        /**
         * 
         * @summary Создание миграции личных дел из созданных раннее заявлений
         * @param {MigrationControllerBody} migrationControllerBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        migration(migrationControllerBody: MigrationControllerBody, options?: any): AxiosPromise<Person> {
            return localVarFp.migration(migrationControllerBody, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * MigrationApi - object-oriented interface
 * @export
 * @class MigrationApi
 * @extends {BaseAPI}
 */
export class MigrationApi extends BaseAPI {
    /**
     * 
     * @summary Создание миграции личных дел из созданных раннее заявлений
     * @param {MigrationControllerBody} migrationControllerBody 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof MigrationApi
     */
    public migration(migrationControllerBody: MigrationControllerBody, options?: any) {
        return MigrationApiFp(this.configuration).migration(migrationControllerBody, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PersonDetailedDecisionsApi - axios parameter creator
 * @export
 */
export const PersonDetailedDecisionsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает информацию по заявлениям по идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        personDetailedDecisions: async (personId: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'personId' is not null or undefined
            assertParamExists('personDetailedDecisions', 'personId', personId)
            const localVarPath = `/person-detailed-decisions/{personId}`
                .replace(`{${"personId"}}`, encodeURIComponent(String(personId)));
            // 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,
            };
        },
    }
};

/**
 * PersonDetailedDecisionsApi - functional programming interface
 * @export
 */
export const PersonDetailedDecisionsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PersonDetailedDecisionsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает информацию по заявлениям по идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async personDetailedDecisions(personId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ReturnDecisionData>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.personDetailedDecisions(personId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PersonDetailedDecisionsApi - factory interface
 * @export
 */
export const PersonDetailedDecisionsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PersonDetailedDecisionsApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает информацию по заявлениям по идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        personDetailedDecisions(personId: string, options?: any): AxiosPromise<ReturnDecisionData> {
            return localVarFp.personDetailedDecisions(personId, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * PersonDetailedDecisionsApi - object-oriented interface
 * @export
 * @class PersonDetailedDecisionsApi
 * @extends {BaseAPI}
 */
export class PersonDetailedDecisionsApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает информацию по заявлениям по идентификатору личного дела
     * @param {string} personId id личного дела
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonDetailedDecisionsApi
     */
    public personDetailedDecisions(personId: string, options?: any) {
        return PersonDetailedDecisionsApiFp(this.configuration).personDetailedDecisions(personId, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PersonDetailedPaymentsApi - axios parameter creator
 * @export
 */
export const PersonDetailedPaymentsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает информацию по выплатным делам по его идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        personDetailedPayments: async (personId: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'personId' is not null or undefined
            assertParamExists('personDetailedPayments', 'personId', personId)
            const localVarPath = `/person-detailed-payments/{personId}`
                .replace(`{${"personId"}}`, encodeURIComponent(String(personId)));
            // 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,
            };
        },
    }
};

/**
 * PersonDetailedPaymentsApi - functional programming interface
 * @export
 */
export const PersonDetailedPaymentsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PersonDetailedPaymentsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает информацию по выплатным делам по его идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async personDetailedPayments(personId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ResultPaymentData>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.personDetailedPayments(personId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PersonDetailedPaymentsApi - factory interface
 * @export
 */
export const PersonDetailedPaymentsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PersonDetailedPaymentsApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает информацию по выплатным делам по его идентификатору личного дела
         * @param {string} personId id личного дела
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        personDetailedPayments(personId: string, options?: any): AxiosPromise<ResultPaymentData> {
            return localVarFp.personDetailedPayments(personId, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * PersonDetailedPaymentsApi - object-oriented interface
 * @export
 * @class PersonDetailedPaymentsApi
 * @extends {BaseAPI}
 */
export class PersonDetailedPaymentsApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает информацию по выплатным делам по его идентификатору личного дела
     * @param {string} personId id личного дела
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonDetailedPaymentsApi
     */
    public personDetailedPayments(personId: string, options?: any) {
        return PersonDetailedPaymentsApiFp(this.configuration).personDetailedPayments(personId, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PersonalAccountApi - axios parameter creator
 * @export
 */
export const PersonalAccountApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countPerson: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/persons/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 {PersonalAccount} personalAccount Структура личных дел
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPersonalAccounts: async (personalAccount: PersonalAccount, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'personalAccount' is not null or undefined
            assertParamExists('createPersonalAccounts', 'personalAccount', personalAccount)
            const localVarPath = `/personal_account`;
            // 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(personalAccount, localVarRequestOptions, configuration)

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Метод поиска ЛД по таблицам: person, contactdata, personaddress, personapplication, persondocument (бд social-treasury) и applications, attacheddocuments (бд document-registry). Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {SearchRequest} searchRequest Объект с параметрами поиска. Если объект SearchData пустой, то вернется весь список ЛД. 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        fullSearchPerson: async (searchRequest: SearchRequest, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'searchRequest' is not null or undefined
            assertParamExists('fullSearchPerson', 'searchRequest', searchRequest)
            const localVarPath = `/persons/full-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: '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(searchRequest, localVarRequestOptions, configuration)

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


    
            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}
         */
        pagingPerson: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/persons`;
            // 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} id 
         * @param {object} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        restorePerson: async (id: string, body: object, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('restorePerson', 'id', id)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('restorePerson', 'body', body)
            const localVarPath = `/persons/restore/{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: '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(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создаёт новое личное дело со связанными объектами
         * @param {PersonDto} personDto Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        savePerson: async (personDto: PersonDto, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'personDto' is not null or undefined
            assertParamExists('savePerson', 'personDto', personDto)
            const localVarPath = `/persons/create_personal_account`;
            // 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(personDto, localVarRequestOptions, configuration)

            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}
         */
        searchPerson: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/persons/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 {PersonDto} personDto Изменяемый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePersonalAccount: async (personDto: PersonDto, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'personDto' is not null or undefined
            assertParamExists('updatePersonalAccount', 'personDto', personDto)
            const localVarPath = `/persons/update_personal_account`;
            // 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(personDto, localVarRequestOptions, configuration)

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

/**
 * PersonalAccountApi - functional programming interface
 * @export
 */
export const PersonalAccountApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PersonalAccountApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countPerson(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countPerson(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создаёт личные дела из внешнего источника
         * @param {PersonalAccount} personalAccount Структура личных дел
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPersonalAccounts(personalAccount: PersonalAccount, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPersonalAccounts(personalAccount, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteByIdPerson(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteByIdPerson(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Метод поиска ЛД по таблицам: person, contactdata, personaddress, personapplication, persondocument (бд social-treasury) и applications, attacheddocuments (бд document-registry). Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {SearchRequest} searchRequest Объект с параметрами поиска. Если объект SearchData пустой, то вернется весь список ЛД. 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async fullSearchPerson(searchRequest: SearchRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonPage>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.fullSearchPerson(searchRequest, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPerson(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Person>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPerson(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список связанных с объектом ЛД по его идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonRelations(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PersonRelation>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonRelations(id, 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 pagingPerson(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonPage>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingPerson(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Восстановление объекта по его идентификатору
         * @param {string} id 
         * @param {object} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async restorePerson(id: string, body: object, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Person>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.restorePerson(id, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создаёт новое личное дело со связанными объектами
         * @param {PersonDto} personDto Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async savePerson(personDto: PersonDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.savePerson(personDto, 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 searchPerson(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Person>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchPerson(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет личное дело со связанными объектами
         * @param {PersonDto} personDto Изменяемый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePersonalAccount(personDto: PersonDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePersonalAccount(personDto, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PersonalAccountApi - factory interface
 * @export
 */
export const PersonalAccountApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PersonalAccountApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countPerson(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countPerson(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создаёт личные дела из внешнего источника
         * @param {PersonalAccount} personalAccount Структура личных дел
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPersonalAccounts(personalAccount: PersonalAccount, options?: any): AxiosPromise<Response> {
            return localVarFp.createPersonalAccounts(personalAccount, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteByIdPerson(id: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteByIdPerson(id, options).then((request) => request(axios, basePath));
        },
        /**
         * Метод поиска ЛД по таблицам: person, contactdata, personaddress, personapplication, persondocument (бд social-treasury) и applications, attacheddocuments (бд document-registry). Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {SearchRequest} searchRequest Объект с параметрами поиска. Если объект SearchData пустой, то вернется весь список ЛД. 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        fullSearchPerson(searchRequest: SearchRequest, options?: any): AxiosPromise<PersonPage> {
            return localVarFp.fullSearchPerson(searchRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPerson(id: string, expand?: string, options?: any): AxiosPromise<Person> {
            return localVarFp.getPerson(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список связанных с объектом ЛД по его идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonRelations(id: string, options?: any): AxiosPromise<Array<PersonRelation>> {
            return localVarFp.getPersonRelations(id, 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}
         */
        pagingPerson(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PersonPage> {
            return localVarFp.pagingPerson(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Восстановление объекта по его идентификатору
         * @param {string} id 
         * @param {object} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        restorePerson(id: string, body: object, options?: any): AxiosPromise<Person> {
            return localVarFp.restorePerson(id, body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создаёт новое личное дело со связанными объектами
         * @param {PersonDto} personDto Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        savePerson(personDto: PersonDto, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.savePerson(personDto, 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}
         */
        searchPerson(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Person>> {
            return localVarFp.searchPerson(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет личное дело со связанными объектами
         * @param {PersonDto} personDto Изменяемый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePersonalAccount(personDto: PersonDto, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updatePersonalAccount(personDto, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создаёт личные дела из внешнего источника
     * @param {PersonalAccount} personalAccount Структура личных дел
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public createPersonalAccounts(personalAccount: PersonalAccount, options?: any) {
        return PersonalAccountApiFp(this.configuration).createPersonalAccounts(personalAccount, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет объект по его идентификатору
     * @param {string} id ID документа
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public deleteByIdPerson(id: string, options?: any) {
        return PersonalAccountApiFp(this.configuration).deleteByIdPerson(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Метод поиска ЛД по таблицам: person, contactdata, personaddress, personapplication, persondocument (бд social-treasury) и applications, attacheddocuments (бд document-registry). Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
     * @summary Возвращает список объектов
     * @param {SearchRequest} searchRequest Объект с параметрами поиска. Если объект SearchData пустой, то вернется весь список ЛД. 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public fullSearchPerson(searchRequest: SearchRequest, options?: any) {
        return PersonalAccountApiFp(this.configuration).fullSearchPerson(searchRequest, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Возвращает список связанных с объектом ЛД по его идентификатору
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public getPersonRelations(id: string, options?: any) {
        return PersonalAccountApiFp(this.configuration).getPersonRelations(id, 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 PersonalAccountApi
     */
    public pagingPerson(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return PersonalAccountApiFp(this.configuration).pagingPerson(page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Создаёт новое личное дело со связанными объектами
     * @param {PersonDto} personDto Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public savePerson(personDto: PersonDto, options?: any) {
        return PersonalAccountApiFp(this.configuration).savePerson(personDto, 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 PersonalAccountApi
     */
    public searchPerson(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return PersonalAccountApiFp(this.configuration).searchPerson(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет личное дело со связанными объектами
     * @param {PersonDto} personDto Изменяемый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonalAccountApi
     */
    public updatePersonalAccount(personDto: PersonDto, options?: any) {
        return PersonalAccountApiFp(this.configuration).updatePersonalAccount(personDto, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * RecipientCategoriesApi - axios parameter creator
 * @export
 */
export const RecipientCategoriesApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countRecipientCategories: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category/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 {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecipientCategories: async (id: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getRecipientCategories', 'id', id)
            const localVarPath = `/recipient_category/{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
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        importRecipientCategories: async (operation?: ImportOperationTypeEnum, file?: any, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category/importExcel`;
            // 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;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();


            if (operation !== undefined) { 
                localVarFormParams.append('operation', new Blob([JSON.stringify(operation)], { type: "application/json", }));
            }
    
            if (file !== undefined) { 
                localVarFormParams.append('file', file as any);
            }
    
    
            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = localVarFormParams;

            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}
         */
        pagingRecipientCategories: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category`;
            // 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}
         */
        searchRecipientCategories: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category/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,
            };
        },
    }
};

/**
 * RecipientCategoriesApi - functional programming interface
 * @export
 */
export const RecipientCategoriesApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RecipientCategoriesApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countRecipientCategories(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countRecipientCategories(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRecipientCategories(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RecipientCategory>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRecipientCategories(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Импортирует справчоник из xlsx
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async importRecipientCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.importRecipientCategories(operation, file, 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 pagingRecipientCategories(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RecipientCategory>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingRecipientCategories(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 searchRecipientCategories(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RecipientCategory>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchRecipientCategories(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RecipientCategoriesApi - factory interface
 * @export
 */
export const RecipientCategoriesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RecipientCategoriesApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countRecipientCategories(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countRecipientCategories(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecipientCategories(id: string, expand?: string, options?: any): AxiosPromise<RecipientCategory> {
            return localVarFp.getRecipientCategories(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Импортирует справчоник из xlsx
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        importRecipientCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.importRecipientCategories(operation, file, 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}
         */
        pagingRecipientCategories(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<RecipientCategory> {
            return localVarFp.pagingRecipientCategories(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}
         */
        searchRecipientCategories(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<RecipientCategory>> {
            return localVarFp.searchRecipientCategories(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
    };
};

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

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

    /**
     * 
     * @summary Импортирует справчоник из xlsx
     * @param {ImportOperationTypeEnum} [operation] 
     * @param {any} [file] Xlsx файл
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecipientCategoriesApi
     */
    public importRecipientCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any) {
        return RecipientCategoriesApiFp(this.configuration).importRecipientCategories(operation, file, 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 RecipientCategoriesApi
     */
    public pagingRecipientCategories(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return RecipientCategoriesApiFp(this.configuration).pagingRecipientCategories(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 RecipientCategoriesApi
     */
    public searchRecipientCategories(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return RecipientCategoriesApiFp(this.configuration).searchRecipientCategories(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * RecipientCategoriesGroupApi - axios parameter creator
 * @export
 */
export const RecipientCategoriesGroupApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countRecipientCategoriesGroup: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category_group/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 {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecipientCategoriesGroup: async (id: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getRecipientCategoriesGroup', 'id', id)
            const localVarPath = `/recipient_category_group/{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,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 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}
         */
        pagingRecipientCategoriesGroup: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category_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: '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}
         */
        searchRecipientCategoriesGroup: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/recipient_category_group/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,
            };
        },
    }
};

/**
 * RecipientCategoriesGroupApi - functional programming interface
 * @export
 */
export const RecipientCategoriesGroupApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RecipientCategoriesGroupApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countRecipientCategoriesGroup(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countRecipientCategoriesGroup(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRecipientCategoriesGroup(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RecipientCategoryGroup>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRecipientCategoriesGroup(id, expand, 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 pagingRecipientCategoriesGroup(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RecipientCategoryGroup>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingRecipientCategoriesGroup(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 searchRecipientCategoriesGroup(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RecipientCategoryGroup>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchRecipientCategoriesGroup(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RecipientCategoriesGroupApi - factory interface
 * @export
 */
export const RecipientCategoriesGroupApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RecipientCategoriesGroupApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countRecipientCategoriesGroup(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countRecipientCategoriesGroup(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecipientCategoriesGroup(id: string, expand?: string, options?: any): AxiosPromise<RecipientCategoryGroup> {
            return localVarFp.getRecipientCategoriesGroup(id, expand, 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}
         */
        pagingRecipientCategoriesGroup(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<RecipientCategoryGroup> {
            return localVarFp.pagingRecipientCategoriesGroup(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}
         */
        searchRecipientCategoriesGroup(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<RecipientCategoryGroup>> {
            return localVarFp.searchRecipientCategoriesGroup(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Возвращает объект по его идентификатору
     * @param {string} id 
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecipientCategoriesGroupApi
     */
    public getRecipientCategoriesGroup(id: string, expand?: string, options?: any) {
        return RecipientCategoriesGroupApiFp(this.configuration).getRecipientCategoriesGroup(id, expand, 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 RecipientCategoriesGroupApi
     */
    public pagingRecipientCategoriesGroup(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return RecipientCategoriesGroupApiFp(this.configuration).pagingRecipientCategoriesGroup(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 RecipientCategoriesGroupApi
     */
    public searchRecipientCategoriesGroup(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return RecipientCategoriesGroupApiFp(this.configuration).searchRecipientCategoriesGroup(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * S3Api - axios parameter creator
 * @export
 */
export const S3ApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Загружает файл в s3-хранилище
         * @param {any} [fileUpload] file
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putFileToS3: async (fileUpload?: any, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/s3/put`;
            // 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;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();


            if (fileUpload !== undefined) { 
                localVarFormParams.append('fileUpload', fileUpload as any);
            }
    
    
            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = localVarFormParams;

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

/**
 * S3Api - functional programming interface
 * @export
 */
export const S3ApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = S3ApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Загружает файл в s3-хранилище
         * @param {any} [fileUpload] file
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putFileToS3(fileUpload?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<S3LinkDto>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putFileToS3(fileUpload, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * S3Api - factory interface
 * @export
 */
export const S3ApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = S3ApiFp(configuration)
    return {
        /**
         * 
         * @summary Загружает файл в s3-хранилище
         * @param {any} [fileUpload] file
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putFileToS3(fileUpload?: any, options?: any): AxiosPromise<S3LinkDto> {
            return localVarFp.putFileToS3(fileUpload, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * S3Api - object-oriented interface
 * @export
 * @class S3Api
 * @extends {BaseAPI}
 */
export class S3Api extends BaseAPI {
    /**
     * 
     * @summary Загружает файл в s3-хранилище
     * @param {any} [fileUpload] file
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof S3Api
     */
    public putFileToS3(fileUpload?: any, options?: any) {
        return S3ApiFp(this.configuration).putFileToS3(fileUpload, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * SocialSupportMeasuresApi - axios parameter creator
 * @export
 */
export const SocialSupportMeasuresApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countSocialSupportMeasures: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/social_support_measure/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 {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSocialSupportMeasures: async (id: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getSocialSupportMeasures', 'id', id)
            const localVarPath = `/social_support_measure/{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
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        importSocialSupportMeasuresCategories: async (operation?: ImportOperationTypeEnum, file?: any, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/social_support_measure/importExcel`;
            // 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;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();


            if (operation !== undefined) { 
                localVarFormParams.append('operation', new Blob([JSON.stringify(operation)], { type: "application/json", }));
            }
    
            if (file !== undefined) { 
                localVarFormParams.append('file', file as any);
            }
    
    
            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
    
            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = localVarFormParams;

            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}
         */
        pagingSocialSupportMeasures: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/social_support_measure`;
            // 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}
         */
        searchSocialSupportMeasures: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/social_support_measure/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 {SocialSupportMeasureUpdateDto} socialSupportMeasureUpdateDto Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSocialSupportMeasure: async (socialSupportMeasureUpdateDto: SocialSupportMeasureUpdateDto, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'socialSupportMeasureUpdateDto' is not null or undefined
            assertParamExists('updateSocialSupportMeasure', 'socialSupportMeasureUpdateDto', socialSupportMeasureUpdateDto)
            const localVarPath = `/social_support_measure`;
            // 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(socialSupportMeasureUpdateDto, localVarRequestOptions, configuration)

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

/**
 * SocialSupportMeasuresApi - functional programming interface
 * @export
 */
export const SocialSupportMeasuresApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = SocialSupportMeasuresApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countSocialSupportMeasures(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countSocialSupportMeasures(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getSocialSupportMeasures(id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SocialSupportMeasure>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getSocialSupportMeasures(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Импортирует справочник из xlsx
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async importSocialSupportMeasuresCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.importSocialSupportMeasuresCategories(operation, file, 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 pagingSocialSupportMeasures(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SocialSupportMeasure>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingSocialSupportMeasures(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 searchSocialSupportMeasures(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<SocialSupportMeasure>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchSocialSupportMeasures(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {SocialSupportMeasureUpdateDto} socialSupportMeasureUpdateDto Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateSocialSupportMeasure(socialSupportMeasureUpdateDto: SocialSupportMeasureUpdateDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateSocialSupportMeasure(socialSupportMeasureUpdateDto, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * SocialSupportMeasuresApi - factory interface
 * @export
 */
export const SocialSupportMeasuresApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = SocialSupportMeasuresApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countSocialSupportMeasures(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countSocialSupportMeasures(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSocialSupportMeasures(id: string, expand?: string, options?: any): AxiosPromise<SocialSupportMeasure> {
            return localVarFp.getSocialSupportMeasures(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Импортирует справочник из xlsx
         * @param {ImportOperationTypeEnum} [operation] 
         * @param {any} [file] Xlsx файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        importSocialSupportMeasuresCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.importSocialSupportMeasuresCategories(operation, file, 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}
         */
        pagingSocialSupportMeasures(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<SocialSupportMeasure> {
            return localVarFp.pagingSocialSupportMeasures(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}
         */
        searchSocialSupportMeasures(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<SocialSupportMeasure>> {
            return localVarFp.searchSocialSupportMeasures(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {SocialSupportMeasureUpdateDto} socialSupportMeasureUpdateDto Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSocialSupportMeasure(socialSupportMeasureUpdateDto: SocialSupportMeasureUpdateDto, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateSocialSupportMeasure(socialSupportMeasureUpdateDto, options).then((request) => request(axios, basePath));
        },
    };
};

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

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

    /**
     * 
     * @summary Импортирует справочник из xlsx
     * @param {ImportOperationTypeEnum} [operation] 
     * @param {any} [file] Xlsx файл
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SocialSupportMeasuresApi
     */
    public importSocialSupportMeasuresCategories(operation?: ImportOperationTypeEnum, file?: any, options?: any) {
        return SocialSupportMeasuresApiFp(this.configuration).importSocialSupportMeasuresCategories(operation, file, 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 SocialSupportMeasuresApi
     */
    public pagingSocialSupportMeasures(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return SocialSupportMeasuresApiFp(this.configuration).pagingSocialSupportMeasures(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 SocialSupportMeasuresApi
     */
    public searchSocialSupportMeasures(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return SocialSupportMeasuresApiFp(this.configuration).searchSocialSupportMeasures(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {SocialSupportMeasureUpdateDto} socialSupportMeasureUpdateDto Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SocialSupportMeasuresApi
     */
    public updateSocialSupportMeasure(socialSupportMeasureUpdateDto: SocialSupportMeasureUpdateDto, options?: any) {
        return SocialSupportMeasuresApiFp(this.configuration).updateSocialSupportMeasure(socialSupportMeasureUpdateDto, options).then((request) => request(this.axios, this.basePath));
    }
}


