/* tslint:disable */
/* eslint-disable */
/**
 * document-registry
 * Реестр Объектов
 *
 * The version of the OpenAPI document: PGSRUSH-3250
 * Contact: akurako@inpromconsult.ru
 *
 * 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 ApplicationFilter
 */
export interface ApplicationFilter {
    /**
     * 
     * @type {number}
     * @memberof ApplicationFilter
     */
    page?: number;
    /**
     * 
     * @type {number}
     * @memberof ApplicationFilter
     */
    perPage?: number;
    /**
     * 
     * @type {string}
     * @memberof ApplicationFilter
     */
    query?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationFilter
     */
    fulltext?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationFilter
     */
    sort?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationFilter
     */
    expand?: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof ApplicationFilter
     */
    fields?: { [key: string]: string; };
    /**
     * 
     * @type {string}
     * @memberof ApplicationFilter
     */
    serviceId?: string;
}
/**
 * Статус Applications
 * @export
 * @interface ApplicationStatus
 */
export interface ApplicationStatus {
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    applicationId: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    assignee?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    comment?: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    date: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    topic: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    status: string;
    /**
     * 
     * @type {string}
     * @memberof ApplicationStatus
     */
    systemStatus: string;
}
/**
 * Сведения о подписи приложения к документу
 * @export
 * @interface AttachmentSignatureInfo
 */
export interface AttachmentSignatureInfo {
    /**
     * Имя файла
     * @type {string}
     * @memberof AttachmentSignatureInfo
     */
    fileName: string;
    /**
     * Подпись файла
     * @type {string}
     * @memberof AttachmentSignatureInfo
     */
    signature?: string;
    /**
     * Имя сертификата
     * @type {string}
     * @memberof AttachmentSignatureInfo
     */
    certificateCommonName?: string;
    /**
     * Серийный номер сертификата
     * @type {string}
     * @memberof AttachmentSignatureInfo
     */
    certificateSerialNumber?: string;
}
/**
 * Список найденных объектов
 * @export
 * @interface AverageSalaries
 */
export interface AverageSalaries {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof AverageSalaries
     */
    id: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof AverageSalaries
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof AverageSalaries
     */
    schema?: string;
    /**
     * Среднее значение зарплаты организации
     * @type {number}
     * @memberof AverageSalaries
     */
    salariesValue: number;
    /**
     * ОКАТО организации
     * @type {number}
     * @memberof AverageSalaries
     */
    okato: number;
}
/**
 * 
 * @export
 * @interface AverageSalariesAllOf
 */
export interface AverageSalariesAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof AverageSalariesAllOf
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof AverageSalariesAllOf
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof AverageSalariesAllOf
     */
    schema?: string;
    /**
     * Среднее значение зарплаты организации
     * @type {number}
     * @memberof AverageSalariesAllOf
     */
    salariesValue?: number;
    /**
     * ОКАТО организации
     * @type {number}
     * @memberof AverageSalariesAllOf
     */
    okato?: number;
}
/**
 * 
 * @export
 * @interface Cookie
 */
export interface Cookie {
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    name: string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    value: string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    path?: string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    domain?: string;
    /**
     * 
     * @type {number}
     * @memberof Cookie
     */
    maxAge?: number;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    sameSite?: CookieSameSiteEnum;
    /**
     * 
     * @type {boolean}
     * @memberof Cookie
     */
    httpOnly?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof Cookie
     */
    secure?: boolean;
}

/**
    * @export
    * @enum {string}
    */
export enum CookieSameSiteEnum {
    Lax = 'Lax',
    Strict = 'Strict',
    None = 'None'
}

/**
 * 
 * @export
 * @interface Cookies
 */
export interface Cookies {
    /**
     * 
     * @type {Set<Cookie>}
     * @memberof Cookies
     */
    all?: Set<Cookie>;
    /**
     * 
     * @type {boolean}
     * @memberof Cookies
     */
    empty?: boolean;
}
/**
 * Объект обновления дайджеста
 * @export
 * @interface DigestDto
 */
export interface DigestDto {
    /**
     * 
     * @type {string}
     * @memberof DigestDto
     */
    path?: string;
    /**
     * 
     * @type {string}
     * @memberof DigestDto
     */
    digest?: string;
}
/**
 * Vertex value of current node
 * @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 DocumentAttachmentAsJSON
 */
export interface DocumentAttachmentAsJSON {
    /**
     * Имя файла
     * @type {string}
     * @memberof DocumentAttachmentAsJSON
     */
    fileName: string;
    /**
     * Размер файла в байтах
     * @type {number}
     * @memberof DocumentAttachmentAsJSON
     */
    size: number;
    /**
     * Расширение файла
     * @type {string}
     * @memberof DocumentAttachmentAsJSON
     */
    ext: string;
    /**
     * Тело файла в base64
     * @type {string}
     * @memberof DocumentAttachmentAsJSON
     */
    body: string;
    /**
     * Описание файла
     * @type {string}
     * @memberof DocumentAttachmentAsJSON
     */
    description?: string;
}
/**
 * 
 * @export
 * @interface DocumentAttachmentFileDescriptor
 */
export interface DocumentAttachmentFileDescriptor {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    id: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof DocumentAttachmentFileDescriptor
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    schema?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    fileName: string;
    /**
     * 
     * @type {number}
     * @memberof DocumentAttachmentFileDescriptor
     */
    size: number;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    ext: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    bodyId: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    mediaType?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    description?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    created?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentFileDescriptor
     */
    hash?: string;
    /**
     * 
     * @type {DocumentAttachmentSignatureInfo}
     * @memberof DocumentAttachmentFileDescriptor
     */
    signatureInfo?: DocumentAttachmentSignatureInfo;
}
/**
 * 
 * @export
 * @interface DocumentAttachmentSignatureInfo
 */
export interface DocumentAttachmentSignatureInfo {
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentSignatureInfo
     */
    signature?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentSignatureInfo
     */
    certificateCommonName?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentAttachmentSignatureInfo
     */
    certificateSerialNumber?: string;
    /**
     * 
     * @type {number}
     * @memberof DocumentAttachmentSignatureInfo
     */
    signDate?: number;
}
/**
 * Объект фильтра документа с полями
 * @export
 * @interface DocumentFilter
 */
export interface DocumentFilter {
    /**
     * 
     * @type {number}
     * @memberof DocumentFilter
     */
    page?: number;
    /**
     * 
     * @type {number}
     * @memberof DocumentFilter
     */
    perPage?: number;
    /**
     * 
     * @type {string}
     * @memberof DocumentFilter
     */
    query?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentFilter
     */
    fulltext?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentFilter
     */
    sort?: string;
    /**
     * 
     * @type {string}
     * @memberof DocumentFilter
     */
    expand?: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof DocumentFilter
     */
    fields?: { [key: string]: string; };
}
/**
 * 
 * @export
 * @interface HttpHeaders
 */
export interface HttpHeaders {
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    contentType?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    origin?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    authorization?: string;
    /**
     * 
     * @type {boolean}
     * @memberof HttpHeaders
     */
    keepAlive?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof HttpHeaders
     */
    empty?: boolean;
}
/**
 * 
 * @export
 * @interface HttpResponseByte
 */
export interface HttpResponseByte {
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByte
     */
    status?: HttpResponseByteStatusEnum;
    /**
     * 
     * @type {Cookies}
     * @memberof HttpResponseByte
     */
    cookies?: Cookies;
    /**
     * 
     * @type {MutableConvertibleValuesObject}
     * @memberof HttpResponseByte
     */
    attributes: MutableConvertibleValuesObject;
    /**
     * 
     * @type {MediaType}
     * @memberof HttpResponseByte
     */
    contentType: MediaType;
    /**
     * 
     * @type {HttpHeaders}
     * @memberof HttpResponseByte
     */
    headers: HttpHeaders;
    /**
     * 
     * @type {number}
     * @memberof HttpResponseByte
     */
    contentLength?: number;
    /**
     * 
     * @type {HttpResponseByteLocale}
     * @memberof HttpResponseByte
     */
    locale: HttpResponseByteLocale;
    /**
     * 
     * @type {HttpResponseByteCharacterEncoding}
     * @memberof HttpResponseByte
     */
    characterEncoding: HttpResponseByteCharacterEncoding;
    /**
     * 
     * @type {Array<string>}
     * @memberof HttpResponseByte
     */
    body: Array<string>;
}

/**
    * @export
    * @enum {string}
    */
export enum HttpResponseByteStatusEnum {
    Continue = 'CONTINUE',
    SwitchingProtocols = 'SWITCHING_PROTOCOLS',
    Processing = 'PROCESSING',
    Ok = 'OK',
    Created = 'CREATED',
    Accepted = 'ACCEPTED',
    NonAuthoritativeInformation = 'NON_AUTHORITATIVE_INFORMATION',
    NoContent = 'NO_CONTENT',
    ResetContent = 'RESET_CONTENT',
    PartialContent = 'PARTIAL_CONTENT',
    MultiStatus = 'MULTI_STATUS',
    AlreadyImported = 'ALREADY_IMPORTED',
    ImUsed = 'IM_USED',
    MultipleChoices = 'MULTIPLE_CHOICES',
    MovedPermanently = 'MOVED_PERMANENTLY',
    Found = 'FOUND',
    SeeOther = 'SEE_OTHER',
    NotModified = 'NOT_MODIFIED',
    UseProxy = 'USE_PROXY',
    SwitchProxy = 'SWITCH_PROXY',
    TemporaryRedirect = 'TEMPORARY_REDIRECT',
    PermanentRedirect = 'PERMANENT_REDIRECT',
    BadRequest = 'BAD_REQUEST',
    Unauthorized = 'UNAUTHORIZED',
    PaymentRequired = 'PAYMENT_REQUIRED',
    Forbidden = 'FORBIDDEN',
    NotFound = 'NOT_FOUND',
    MethodNotAllowed = 'METHOD_NOT_ALLOWED',
    NotAcceptable = 'NOT_ACCEPTABLE',
    ProxyAuthenticationRequired = 'PROXY_AUTHENTICATION_REQUIRED',
    RequestTimeout = 'REQUEST_TIMEOUT',
    Conflict = 'CONFLICT',
    Gone = 'GONE',
    LengthRequired = 'LENGTH_REQUIRED',
    PreconditionFailed = 'PRECONDITION_FAILED',
    RequestEntityTooLarge = 'REQUEST_ENTITY_TOO_LARGE',
    RequestUriTooLong = 'REQUEST_URI_TOO_LONG',
    UnsupportedMediaType = 'UNSUPPORTED_MEDIA_TYPE',
    RequestedRangeNotSatisfiable = 'REQUESTED_RANGE_NOT_SATISFIABLE',
    ExpectationFailed = 'EXPECTATION_FAILED',
    IAmATeapot = 'I_AM_A_TEAPOT',
    EnhanceYourCalm = 'ENHANCE_YOUR_CALM',
    UnprocessableEntity = 'UNPROCESSABLE_ENTITY',
    Locked = 'LOCKED',
    FailedDependency = 'FAILED_DEPENDENCY',
    UnorderedCollection = 'UNORDERED_COLLECTION',
    UpgradeRequired = 'UPGRADE_REQUIRED',
    PreconditionRequired = 'PRECONDITION_REQUIRED',
    TooManyRequests = 'TOO_MANY_REQUESTS',
    RequestHeaderFieldsTooLarge = 'REQUEST_HEADER_FIELDS_TOO_LARGE',
    NoResponse = 'NO_RESPONSE',
    BlockedByWindowsParentalControls = 'BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS',
    UnavailableForLegalReasons = 'UNAVAILABLE_FOR_LEGAL_REASONS',
    RequestHeaderTooLarge = 'REQUEST_HEADER_TOO_LARGE',
    InternalServerError = 'INTERNAL_SERVER_ERROR',
    NotImplemented = 'NOT_IMPLEMENTED',
    BadGateway = 'BAD_GATEWAY',
    ServiceUnavailable = 'SERVICE_UNAVAILABLE',
    GatewayTimeout = 'GATEWAY_TIMEOUT',
    HttpVersionNotSupported = 'HTTP_VERSION_NOT_SUPPORTED',
    VariantAlsoNegotiates = 'VARIANT_ALSO_NEGOTIATES',
    InsufficientStorage = 'INSUFFICIENT_STORAGE',
    LoopDetected = 'LOOP_DETECTED',
    BandwidthLimitExceeded = 'BANDWIDTH_LIMIT_EXCEEDED',
    NotExtended = 'NOT_EXTENDED',
    NetworkAuthenticationRequired = 'NETWORK_AUTHENTICATION_REQUIRED',
    ConnectionTimedOut = 'CONNECTION_TIMED_OUT'
}

/**
 * 
 * @export
 * @interface HttpResponseByteCharacterEncoding
 */
export interface HttpResponseByteCharacterEncoding {
    /**
     * 
     * @type {boolean}
     * @memberof HttpResponseByteCharacterEncoding
     */
    registered?: boolean;
}
/**
 * 
 * @export
 * @interface HttpResponseByteLocale
 */
export interface HttpResponseByteLocale {
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    language?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    displayName?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    script?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    country?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    variant?: string;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseByteLocale
     */
    extensionKeys?: Set<string>;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseByteLocale
     */
    unicodeLocaleAttributes?: Set<string>;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseByteLocale
     */
    unicodeLocaleKeys?: Set<string>;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    iso3Language?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    iso3Country?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    displayLanguage?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    displayScript?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    displayCountry?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseByteLocale
     */
    displayVariant?: string;
}
/**
 * 
 * @export
 * @interface MediaType
 */
export interface MediaType {
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    subtype?: string;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    type?: string;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    extension?: string;
    /**
     * 
     * @type {OptionalValuesString}
     * @memberof MediaType
     */
    parameters?: OptionalValuesString;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    version?: string;
    /**
     * 
     * @type {HttpResponseByteCharacterEncoding}
     * @memberof MediaType
     */
    charset?: HttpResponseByteCharacterEncoding;
    /**
     * 
     * @type {number}
     * @memberof MediaType
     */
    qualityAsNumber?: number;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    quality?: string;
    /**
     * 
     * @type {boolean}
     * @memberof MediaType
     */
    textBased?: boolean;
}
/**
 * 
 * @export
 * @interface ModifyResponse
 */
export interface ModifyResponse {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof ModifyResponse
     */
    success: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof ModifyResponse
     */
    message: string;
    /**
     * IDs Документов в рамках операции
     * @type {Array<string>}
     * @memberof ModifyResponse
     */
    objectIds?: Array<string>;
    /**
     * Дата модификации всех Документов в рамках операции
     * @type {number}
     * @memberof ModifyResponse
     */
    modified: number;
}
/**
 * 
 * @export
 * @interface ModifyResponseAllOf
 */
export interface ModifyResponseAllOf {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof ModifyResponseAllOf
     */
    success?: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof ModifyResponseAllOf
     */
    message?: string;
    /**
     * IDs Документов в рамках операции
     * @type {Array<string>}
     * @memberof ModifyResponseAllOf
     */
    objectIds?: Array<string>;
    /**
     * Дата модификации всех Документов в рамках операции
     * @type {number}
     * @memberof ModifyResponseAllOf
     */
    modified?: number;
}
/**
 * 
 * @export
 * @interface MutableConvertibleValuesObject
 */
export interface MutableConvertibleValuesObject {
    /**
     * 
     * @type {boolean}
     * @memberof MutableConvertibleValuesObject
     */
    empty?: boolean;
}
/**
 * 
 * @export
 * @interface NodeTO
 */
export interface NodeTO {
    /**
     * Indicates graph direction with which it was restored
     * @type {string}
     * @memberof NodeTO
     */
    direction?: NodeTODirectionEnum;
    /**
     * 
     * @type {Document}
     * @memberof NodeTO
     */
    value?: Document;
    /**
     * Node leafs
     * @type {Array<NodeTO>}
     * @memberof NodeTO
     */
    leafs?: Array<NodeTO> | null;
    /**
     * 
     * @type {boolean}
     * @memberof NodeTO
     */
    root?: boolean;
}

/**
    * @export
    * @enum {string}
    */
export enum NodeTODirectionEnum {
    Inbound = 'INBOUND',
    Outbound = 'OUTBOUND',
    Any = 'ANY'
}

/**
 * 
 * @export
 * @interface OptionalValuesString
 */
export interface OptionalValuesString {
    /**
     * 
     * @type {boolean}
     * @memberof OptionalValuesString
     */
    empty?: boolean;
}
/**
 * Страница
 * @export
 * @interface Page
 */
export interface Page {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof Page
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof Page
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof Page
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof Page
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof Page
     */
    page: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof Page
     */
    perPage: number;
    /**
     * 
     * @type {Array<Document>}
     * @memberof Page
     */
    records?: Array<Document>;
    /**
     * Схема документа
     * @type {string}
     * @memberof Page
     */
    schema: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof Page
     */
    expand?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof Page
     */
    foundRows?: number;
}
/**
 * 
 * @export
 * @interface PageOfAverageSalaries
 */
export interface PageOfAverageSalaries {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAverageSalaries
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAverageSalaries
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfAverageSalaries
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfAverageSalaries
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfAverageSalaries
     */
    page: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfAverageSalaries
     */
    perPage: number;
    /**
     * 
     * @type {Array<AverageSalaries>}
     * @memberof PageOfAverageSalaries
     */
    records?: Array<AverageSalaries>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfAverageSalaries
     */
    schema: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfAverageSalaries
     */
    expand?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfAverageSalaries
     */
    foundRows?: number;
}
/**
 * 
 * @export
 * @interface PageOfSocialOrganizationsINN
 */
export interface PageOfSocialOrganizationsINN {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfSocialOrganizationsINN
     */
    filter?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfSocialOrganizationsINN
     */
    fulltext?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfSocialOrganizationsINN
     */
    sort?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfSocialOrganizationsINN
     */
    totalRows?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfSocialOrganizationsINN
     */
    page: number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfSocialOrganizationsINN
     */
    perPage: number;
    /**
     * 
     * @type {Array<AverageSalaries>}
     * @memberof PageOfSocialOrganizationsINN
     */
    records?: Array<AverageSalaries>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfSocialOrganizationsINN
     */
    schema: string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfSocialOrganizationsINN
     */
    expand?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfSocialOrganizationsINN
     */
    foundRows?: number;
}
/**
 * 
 * @export
 * @interface Response
 */
export interface Response {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof Response
     */
    success: boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof Response
     */
    message: string;
}
/**
 * 
 * @export
 * @interface SocialOrganizationsINN
 */
export interface SocialOrganizationsINN {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof SocialOrganizationsINN
     */
    id: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof SocialOrganizationsINN
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof SocialOrganizationsINN
     */
    schema?: string;
    /**
     * ИНН организации
     * @type {number}
     * @memberof SocialOrganizationsINN
     */
    inn: number;
    /**
     * ОКАТО организации
     * @type {number}
     * @memberof SocialOrganizationsINN
     */
    okato: number;
}
/**
 * 
 * @export
 * @interface SocialOrganizationsINNAllOf
 */
export interface SocialOrganizationsINNAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof SocialOrganizationsINNAllOf
     */
    id?: string;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof SocialOrganizationsINNAllOf
     */
    modified?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof SocialOrganizationsINNAllOf
     */
    schema?: string;
    /**
     * ИНН организации
     * @type {number}
     * @memberof SocialOrganizationsINNAllOf
     */
    inn?: number;
    /**
     * ОКАТО организации
     * @type {number}
     * @memberof SocialOrganizationsINNAllOf
     */
    okato?: number;
}
/**
 * 
 * @export
 * @interface StatusResponse
 */
export interface StatusResponse {
    /**
     * 
     * @type {boolean}
     * @memberof StatusResponse
     */
    success?: boolean;
    /**
     * 
     * @type {string}
     * @memberof StatusResponse
     */
    message?: string;
}

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

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


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

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

/**
 * APIApi - functional programming interface
 * @export
 */
export const APIApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = APIApiAxiosParamCreator(configuration)
    return {
        /**
         * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
         * @summary Возвращает Swagger/OpenAPI файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getApi(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getApi(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * APIApi - factory interface
 * @export
 */
export const APIApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = APIApiFp(configuration)
    return {
        /**
         * Возвращает Swagger файл в формате YAML описывающий Rest API в формате Swagger (OpenAPI 3.0.1)
         * @summary Возвращает Swagger/OpenAPI файл
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getApi(options?: any): AxiosPromise<void> {
            return localVarFp.getApi(options).then((request) => request(axios, basePath));
        },
    };
};

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


/**
 * AttachedDocumentsApi - axios parameter creator
 * @export
 */
export const AttachedDocumentsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Добавить документы заявлению
         * @param {string} id 
         * @param {Array<Document>} document Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        addDocumentsToApplication: async (id: string, document: Array<Document>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('addDocumentsToApplication', 'id', id)
            // verify required parameter 'document' is not null or undefined
            assertParamExists('addDocumentsToApplication', 'document', document)
            const localVarPath = `/document/Applications/{id}/AttachedDocuments`
                .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: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

            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] Расширение объекта по его ссылкам incoming
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingAttachedDocuments: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/document/AttachedDocuments/paging`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

            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 Обновить поле digest у документа
         * @param {string} id 
         * @param {Array<DigestDto>} digestDto Digest dto
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentDigestField: async (id: string, digestDto: Array<DigestDto>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('updateDocumentDigestField', 'id', id)
            // verify required parameter 'digestDto' is not null or undefined
            assertParamExists('updateDocumentDigestField', 'digestDto', digestDto)
            const localVarPath = `/document/AttachedDocuments/{id}/digest`
                .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;

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

/**
 * AttachedDocumentsApi - functional programming interface
 * @export
 */
export const AttachedDocumentsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AttachedDocumentsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Добавить документы заявлению
         * @param {string} id 
         * @param {Array<Document>} document Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async addDocumentsToApplication(id: string, document: Array<Document>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.addDocumentsToApplication(id, document, 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] Расширение объекта по его ссылкам incoming
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingAttachedDocuments(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingAttachedDocuments(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Обновить поле digest у документа
         * @param {string} id 
         * @param {Array<DigestDto>} digestDto Digest dto
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDocumentDigestField(id: string, digestDto: Array<DigestDto>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDocumentDigestField(id, digestDto, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * AttachedDocumentsApi - factory interface
 * @export
 */
export const AttachedDocumentsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AttachedDocumentsApiFp(configuration)
    return {
        /**
         * 
         * @summary Добавить документы заявлению
         * @param {string} id 
         * @param {Array<Document>} document Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        addDocumentsToApplication(id: string, document: Array<Document>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.addDocumentsToApplication(id, document, 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] Расширение объекта по его ссылкам incoming
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingAttachedDocuments(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Page> {
            return localVarFp.pagingAttachedDocuments(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Обновить поле digest у документа
         * @param {string} id 
         * @param {Array<DigestDto>} digestDto Digest dto
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentDigestField(id: string, digestDto: Array<DigestDto>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateDocumentDigestField(id, digestDto, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * AttachedDocumentsApi - object-oriented interface
 * @export
 * @class AttachedDocumentsApi
 * @extends {BaseAPI}
 */
export class AttachedDocumentsApi extends BaseAPI {
    /**
     * 
     * @summary Добавить документы заявлению
     * @param {string} id 
     * @param {Array<Document>} document Attachments as json for document
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachedDocumentsApi
     */
    public addDocumentsToApplication(id: string, document: Array<Document>, options?: any) {
        return AttachedDocumentsApiFp(this.configuration).addDocumentsToApplication(id, document, 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] Расширение объекта по его ссылкам incoming
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachedDocumentsApi
     */
    public pagingAttachedDocuments(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return AttachedDocumentsApiFp(this.configuration).pagingAttachedDocuments(page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Обновить поле digest у документа
     * @param {string} id 
     * @param {Array<DigestDto>} digestDto Digest dto
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachedDocumentsApi
     */
    public updateDocumentDigestField(id: string, digestDto: Array<DigestDto>, options?: any) {
        return AttachedDocumentsApiFp(this.configuration).updateDocumentDigestField(id, digestDto, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * AttachmentApi - axios parameter creator
 * @export
 */
export const AttachmentApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Добавляет информацию о подписи к вложениям
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<AttachmentSignatureInfo>} attachmentSignatureInfo Signature info
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        addSignatureInfo: async (schema: string, id: string, attachmentSignatureInfo: Array<AttachmentSignatureInfo>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('addSignatureInfo', 'schema', schema)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('addSignatureInfo', 'id', id)
            // verify required parameter 'attachmentSignatureInfo' is not null or undefined
            assertParamExists('addSignatureInfo', 'attachmentSignatureInfo', attachmentSignatureInfo)
            const localVarPath = `/document/{schema}/{id}/signatureInfo`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .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: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Получает s3-ссылку на файл и возвращает список id организаций, которым принадлежит заявление с данным файлом
         * @param {string} s3fileUrl 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAttachmentOrganizations: async (s3fileUrl: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 's3fileUrl' is not null or undefined
            assertParamExists('getAttachmentOrganizations', 's3fileUrl', s3fileUrl)
            const localVarPath = `/s3files/attachment-organizations`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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


    
            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} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDocumentFile: async (schema: string, id: string, fileName: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('getDocumentFile', 'schema', schema)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getDocumentFile', 'id', id)
            // verify required parameter 'fileName' is not null or undefined
            assertParamExists('getDocumentFile', 'fileName', fileName)
            const localVarPath = `/document/{schema}/{id}/file/{fileName}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"fileName"}}`, encodeURIComponent(String(fileName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Добавляет вложение документу
         * @param {string} schema 
         * @param {string} id 
         * @param {string} [description] 
         * @param {Array<any>} [files] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentFile: async (schema: string, id: string, description?: string, files?: Array<any>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('updateDocumentFile', 'schema', schema)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('updateDocumentFile', 'id', id)
            const localVarPath = `/document/{schema}/{id}/file`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .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: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;
            const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

            if (files) {
                files.forEach((element) => {
                    localVarFormParams.append('files', element 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 Добавляет вложение, присланное в виде json
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<DocumentAttachmentAsJSON>} documentAttachmentAsJSON Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentFileAsJson: async (schema: string, id: string, documentAttachmentAsJSON: Array<DocumentAttachmentAsJSON>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('updateDocumentFileAsJson', 'schema', schema)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('updateDocumentFileAsJson', 'id', id)
            // verify required parameter 'documentAttachmentAsJSON' is not null or undefined
            assertParamExists('updateDocumentFileAsJson', 'documentAttachmentAsJSON', documentAttachmentAsJSON)
            const localVarPath = `/document/{schema}/{id}/fileAsJson`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .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: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

/**
 * AttachmentApi - functional programming interface
 * @export
 */
export const AttachmentApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AttachmentApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Добавляет информацию о подписи к вложениям
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<AttachmentSignatureInfo>} attachmentSignatureInfo Signature info
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async addSignatureInfo(schema: string, id: string, attachmentSignatureInfo: Array<AttachmentSignatureInfo>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.addSignatureInfo(schema, id, attachmentSignatureInfo, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет вложение документа по его идентификатору
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDocumentFile(schema: string, id: string, fileName: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDocumentFile(schema, id, fileName, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получает s3-ссылку на файл и возвращает список id организаций, которым принадлежит заявление с данным файлом
         * @param {string} s3fileUrl 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAttachmentOrganizations(s3fileUrl: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAttachmentOrganizations(s3fileUrl, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает вложение документа по его идентификатору
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDocumentFile(schema: string, id: string, fileName: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDocumentFile(schema, id, fileName, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает информацию о вложении документа
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDocumentFileInfo(schema: string, id: string, fileName: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DocumentAttachmentFileDescriptor>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDocumentFileInfo(schema, id, fileName, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Добавляет вложение документу
         * @param {string} schema 
         * @param {string} id 
         * @param {string} [description] 
         * @param {Array<any>} [files] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDocumentFile(schema: string, id: string, description?: string, files?: Array<any>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDocumentFile(schema, id, description, files, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Добавляет вложение, присланное в виде json
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<DocumentAttachmentAsJSON>} documentAttachmentAsJSON Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDocumentFileAsJson(schema: string, id: string, documentAttachmentAsJSON: Array<DocumentAttachmentAsJSON>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDocumentFileAsJson(schema, id, documentAttachmentAsJSON, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * AttachmentApi - factory interface
 * @export
 */
export const AttachmentApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AttachmentApiFp(configuration)
    return {
        /**
         * 
         * @summary Добавляет информацию о подписи к вложениям
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<AttachmentSignatureInfo>} attachmentSignatureInfo Signature info
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        addSignatureInfo(schema: string, id: string, attachmentSignatureInfo: Array<AttachmentSignatureInfo>, options?: any): AxiosPromise<Response> {
            return localVarFp.addSignatureInfo(schema, id, attachmentSignatureInfo, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет вложение документа по его идентификатору
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDocumentFile(schema: string, id: string, fileName: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteDocumentFile(schema, id, fileName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получает s3-ссылку на файл и возвращает список id организаций, которым принадлежит заявление с данным файлом
         * @param {string} s3fileUrl 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAttachmentOrganizations(s3fileUrl: string, options?: any): AxiosPromise<object> {
            return localVarFp.getAttachmentOrganizations(s3fileUrl, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает вложение документа по его идентификатору
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDocumentFile(schema: string, id: string, fileName: string, options?: any): AxiosPromise<object> {
            return localVarFp.getDocumentFile(schema, id, fileName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает информацию о вложении документа
         * @param {string} schema 
         * @param {string} id 
         * @param {string} fileName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDocumentFileInfo(schema: string, id: string, fileName: string, options?: any): AxiosPromise<DocumentAttachmentFileDescriptor> {
            return localVarFp.getDocumentFileInfo(schema, id, fileName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Добавляет вложение документу
         * @param {string} schema 
         * @param {string} id 
         * @param {string} [description] 
         * @param {Array<any>} [files] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentFile(schema: string, id: string, description?: string, files?: Array<any>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateDocumentFile(schema, id, description, files, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Добавляет вложение, присланное в виде json
         * @param {string} schema 
         * @param {string} id 
         * @param {Array<DocumentAttachmentAsJSON>} documentAttachmentAsJSON Attachments as json for document
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocumentFileAsJson(schema: string, id: string, documentAttachmentAsJSON: Array<DocumentAttachmentAsJSON>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateDocumentFileAsJson(schema, id, documentAttachmentAsJSON, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * AttachmentApi - object-oriented interface
 * @export
 * @class AttachmentApi
 * @extends {BaseAPI}
 */
export class AttachmentApi extends BaseAPI {
    /**
     * 
     * @summary Добавляет информацию о подписи к вложениям
     * @param {string} schema 
     * @param {string} id 
     * @param {Array<AttachmentSignatureInfo>} attachmentSignatureInfo Signature info
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public addSignatureInfo(schema: string, id: string, attachmentSignatureInfo: Array<AttachmentSignatureInfo>, options?: any) {
        return AttachmentApiFp(this.configuration).addSignatureInfo(schema, id, attachmentSignatureInfo, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Получает s3-ссылку на файл и возвращает список id организаций, которым принадлежит заявление с данным файлом
     * @param {string} s3fileUrl 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public getAttachmentOrganizations(s3fileUrl: string, options?: any) {
        return AttachmentApiFp(this.configuration).getAttachmentOrganizations(s3fileUrl, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает вложение документа по его идентификатору
     * @param {string} schema 
     * @param {string} id 
     * @param {string} fileName 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public getDocumentFile(schema: string, id: string, fileName: string, options?: any) {
        return AttachmentApiFp(this.configuration).getDocumentFile(schema, id, fileName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает информацию о вложении документа
     * @param {string} schema 
     * @param {string} id 
     * @param {string} fileName 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public getDocumentFileInfo(schema: string, id: string, fileName: string, options?: any) {
        return AttachmentApiFp(this.configuration).getDocumentFileInfo(schema, id, fileName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Добавляет вложение документу
     * @param {string} schema 
     * @param {string} id 
     * @param {string} [description] 
     * @param {Array<any>} [files] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public updateDocumentFile(schema: string, id: string, description?: string, files?: Array<any>, options?: any) {
        return AttachmentApiFp(this.configuration).updateDocumentFile(schema, id, description, files, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Добавляет вложение, присланное в виде json
     * @param {string} schema 
     * @param {string} id 
     * @param {Array<DocumentAttachmentAsJSON>} documentAttachmentAsJSON Attachments as json for document
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AttachmentApi
     */
    public updateDocumentFileAsJson(schema: string, id: string, documentAttachmentAsJSON: Array<DocumentAttachmentAsJSON>, options?: any) {
        return AttachmentApiFp(this.configuration).updateDocumentFileAsJson(schema, id, documentAttachmentAsJSON, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * AverageSalaryApi - axios parameter creator
 * @export
 */
export const AverageSalaryApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<AverageSalaries>} averageSalaries Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAverageSalary: async (averageSalaries: Array<AverageSalaries>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'averageSalaries' is not null or undefined
            assertParamExists('createAverageSalary', 'averageSalaries', averageSalaries)
            const localVarPath = `/averagesalaries`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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}
         */
        pagingAverageSalaries: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/averagesalaries`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

            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 {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchAverageSalaries: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/averagesalaries/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

            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<AverageSalaries>} averageSalaries Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAverageSalary: async (averageSalaries: Array<AverageSalaries>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'averageSalaries' is not null or undefined
            assertParamExists('updateAverageSalary', 'averageSalaries', averageSalaries)
            const localVarPath = `/averagesalaries`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

/**
 * AverageSalaryApi - functional programming interface
 * @export
 */
export const AverageSalaryApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AverageSalaryApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<AverageSalaries>} averageSalaries Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createAverageSalary(averageSalaries: Array<AverageSalaries>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createAverageSalary(averageSalaries, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteAverageSalary(requestBody: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAverageSalary(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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 pagingAverageSalaries(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfAverageSalaries>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingAverageSalaries(handler, page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchAverageSalaries(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AverageSalaries>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchAverageSalaries(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<AverageSalaries>} averageSalaries Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateAverageSalary(averageSalaries: Array<AverageSalaries>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateAverageSalary(averageSalaries, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * AverageSalaryApi - factory interface
 * @export
 */
export const AverageSalaryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AverageSalaryApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<AverageSalaries>} averageSalaries Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAverageSalary(averageSalaries: Array<AverageSalaries>, options?: any): AxiosPromise<Response> {
            return localVarFp.createAverageSalary(averageSalaries, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteAverageSalary(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteAverageSalary(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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}
         */
        pagingAverageSalaries(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfAverageSalaries> {
            return localVarFp.pagingAverageSalaries(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchAverageSalaries(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<AverageSalaries>> {
            return localVarFp.searchAverageSalaries(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<AverageSalaries>} averageSalaries Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAverageSalary(averageSalaries: Array<AverageSalaries>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateAverageSalary(averageSalaries, options).then((request) => request(axios, basePath));
        },
    };
};

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

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

    /**
     * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
     * @summary Возвращает список объектов
     * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
     * @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 AverageSalaryApi
     */
    public pagingAverageSalaries(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return AverageSalaryApiFp(this.configuration).pagingAverageSalaries(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

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

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


/**
 * CSVDocumentsApi - axios parameter creator
 * @export
 */
export const CSVDocumentsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadCSVFileRegistries: async (query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/applicationsfile/download-csv-registries`;
            // 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,
            };
        },
    }
};

/**
 * CSVDocumentsApi - functional programming interface
 * @export
 */
export const CSVDocumentsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = CSVDocumentsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async downloadCSVFileRegistries(query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HttpResponseByte>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.downloadCSVFileRegistries(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * CSVDocumentsApi - factory interface
 * @export
 */
export const CSVDocumentsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = CSVDocumentsApiFp(configuration)
    return {
        /**
         * 
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadCSVFileRegistries(query?: string, fulltext?: string, options?: any): AxiosPromise<HttpResponseByte> {
            return localVarFp.downloadCSVFileRegistries(query, fulltext, options).then((request) => request(axios, basePath));
        },
    };
};

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


/**
 * DocumentApi - axios parameter creator
 * @export
 */
export const DocumentApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countDocuments: async (schema: string, query?: string, fulltext?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('countDocuments', 'schema', schema)
            const localVarPath = `/document/{schema}/count`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            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} schema Название схемы документа
         * @param {Array<Document>} document Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createDocument: async (schema: string, document: Array<Document>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('createDocument', 'schema', schema)
            // verify required parameter 'document' is not null or undefined
            assertParamExists('createDocument', 'document', document)
            const localVarPath = `/document/{schema}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            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}
         */
        internalcount: async (options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/document/applications/internalcount`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {ApplicationFilter} applicationFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingApplicationsWithFilter: async (applicationFilter: ApplicationFilter, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'applicationFilter' is not null or undefined
            assertParamExists('pagingApplicationsWithFilter', 'applicationFilter', applicationFilter)
            const localVarPath = `/document/applications/filter`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schema Название схемы документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDocuments: async (schema: string, page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('pagingDocuments', 'schema', schema)
            const localVarPath = `/document/{schema}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            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,
            };
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {DocumentFilter} documentFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingSubjectsWithFilter: async (documentFilter: DocumentFilter, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'documentFilter' is not null or undefined
            assertParamExists('pagingSubjectsWithFilter', 'documentFilter', documentFilter)
            const localVarPath = `/document/subject/filter`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список всех документов без пейджинга.
         * @summary Возвращает список всех документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchDocuments: async (schema: string, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('searchDocuments', 'schema', schema)
            const localVarPath = `/document/{schema}/all`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            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} schema Название схемы документа
         * @param {Array<Document>} document Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDocument: async (schema: string, document: Array<Document>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('unlinkDocument', 'schema', schema)
            // verify required parameter 'document' is not null or undefined
            assertParamExists('unlinkDocument', 'document', document)
            const localVarPath = `/document/{schema}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)));
            // 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: 'PATCH', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

/**
 * DocumentApi - functional programming interface
 * @export
 */
export const DocumentApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DocumentApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countDocuments(schema: string, query?: string, fulltext?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countDocuments(schema, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createDocument(schema: string, document: Array<Document>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createDocument(schema, document, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} schema Название схемы документа
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteByIdDocument(schema: string, id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteByIdDocument(schema, id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет документы по идентификаторам
         * @param {string} schema Название схемы документа
         * @param {Array<string>} requestBody ID документов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDocument(schema: string, requestBody: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDocument(schema, requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает документ по его идентификатору
         * @param {string} schema Название схемы документа
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDocument(schema: string, id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Document>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDocument(schema, id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получает уникальный, не порядковый, инкрементный номер документа 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async internalcount(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.internalcount(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {ApplicationFilter} applicationFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingApplicationsWithFilter(applicationFilter: ApplicationFilter, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingApplicationsWithFilter(applicationFilter, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schema Название схемы документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingDocuments(schema: string, page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingDocuments(schema, page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {DocumentFilter} documentFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingSubjectsWithFilter(documentFilter: DocumentFilter, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingSubjectsWithFilter(documentFilter, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список всех документов без пейджинга.
         * @summary Возвращает список всех документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchDocuments(schema: string, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Document>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchDocuments(schema, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkDocument(schema: string, document: Array<Document>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkDocument(schema, document, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет статус заявления
         * @param {ApplicationStatus} applicationStatus Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateApplicationStatus(applicationStatus: ApplicationStatus, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateApplicationStatus(applicationStatus, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDocument(schema: string, document: Array<Document>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDocument(schema, document, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DocumentApi - factory interface
 * @export
 */
export const DocumentApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DocumentApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countDocuments(schema: string, query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countDocuments(schema, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createDocument(schema: string, document: Array<Document>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.createDocument(schema, document, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} schema Название схемы документа
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteByIdDocument(schema: string, id: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteByIdDocument(schema, id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет документы по идентификаторам
         * @param {string} schema Название схемы документа
         * @param {Array<string>} requestBody ID документов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDocument(schema: string, requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteDocument(schema, requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает документ по его идентификатору
         * @param {string} schema Название схемы документа
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDocument(schema: string, id: string, expand?: string, options?: any): AxiosPromise<Document> {
            return localVarFp.getDocument(schema, id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получает уникальный, не порядковый, инкрементный номер документа 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        internalcount(options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.internalcount(options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {ApplicationFilter} applicationFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingApplicationsWithFilter(applicationFilter: ApplicationFilter, options?: any): AxiosPromise<Page> {
            return localVarFp.pagingApplicationsWithFilter(applicationFilter, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schema Название схемы документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDocuments(schema: string, page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Page> {
            return localVarFp.pagingDocuments(schema, page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
         * @param {DocumentFilter} documentFilter Объект фильтра
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingSubjectsWithFilter(documentFilter: DocumentFilter, options?: any): AxiosPromise<Page> {
            return localVarFp.pagingSubjectsWithFilter(documentFilter, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список всех документов без пейджинга.
         * @summary Возвращает список всех документов
         * @param {string} schema Название схемы документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchDocuments(schema: string, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Document>> {
            return localVarFp.searchDocuments(schema, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDocument(schema: string, document: Array<Document>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.unlinkDocument(schema, document, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет статус заявления
         * @param {ApplicationStatus} applicationStatus Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateApplicationStatus(applicationStatus: ApplicationStatus, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateApplicationStatus(applicationStatus, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {string} schema Название схемы документа
         * @param {Array<Document>} document Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocument(schema: string, document: Array<Document>, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.updateDocument(schema, document, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DocumentApi - object-oriented interface
 * @export
 * @class DocumentApi
 * @extends {BaseAPI}
 */
export class DocumentApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает количество документов
     * @param {string} schema Название схемы документа
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public countDocuments(schema: string, query?: string, fulltext?: string, options?: any) {
        return DocumentApiFp(this.configuration).countDocuments(schema, query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создает новый объект
     * @param {string} schema Название схемы документа
     * @param {Array<Document>} document Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public createDocument(schema: string, document: Array<Document>, options?: any) {
        return DocumentApiFp(this.configuration).createDocument(schema, document, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Удаляет документы по идентификаторам
     * @param {string} schema Название схемы документа
     * @param {Array<string>} requestBody ID документов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public deleteDocument(schema: string, requestBody: Array<string>, options?: any) {
        return DocumentApiFp(this.configuration).deleteDocument(schema, requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Получает уникальный, не порядковый, инкрементный номер документа 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public internalcount(options?: any) {
        return DocumentApiFp(this.configuration).internalcount(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
     * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
     * @param {ApplicationFilter} applicationFilter Объект фильтра
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public pagingApplicationsWithFilter(applicationFilter: ApplicationFilter, options?: any) {
        return DocumentApiFp(this.configuration).pagingApplicationsWithFilter(applicationFilter, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
     * @summary Возвращает постраничный список документов
     * @param {string} schema Название схемы документа
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
     * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
     * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public pagingDocuments(schema: string, page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return DocumentApiFp(this.configuration).pagingDocuments(schema, page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
     * @summary Возвращает постраничный список документов, используя дополнительный фильтр по полям
     * @param {DocumentFilter} documentFilter Объект фильтра
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public pagingSubjectsWithFilter(documentFilter: DocumentFilter, options?: any) {
        return DocumentApiFp(this.configuration).pagingSubjectsWithFilter(documentFilter, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает список всех документов без пейджинга.
     * @summary Возвращает список всех документов
     * @param {string} schema Название схемы документа
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob), работает в всегда в связке И с fulltext
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки (пример name&#x3D;search&#x3D;Иван), работает в всегда в связке И с query
     * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
     * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public searchDocuments(schema: string, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return DocumentApiFp(this.configuration).searchDocuments(schema, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {string} schema Название схемы документа
     * @param {Array<Document>} document Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public unlinkDocument(schema: string, document: Array<Document>, options?: any) {
        return DocumentApiFp(this.configuration).unlinkDocument(schema, document, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет статус заявления
     * @param {ApplicationStatus} applicationStatus Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public updateApplicationStatus(applicationStatus: ApplicationStatus, options?: any) {
        return DocumentApiFp(this.configuration).updateApplicationStatus(applicationStatus, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {string} schema Название схемы документа
     * @param {Array<Document>} document Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public updateDocument(schema: string, document: Array<Document>, options?: any) {
        return DocumentApiFp(this.configuration).updateDocument(schema, document, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * GraphApi - axios parameter creator
 * @export
 */
export const GraphApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Возвращает плоскую структуру документов начиная от заданных вершин.
         * @summary Возвращает плоскую структуру документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {Array<string>} ids IDs документов
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        flatten: async (schema: string, type: 'incoming' | 'outgoing', ids: Array<string>, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('flatten', 'schema', schema)
            // verify required parameter 'type' is not null or undefined
            assertParamExists('flatten', 'type', type)
            // verify required parameter 'ids' is not null or undefined
            assertParamExists('flatten', 'ids', ids)
            const localVarPath = `/flatten/{schema}/{type}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .replace(`{${"type"}}`, encodeURIComponent(String(type)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            if (ids) {
                localVarQueryParameter['ids'] = ids;
            }

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

            if (schemas) {
                localVarQueryParameter['schemas'] = schemas;
            }

            if (links) {
                localVarQueryParameter['links'] = links;
            }

            if (expand) {
                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} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа вершины откуда начать поиск
         * @param {number} [depth] Глубина поиска
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        flatten1: async (schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, page?: number, perPage?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('flatten1', 'schema', schema)
            // verify required parameter 'type' is not null or undefined
            assertParamExists('flatten1', 'type', type)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('flatten1', 'id', id)
            const localVarPath = `/flatten/{schema}/{type}/{id}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .replace(`{${"type"}}`, encodeURIComponent(String(type)))
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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

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

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

            if (schemas) {
                localVarQueryParameter['schemas'] = schemas;
            }

            if (links) {
                localVarQueryParameter['links'] = links;
            }

            if (expand) {
                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} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в граф
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        tree: async (schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('tree', 'schema', schema)
            // verify required parameter 'type' is not null or undefined
            assertParamExists('tree', 'type', type)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('tree', 'id', id)
            const localVarPath = `/tree/{schema}/{type}/{id}`
                .replace(`{${"schema"}}`, encodeURIComponent(String(schema)))
                .replace(`{${"type"}}`, encodeURIComponent(String(type)))
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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

            if (schemas) {
                localVarQueryParameter['schemas'] = schemas;
            }

            if (links) {
                localVarQueryParameter['links'] = links;
            }

            if (expand) {
                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,
            };
        },
    }
};

/**
 * GraphApi - functional programming interface
 * @export
 */
export const GraphApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = GraphApiAxiosParamCreator(configuration)
    return {
        /**
         * Возвращает плоскую структуру документов начиная от заданных вершин.
         * @summary Возвращает плоскую структуру документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {Array<string>} ids IDs документов
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async flatten(schema: string, type: 'incoming' | 'outgoing', ids: Array<string>, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Document>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.flatten(schema, type, ids, depth, schemas, links, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает плоскую структуру документов начиная от заданной вершины.
         * @summary Возвращает плоскую структуру документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа вершины откуда начать поиск
         * @param {number} [depth] Глубина поиска
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async flatten1(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, page?: number, perPage?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.flatten1(schema, type, id, depth, page, perPage, schemas, links, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает дерево документов начиная от заданной вершины.
         * @summary Возвращает дерево документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в граф
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async tree(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<NodeTO>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.tree(schema, type, id, depth, schemas, links, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * GraphApi - factory interface
 * @export
 */
export const GraphApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = GraphApiFp(configuration)
    return {
        /**
         * Возвращает плоскую структуру документов начиная от заданных вершин.
         * @summary Возвращает плоскую структуру документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {Array<string>} ids IDs документов
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        flatten(schema: string, type: 'incoming' | 'outgoing', ids: Array<string>, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): AxiosPromise<Array<Document>> {
            return localVarFp.flatten(schema, type, ids, depth, schemas, links, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает плоскую структуру документов начиная от заданной вершины.
         * @summary Возвращает плоскую структуру документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа вершины откуда начать поиск
         * @param {number} [depth] Глубина поиска
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        flatten1(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, page?: number, perPage?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): AxiosPromise<Page> {
            return localVarFp.flatten1(schema, type, id, depth, page, perPage, schemas, links, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает дерево документов начиная от заданной вершины.
         * @summary Возвращает дерево документов
         * @param {string} schema Имя схемы документа (schema)
         * @param {'incoming' | 'outgoing'} type Направление связи
         * @param {string} id ID документа
         * @param {number} [depth] Глубина поиска
         * @param {Array<string>} [schemas] Схемы (schema) которые включить в граф
         * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
         * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        tree(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any): AxiosPromise<NodeTO> {
            return localVarFp.tree(schema, type, id, depth, schemas, links, expand, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * GraphApi - object-oriented interface
 * @export
 * @class GraphApi
 * @extends {BaseAPI}
 */
export class GraphApi extends BaseAPI {
    /**
     * Возвращает плоскую структуру документов начиная от заданных вершин.
     * @summary Возвращает плоскую структуру документов
     * @param {string} schema Имя схемы документа (schema)
     * @param {'incoming' | 'outgoing'} type Направление связи
     * @param {Array<string>} ids IDs документов
     * @param {number} [depth] Глубина поиска
     * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
     * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
     * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GraphApi
     */
    public flatten(schema: string, type: 'incoming' | 'outgoing', ids: Array<string>, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any) {
        return GraphApiFp(this.configuration).flatten(schema, type, ids, depth, schemas, links, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает плоскую структуру документов начиная от заданной вершины.
     * @summary Возвращает плоскую структуру документов
     * @param {string} schema Имя схемы документа (schema)
     * @param {'incoming' | 'outgoing'} type Направление связи
     * @param {string} id ID документа вершины откуда начать поиск
     * @param {number} [depth] Глубина поиска
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {Array<string>} [schemas] Схемы (schema) которые включить в выборку
     * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
     * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GraphApi
     */
    public flatten1(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, page?: number, perPage?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any) {
        return GraphApiFp(this.configuration).flatten1(schema, type, id, depth, page, perPage, schemas, links, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает дерево документов начиная от заданной вершины.
     * @summary Возвращает дерево документов
     * @param {string} schema Имя схемы документа (schema)
     * @param {'incoming' | 'outgoing'} type Направление связи
     * @param {string} id ID документа
     * @param {number} [depth] Глубина поиска
     * @param {Array<string>} [schemas] Схемы (schema) которые включить в граф
     * @param {Array<string>} [links] Имена линков (полей) которые включить при обходе графа
     * @param {Array<string>} [expand] Расширение объекта по его ссылкам (пример - Account:person)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GraphApi
     */
    public tree(schema: string, type: 'incoming' | 'outgoing', id: string, depth?: number, schemas?: Array<string>, links?: Array<string>, expand?: Array<string>, options?: any) {
        return GraphApiFp(this.configuration).tree(schema, type, id, depth, schemas, links, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * LinksApi - axios parameter creator
 * @export
 */
export const LinksApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema линкованого документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countLinks: async (schemaParent: string, parentId: string, schemaChild: string, query?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schemaParent' is not null or undefined
            assertParamExists('countLinks', 'schemaParent', schemaParent)
            // verify required parameter 'parentId' is not null or undefined
            assertParamExists('countLinks', 'parentId', parentId)
            // verify required parameter 'schemaChild' is not null or undefined
            assertParamExists('countLinks', 'schemaChild', schemaChild)
            const localVarPath = `/links/{schemaParent}/{parentId}/{schemaChild}/count`
                .replace(`{${"schemaParent"}}`, encodeURIComponent(String(schemaParent)))
                .replace(`{${"parentId"}}`, encodeURIComponent(String(parentId)))
                .replace(`{${"schemaChild"}}`, encodeURIComponent(String(schemaChild)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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


    
            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} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Имя Schema прилинкованного документа
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findLinks: async (schemaParent: string, parentId: string, schemaChild: string, id: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schemaParent' is not null or undefined
            assertParamExists('findLinks', 'schemaParent', schemaParent)
            // verify required parameter 'parentId' is not null or undefined
            assertParamExists('findLinks', 'parentId', parentId)
            // verify required parameter 'schemaChild' is not null or undefined
            assertParamExists('findLinks', 'schemaChild', schemaChild)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('findLinks', 'id', id)
            const localVarPath = `/links/{schemaParent}/{parentId}/{schemaChild}/{id}`
                .replace(`{${"schemaParent"}}`, encodeURIComponent(String(schemaParent)))
                .replace(`{${"parentId"}}`, encodeURIComponent(String(parentId)))
                .replace(`{${"schemaChild"}}`, encodeURIComponent(String(schemaChild)))
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

            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,
            };
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingLinks: async (schemaParent: string, parentId: string, schemaChild: string, page?: number, perPage?: number, query?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schemaParent' is not null or undefined
            assertParamExists('pagingLinks', 'schemaParent', schemaParent)
            // verify required parameter 'parentId' is not null or undefined
            assertParamExists('pagingLinks', 'parentId', parentId)
            // verify required parameter 'schemaChild' is not null or undefined
            assertParamExists('pagingLinks', 'schemaChild', schemaChild)
            const localVarPath = `/links/{schemaParent}/{parentId}/{schemaChild}`
                .replace(`{${"schemaParent"}}`, encodeURIComponent(String(schemaParent)))
                .replace(`{${"parentId"}}`, encodeURIComponent(String(parentId)))
                .replace(`{${"schemaChild"}}`, encodeURIComponent(String(schemaChild)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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

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

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

            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} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchLinks: async (schemaParent: string, parentId: string, schemaChild: string, query?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'schemaParent' is not null or undefined
            assertParamExists('searchLinks', 'schemaParent', schemaParent)
            // verify required parameter 'parentId' is not null or undefined
            assertParamExists('searchLinks', 'parentId', parentId)
            // verify required parameter 'schemaChild' is not null or undefined
            assertParamExists('searchLinks', 'schemaChild', schemaChild)
            const localVarPath = `/links/{schemaParent}/{parentId}/{schemaChild}/all`
                .replace(`{${"schemaParent"}}`, encodeURIComponent(String(schemaParent)))
                .replace(`{${"parentId"}}`, encodeURIComponent(String(parentId)))
                .replace(`{${"schemaChild"}}`, encodeURIComponent(String(schemaChild)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

            // authentication registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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

            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,
            };
        },
    }
};

/**
 * LinksApi - functional programming interface
 * @export
 */
export const LinksApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = LinksApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema линкованого документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async countLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countLinks(schemaParent, parentId, schemaChild, query, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Имя Schema прилинкованного документа
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async findLinks(schemaParent: string, parentId: string, schemaChild: string, id: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Document>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.findLinks(schemaParent, parentId, schemaChild, id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingLinks(schemaParent: string, parentId: string, schemaChild: string, page?: number, perPage?: number, query?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Page>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingLinks(schemaParent, parentId, schemaChild, page, perPage, query, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список документов без пейджинга.
         * @summary Возвращает список документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Document>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchLinks(schemaParent, parentId, schemaChild, query, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * LinksApi - factory interface
 * @export
 */
export const LinksApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = LinksApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema линкованого документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        countLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countLinks(schemaParent, parentId, schemaChild, query, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Имя Schema прилинкованного документа
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findLinks(schemaParent: string, parentId: string, schemaChild: string, id: string, expand?: string, options?: any): AxiosPromise<Document> {
            return localVarFp.findLinks(schemaParent, parentId, schemaChild, id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
         * @summary Возвращает постраничный список документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingLinks(schemaParent: string, parentId: string, schemaChild: string, page?: number, perPage?: number, query?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Page> {
            return localVarFp.pagingLinks(schemaParent, parentId, schemaChild, page, perPage, query, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список документов без пейджинга.
         * @summary Возвращает список документов
         * @param {string} schemaParent Schema родительского документа
         * @param {string} parentId 
         * @param {string} schemaChild Schema прилинкованного документа
         * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
         * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
         * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Document>> {
            return localVarFp.searchLinks(schemaParent, parentId, schemaChild, query, sort, expand, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * LinksApi - object-oriented interface
 * @export
 * @class LinksApi
 * @extends {BaseAPI}
 */
export class LinksApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает количество документов
     * @param {string} schemaParent Schema родительского документа
     * @param {string} parentId 
     * @param {string} schemaChild Schema линкованого документа
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LinksApi
     */
    public countLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, options?: any) {
        return LinksApiFp(this.configuration).countLinks(schemaParent, parentId, schemaChild, query, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * Возвращает постраничный список документов. Разбиение на страницы производиться по 10 записей на страницу (задаётся параметрами запроса) и сортировкой (задаётся параметрами запроса).
     * @summary Возвращает постраничный список документов
     * @param {string} schemaParent Schema родительского документа
     * @param {string} parentId 
     * @param {string} schemaChild Schema прилинкованного документа
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
     * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
     * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LinksApi
     */
    public pagingLinks(schemaParent: string, parentId: string, schemaChild: string, page?: number, perPage?: number, query?: string, sort?: string, expand?: string, options?: any) {
        return LinksApiFp(this.configuration).pagingLinks(schemaParent, parentId, schemaChild, page, perPage, query, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает список документов без пейджинга.
     * @summary Возвращает список документов
     * @param {string} schemaParent Schema родительского документа
     * @param {string} parentId 
     * @param {string} schemaChild Schema прилинкованного документа
     * @param {string} [query] Фильтр (RSQL) выборки по объекту (пример name&#x3D;&#x3D;Bob)
     * @param {string} [sort] Параметры сортировки (пример: -modified в порядке DESC, +modified в порядке ASC, можно N полей через запятую)
     * @param {string} [expand] Расширение объекта по его ссылкам (см. описание модели)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LinksApi
     */
    public searchLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, sort?: string, expand?: string, options?: any) {
        return LinksApiFp(this.configuration).searchLinks(schemaParent, parentId, schemaChild, query, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * SocialOrganizationsINNApi - axios parameter creator
 * @export
 */
export const SocialOrganizationsINNApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<SocialOrganizationsINN>} socialOrganizationsINN Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createSocialOrganizationsINN: async (socialOrganizationsINN: Array<SocialOrganizationsINN>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'socialOrganizationsINN' is not null or undefined
            assertParamExists('createSocialOrganizationsINN', 'socialOrganizationsINN', socialOrganizationsINN)
            const localVarPath = `/socialorganizationsinn`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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}
         */
        pagingSocialOrganizationsINN: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/socialorganizationsinn`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

            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 {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchSocialOrganizationsINN: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/socialorganizationsinn/all`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

            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<SocialOrganizationsINN>} socialOrganizationsINN Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSocialOrganizationsINN: async (socialOrganizationsINN: Array<SocialOrganizationsINN>, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'socialOrganizationsINN' is not null or undefined
            assertParamExists('updateSocialOrganizationsINN', 'socialOrganizationsINN', socialOrganizationsINN)
            const localVarPath = `/socialorganizationsinn`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)


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

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

/**
 * SocialOrganizationsINNApi - functional programming interface
 * @export
 */
export const SocialOrganizationsINNApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = SocialOrganizationsINNApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<SocialOrganizationsINN>} socialOrganizationsINN Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createSocialOrganizationsINN(socialOrganizationsINN: Array<SocialOrganizationsINN>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createSocialOrganizationsINN(socialOrganizationsINN, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteSocialOrganizationsINN(requestBody: Array<string>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteSocialOrganizationsINN(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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 pagingSocialOrganizationsINN(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfSocialOrganizationsINN>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingSocialOrganizationsINN(handler, page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchSocialOrganizationsINN(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<SocialOrganizationsINN>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchSocialOrganizationsINN(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<SocialOrganizationsINN>} socialOrganizationsINN Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateSocialOrganizationsINN(socialOrganizationsINN: Array<SocialOrganizationsINN>, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateSocialOrganizationsINN(socialOrganizationsINN, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * SocialOrganizationsINNApi - factory interface
 * @export
 */
export const SocialOrganizationsINNApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = SocialOrganizationsINNApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<SocialOrganizationsINN>} socialOrganizationsINN Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createSocialOrganizationsINN(socialOrganizationsINN: Array<SocialOrganizationsINN>, options?: any): AxiosPromise<Response> {
            return localVarFp.createSocialOrganizationsINN(socialOrganizationsINN, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteSocialOrganizationsINN(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteSocialOrganizationsINN(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @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}
         */
        pagingSocialOrganizationsINN(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfSocialOrganizationsINN> {
            return localVarFp.pagingSocialOrganizationsINN(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchSocialOrganizationsINN(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<SocialOrganizationsINN>> {
            return localVarFp.searchSocialOrganizationsINN(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<SocialOrganizationsINN>} socialOrganizationsINN Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSocialOrganizationsINN(socialOrganizationsINN: Array<SocialOrganizationsINN>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateSocialOrganizationsINN(socialOrganizationsINN, options).then((request) => request(axios, basePath));
        },
    };
};

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

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

    /**
     * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
     * @summary Возвращает список объектов
     * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
     * @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 SocialOrganizationsINNApi
     */
    public pagingSocialOrganizationsINN(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any) {
        return SocialOrganizationsINNApiFp(this.configuration).pagingSocialOrganizationsINN(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

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

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


/**
 * StatReportsApi - axios parameter creator
 * @export
 */
export const StatReportsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает данные из коллекций StatReport, StatReportResult, DocumentAttachmentFileDescriptor
         * @param {number} [number] 
         * @param {string} [reportId] 
         * @param {string} [creatorId] 
         * @param {Array<string>} [parentIdsIn] 
         * @param {Array<string>} [parentIdsNotin] 
         * @param {boolean} [autoEnabled] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getStatReports: async (number?: number, reportId?: string, creatorId?: string, parentIdsIn?: Array<string>, parentIdsNotin?: Array<string>, autoEnabled?: boolean, options: any = {}): Promise<RequestArgs> => {
            const localVarPath = `/statreports`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

            // authentication documentRegistryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "documentRegistryAuth", [], configuration)

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

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

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

            if (parentIdsIn) {
                localVarQueryParameter['parentIds_in'] = parentIdsIn;
            }

            if (parentIdsNotin) {
                localVarQueryParameter['parentIds_notin'] = parentIdsNotin;
            }

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


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

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

/**
 * StatReportsApi - functional programming interface
 * @export
 */
export const StatReportsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = StatReportsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает данные из коллекций StatReport, StatReportResult, DocumentAttachmentFileDescriptor
         * @param {number} [number] 
         * @param {string} [reportId] 
         * @param {string} [creatorId] 
         * @param {Array<string>} [parentIdsIn] 
         * @param {Array<string>} [parentIdsNotin] 
         * @param {boolean} [autoEnabled] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getStatReports(number?: number, reportId?: string, creatorId?: string, parentIdsIn?: Array<string>, parentIdsNotin?: Array<string>, autoEnabled?: boolean, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getStatReports(number, reportId, creatorId, parentIdsIn, parentIdsNotin, autoEnabled, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * StatReportsApi - factory interface
 * @export
 */
export const StatReportsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = StatReportsApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает данные из коллекций StatReport, StatReportResult, DocumentAttachmentFileDescriptor
         * @param {number} [number] 
         * @param {string} [reportId] 
         * @param {string} [creatorId] 
         * @param {Array<string>} [parentIdsIn] 
         * @param {Array<string>} [parentIdsNotin] 
         * @param {boolean} [autoEnabled] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getStatReports(number?: number, reportId?: string, creatorId?: string, parentIdsIn?: Array<string>, parentIdsNotin?: Array<string>, autoEnabled?: boolean, options?: any): AxiosPromise<object> {
            return localVarFp.getStatReports(number, reportId, creatorId, parentIdsIn, parentIdsNotin, autoEnabled, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * StatReportsApi - object-oriented interface
 * @export
 * @class StatReportsApi
 * @extends {BaseAPI}
 */
export class StatReportsApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает данные из коллекций StatReport, StatReportResult, DocumentAttachmentFileDescriptor
     * @param {number} [number] 
     * @param {string} [reportId] 
     * @param {string} [creatorId] 
     * @param {Array<string>} [parentIdsIn] 
     * @param {Array<string>} [parentIdsNotin] 
     * @param {boolean} [autoEnabled] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StatReportsApi
     */
    public getStatReports(number?: number, reportId?: string, creatorId?: string, parentIdsIn?: Array<string>, parentIdsNotin?: Array<string>, autoEnabled?: boolean, options?: any) {
        return StatReportsApiFp(this.configuration).getStatReports(number, reportId, creatorId, parentIdsIn, parentIdsNotin, autoEnabled, options).then((request) => request(this.axios, this.basePath));
    }
}


