/* tslint:disable */
/* eslint-disable */
/**
 * idm-v2
 * # User Identity Manager Service.  ```   Если необходимо обнулить текущее значение поля объекта при его обновлении, используйте значение \"emptyValue\" ``` **Пример PUT**   ```   {     \"birthDate\": \"emptyValue\"   }   ``` 
 *
 * The version of the OpenAPI document: 2
 * 
 *
 * 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, AxiosRequestConfig } 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 Account
 */
export interface Account {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Account
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Account
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Account
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Account
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Account
     */
    'start': string;
    /**
     * 
     * @type {string}
     * @memberof Account
     */
    'finish'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Account
     */
    'enabled'?: boolean;
    /**
     * Должность сотрудника
     * @type {string}
     * @memberof Account
     */
    'position'?: string;
    /**
     * Служебный email
     * @type {string}
     * @memberof Account
     */
    'workMail'?: string;
    /**
     * Аккаунт ЕСИА
     * @type {boolean}
     * @memberof Account
     */
    'esiaAccount'?: boolean;
}
/**
 * 
 * @export
 * @interface AccountAdminSearchFilterDTO
 */
export interface AccountAdminSearchFilterDTO {
    /**
     * Строковое значение поисковой фразы по полю \"fio\" сущности Person связанной с аккаунтом.  Не RSQL фильтр !!!. Поиск будет произведен как аналог RSQL = (fio=searchprefix=\"Иван\" or fio=search=\"Иван\").
     * @type {string}
     * @memberof AccountAdminSearchFilterDTO
     */
    'personFioFullTextFilter'?: string;
    /**
     * ID домена в иерархии которого необходимо осуществить поиск
     * @type {string}
     * @memberof AccountAdminSearchFilterDTO
     */
    'domainId'?: string;
    /**
     * ID прямой роли аккаунта по которой необходимо отфильтровать аккаунты. Опционально
     * @type {string}
     * @memberof AccountAdminSearchFilterDTO
     */
    'roleId'?: string;
}
/**
 * 
 * @export
 * @interface AccountAdminSearchPagingResultDTO
 */
export interface AccountAdminSearchPagingResultDTO {
    /**
     * 
     * @type {Array<AccountSearchRecordDTO>}
     * @memberof AccountAdminSearchPagingResultDTO
     */
    'data'?: Array<AccountSearchRecordDTO>;
    /**
     * 
     * @type {string}
     * @memberof AccountAdminSearchPagingResultDTO
     */
    'elementType'?: string;
    /**
     * Page number
     * @type {number}
     * @memberof AccountAdminSearchPagingResultDTO
     */
    'page'?: number;
    /**
     * Number of elements per page
     * @type {number}
     * @memberof AccountAdminSearchPagingResultDTO
     */
    'perPage'?: number;
    /**
     * 
     * @type {number}
     * @memberof AccountAdminSearchPagingResultDTO
     */
    'totalRows'?: number;
}
/**
 * 
 * @export
 * @interface AccountAllOf
 */
export interface AccountAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof AccountAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof AccountAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof AccountAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof AccountAllOf
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof AccountAllOf
     */
    'start'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountAllOf
     */
    'finish'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof AccountAllOf
     */
    'enabled'?: boolean;
    /**
     * Должность сотрудника
     * @type {string}
     * @memberof AccountAllOf
     */
    'position'?: string;
    /**
     * Служебный email
     * @type {string}
     * @memberof AccountAllOf
     */
    'workMail'?: string;
    /**
     * Аккаунт ЕСИА
     * @type {boolean}
     * @memberof AccountAllOf
     */
    'esiaAccount'?: boolean;
}
/**
 * Список найденных объектов
 * @export
 * @interface AccountPersonSingleTO
 */
export interface AccountPersonSingleTO {
    /**
     * 
     * @type {string}
     * @memberof AccountPersonSingleTO
     */
    'id'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountPersonSingleTO
     */
    'start'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountPersonSingleTO
     */
    'finish'?: string;
    /**
     * Активен ли аккаунт
     * @type {boolean}
     * @memberof AccountPersonSingleTO
     */
    'enabled'?: boolean;
    /**
     * Должность сотрудника
     * @type {string}
     * @memberof AccountPersonSingleTO
     */
    'position'?: string;
    /**
     * Полное имя домена владельца
     * @type {string}
     * @memberof AccountPersonSingleTO
     */
    'domainFullName'?: string;
    /**
     * 
     * @type {PersonSingleTO}
     * @memberof AccountPersonSingleTO
     */
    'person'?: PersonSingleTO;
    /**
     * Блокировка
     * @type {boolean}
     * @memberof AccountPersonSingleTO
     */
    'blocked'?: boolean;
}
/**
 * 
 * @export
 * @interface AccountProfile
 */
export interface AccountProfile {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof AccountProfile
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof AccountProfile
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof AccountProfile
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof AccountProfile
     */
    'schema'?: string;
    /**
     * 
     * @type {Filters}
     * @memberof AccountProfile
     */
    'sectionFilters'?: Filters;
}
/**
 * 
 * @export
 * @interface AccountProfileAllOf
 */
export interface AccountProfileAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof AccountProfileAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof AccountProfileAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof AccountProfileAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof AccountProfileAllOf
     */
    'schema'?: string;
    /**
     * 
     * @type {Filters}
     * @memberof AccountProfileAllOf
     */
    'sectionFilters'?: Filters;
}
/**
 * 
 * @export
 * @interface AccountSearchByDomainIdDTO
 */
export interface AccountSearchByDomainIdDTO {
    /**
     * ID домена в иерархии которого необходимо осуществить поиск
     * @type {string}
     * @memberof AccountSearchByDomainIdDTO
     */
    'domainId': string;
    /**
     * ID прямой роли аккаунта по которой необходимо отфильтровать аккаунты
     * @type {string}
     * @memberof AccountSearchByDomainIdDTO
     */
    'roleId'?: string;
}
/**
 * 
 * @export
 * @interface AccountSearchRecordDTO
 */
export interface AccountSearchRecordDTO {
    /**
     * 
     * @type {string}
     * @memberof AccountSearchRecordDTO
     */
    'accountId'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountSearchRecordDTO
     */
    'accountFullName'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountSearchRecordDTO
     */
    'domainName'?: string;
    /**
     * 
     * @type {Array<Role>}
     * @memberof AccountSearchRecordDTO
     */
    'roles'?: Array<Role>;
    /**
     * Статус активен ли аккаунт
     * @type {boolean}
     * @memberof AccountSearchRecordDTO
     */
    'enabled'?: boolean;
    /**
     * Статус блокировки аккаунта
     * @type {boolean}
     * @memberof AccountSearchRecordDTO
     */
    'blocked'?: boolean;
}
/**
 * 
 * @export
 * @interface AccountSearchRecordSimpleDTO
 */
export interface AccountSearchRecordSimpleDTO {
    /**
     * 
     * @type {string}
     * @memberof AccountSearchRecordSimpleDTO
     */
    'accountId'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountSearchRecordSimpleDTO
     */
    'accountFullName'?: string;
    /**
     * Статус активен ли аккаунт
     * @type {boolean}
     * @memberof AccountSearchRecordSimpleDTO
     */
    'enabled'?: boolean;
}
/**
 * 
 * @export
 * @interface AccountTO
 */
export interface AccountTO {
    /**
     * 
     * @type {string}
     * @memberof AccountTO
     */
    'id'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountTO
     */
    'start'?: string;
    /**
     * 
     * @type {string}
     * @memberof AccountTO
     */
    'finish'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof AccountTO
     */
    'enabled'?: boolean;
    /**
     * 
     * @type {Array<DomainTO>}
     * @memberof AccountTO
     */
    'domains'?: Array<DomainTO>;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof AccountTO
     */
    'externalProperties'?: { [key: string]: string; };
}
/**
 * Набор claim mapper
 * @export
 * @interface ClaimMapper
 */
export interface ClaimMapper {
    /**
     * 
     * @type {string}
     * @memberof ClaimMapper
     */
    'mapperId'?: string;
    /**
     * 
     * @type {Set<string>}
     * @memberof ClaimMapper
     */
    'enableForTypes'?: Set<string>;
    /**
     * 
     * @type {string}
     * @memberof ClaimMapper
     */
    'targetClaimName'?: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof ClaimMapper
     */
    'properties'?: { [key: string]: string; };
}
/**
 * Клиент описывает приложение действующее от лица пользователя запрашивающего ресурсы и действия с ними в рамках разрешений предоставленных пользователю и подтвержденных согласием самого пользователя на доступ к ним.
 * @export
 * @interface Client
 */
export interface Client {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Client
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Client
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Client
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Client
     */
    'schema'?: string;
    /**
     * Название
     * @type {string}
     * @memberof Client
     */
    'name'?: string;
    /**
     * Описание клиента
     * @type {string}
     * @memberof Client
     */
    'description'?: string;
    /**
     * Идентификатор клиента
     * @type {string}
     * @memberof Client
     */
    'clientId': string;
    /**
     * Признак того, что клиент является public, а не confidential
     * @type {boolean}
     * @memberof Client
     */
    'publicClient'?: boolean;
    /**
     * Секрет клиента. Пока тут может быть только строка
     * @type {string}
     * @memberof Client
     */
    'clientSecret'?: string;
    /**
     * Разрешен ли Authorization Code Grant данному клиенту
     * @type {boolean}
     * @memberof Client
     */
    'authorizationCodeGrantAllowed'?: boolean;
    /**
     * Разрешен ли Client Credentials Grant данному клиенту
     * @type {boolean}
     * @memberof Client
     */
    'clientCredentialsGrantAllowed'?: boolean;
    /**
     * Требуется ли подписывать UserInfo
     * @type {boolean}
     * @memberof Client
     */
    'userInfoSigningRequired'?: boolean;
    /**
     * Разрешенные redirect_uri
     * @type {Array<string>}
     * @memberof Client
     */
    'validRedirectUris'?: Array<string>;
    /**
     * Включен или выключен данный клиент
     * @type {boolean}
     * @memberof Client
     */
    'enabled'?: boolean;
    /**
     * URL на домашнюю страницу клиента
     * @type {string}
     * @memberof Client
     */
    'clientUri'?: string;
    /**
     * URL на страницу с политиками использования данных пользователя
     * @type {string}
     * @memberof Client
     */
    'policyUri'?: string;
    /**
     * URL на страницу с terms of service
     * @type {string}
     * @memberof Client
     */
    'tosUri'?: string;
    /**
     * Набор claim mapper
     * @type {Set<ClaimMapper>}
     * @memberof Client
     */
    'claimMappers'?: Set<ClaimMapper>;
}
/**
 * 
 * @export
 * @interface ClientAllOf
 */
export interface ClientAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ClientAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ClientAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ClientAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ClientAllOf
     */
    'schema'?: string;
    /**
     * Название
     * @type {string}
     * @memberof ClientAllOf
     */
    'name'?: string;
    /**
     * Описание клиента
     * @type {string}
     * @memberof ClientAllOf
     */
    'description'?: string;
    /**
     * Идентификатор клиента
     * @type {string}
     * @memberof ClientAllOf
     */
    'clientId'?: string;
    /**
     * Признак того, что клиент является public, а не confidential
     * @type {boolean}
     * @memberof ClientAllOf
     */
    'publicClient'?: boolean;
    /**
     * Секрет клиента. Пока тут может быть только строка
     * @type {string}
     * @memberof ClientAllOf
     */
    'clientSecret'?: string;
    /**
     * Разрешен ли Authorization Code Grant данному клиенту
     * @type {boolean}
     * @memberof ClientAllOf
     */
    'authorizationCodeGrantAllowed'?: boolean;
    /**
     * Разрешен ли Client Credentials Grant данному клиенту
     * @type {boolean}
     * @memberof ClientAllOf
     */
    'clientCredentialsGrantAllowed'?: boolean;
    /**
     * Требуется ли подписывать UserInfo
     * @type {boolean}
     * @memberof ClientAllOf
     */
    'userInfoSigningRequired'?: boolean;
    /**
     * Разрешенные redirect_uri
     * @type {Array<string>}
     * @memberof ClientAllOf
     */
    'validRedirectUris'?: Array<string>;
    /**
     * Включен или выключен данный клиент
     * @type {boolean}
     * @memberof ClientAllOf
     */
    'enabled'?: boolean;
    /**
     * URL на домашнюю страницу клиента
     * @type {string}
     * @memberof ClientAllOf
     */
    'clientUri'?: string;
    /**
     * URL на страницу с политиками использования данных пользователя
     * @type {string}
     * @memberof ClientAllOf
     */
    'policyUri'?: string;
    /**
     * URL на страницу с terms of service
     * @type {string}
     * @memberof ClientAllOf
     */
    'tosUri'?: string;
    /**
     * Набор claim mapper
     * @type {Set<ClaimMapper>}
     * @memberof ClientAllOf
     */
    'claimMappers'?: Set<ClaimMapper>;
}
/**
 * Области разрешений (ролей) в которых клиентскому приложению предполагается взаимодействовать с ресурсами.  Итоговый набор областей разрешений определяется с одной стороны соответствием ролей доступных пользователю и клиенту а с другой стороны согласием владельца ресурса (пользователем) на использование ресурса и действий с ним в клиентском приложении.
 * @export
 * @interface ClientScope
 */
export interface ClientScope {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ClientScope
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ClientScope
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ClientScope
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ClientScope
     */
    'schema'?: string;
    /**
     * Название скоупа
     * @type {string}
     * @memberof ClientScope
     */
    'name': string;
    /**
     * Название скоупа для показа пользователю
     * @type {string}
     * @memberof ClientScope
     */
    'displayName'?: string;
    /**
     * Описание скоупа
     * @type {string}
     * @memberof ClientScope
     */
    'description'?: string;
}
/**
 * 
 * @export
 * @interface ClientScopeAllOf
 */
export interface ClientScopeAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ClientScopeAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ClientScopeAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ClientScopeAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ClientScopeAllOf
     */
    'schema'?: string;
    /**
     * Название скоупа
     * @type {string}
     * @memberof ClientScopeAllOf
     */
    'name'?: string;
    /**
     * Название скоупа для показа пользователю
     * @type {string}
     * @memberof ClientScopeAllOf
     */
    'displayName'?: string;
    /**
     * Описание скоупа
     * @type {string}
     * @memberof ClientScopeAllOf
     */
    'description'?: string;
}
/**
 * Разрешение данное пользователем клиенту на обращение к ресурсам в которых пользователь является владельцем. Эти разрешения даются на к ClientScopes тех ролей что доступны самому пользователю. Запрос разрешения выполняется при первом входе пользователя в клиентское приложение.
 * @export
 * @interface Consent
 */
export interface Consent {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Consent
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Consent
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Consent
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Consent
     */
    'schema'?: string;
}
/**
 * 
 * @export
 * @interface Cookie
 */
export interface Cookie {
    /**
     * 
     * @type {boolean}
     * @memberof Cookie
     */
    'httpOnly'?: boolean;
    /**
     * 
     * @type {number}
     * @memberof Cookie
     */
    'maxAge'?: number;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    'sameSite'?: CookieSameSiteEnum;
    /**
     * 
     * @type {boolean}
     * @memberof Cookie
     */
    'secure'?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    'value': string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    'path'?: string;
    /**
     * 
     * @type {string}
     * @memberof Cookie
     */
    'domain'?: string;
}

export const CookieSameSiteEnum = {
    Lax: 'Lax',
    Strict: 'Strict',
    None: 'None'
} as const;

export type CookieSameSiteEnum = typeof CookieSameSiteEnum[keyof typeof CookieSameSiteEnum];

/**
 * 
 * @export
 * @interface Cookies
 */
export interface Cookies {
    /**
     * 
     * @type {Set<Cookie>}
     * @memberof Cookies
     */
    'all'?: Set<Cookie>;
    /**
     * 
     * @type {boolean}
     * @memberof Cookies
     */
    'empty'?: boolean;
}
/**
 * 
 * @export
 * @interface Credential
 */
export interface Credential {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Credential
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Credential
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Credential
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Credential
     */
    'schema'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Credential
     */
    'blocked'?: boolean;
}
/**
 * Департамент
 * @export
 * @interface Department
 */
export interface Department extends Domain {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Department
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Department
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Department
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Department
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof Department
     */
    'name': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof Department
     */
    'shortname': string;
    /**
     * Полное имя
     * @type {string}
     * @memberof Department
     */
    'fullname': string;
    /**
     * DNS
     * @type {string}
     * @memberof Department
     */
    'dns': string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof Department
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof Department
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof Department
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof Department
     */
    'reportsEnabled'?: boolean;
    /**
     * id департамента в nsi
     * @type {string}
     * @memberof Department
     */
    'nsiDepartmentId'?: string;
    /**
     * id организации в nsi
     * @type {string}
     * @memberof Department
     */
    'nsiOrganizationId'?: string;
    /**
     * ОКТМО департамента
     * @type {string}
     * @memberof Department
     */
    'oktmo'?: string;
    /**
     * ОГРН организации департамента
     * @type {string}
     * @memberof Department
     */
    'orgOgrn'?: string;
    /**
     * ОГРН департамента
     * @type {string}
     * @memberof Department
     */
    'depOgrn'?: string;
    /**
     * ЕПГУ ID (currentDivision)
     * @type {string}
     * @memberof Department
     */
    'epguId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'kpp'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'inn'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'okato'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'divisionType'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'tnsDepartmentId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'subpoenaSeriesCode'?: string;
    /**
     * 
     * @type {string}
     * @memberof Department
     */
    'maintenanceCode'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof Department
     */
    'enabled'?: boolean;
}
/**
 * 
 * @export
 * @interface DepartmentAllOf
 */
export interface DepartmentAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof DepartmentAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof DepartmentAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'name'?: string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'fullname'?: string;
    /**
     * DNS
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'dns'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof DepartmentAllOf
     */
    'reportsEnabled'?: boolean;
    /**
     * id департамента в nsi
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'nsiDepartmentId'?: string;
    /**
     * id организации в nsi
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'nsiOrganizationId'?: string;
    /**
     * ОКТМО департамента
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'oktmo'?: string;
    /**
     * ОГРН организации департамента
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'orgOgrn'?: string;
    /**
     * ОГРН департамента
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'depOgrn'?: string;
    /**
     * ЕПГУ ID (currentDivision)
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'epguId'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'kpp'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'inn'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'okato'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'divisionType'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'tnsDepartmentId'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'subpoenaSeriesCode'?: string;
    /**
     * 
     * @type {string}
     * @memberof DepartmentAllOf
     */
    'maintenanceCode'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof DepartmentAllOf
     */
    'enabled'?: boolean;
}
/**
 * Vertex value of current node
 * @export
 * @interface Document
 */
export interface Document {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Document
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Document
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Document
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Document
     */
    'schema'?: string;
}
/**
 * 
 * @export
 * @interface DocumentLinkDTO
 */
export interface DocumentLinkDTO {
    /**
     * Id документа для которого создаются связи
     * @type {string}
     * @memberof DocumentLinkDTO
     */
    'documentId': string;
    /**
     * Линки для связывания документа
     * @type {Set<LinkDTO>}
     * @memberof DocumentLinkDTO
     */
    'documentLinks': Set<LinkDTO>;
}
/**
 * Домен
 * @export
 * @interface Domain
 */
export interface Domain {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Domain
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Domain
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Domain
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Domain
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof Domain
     */
    'name': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof Domain
     */
    'shortname': string;
    /**
     * Полное имя
     * @type {string}
     * @memberof Domain
     */
    'fullname': string;
    /**
     * DNS
     * @type {string}
     * @memberof Domain
     */
    'dns': string;
    /**
     * 
     * @type {string}
     * @memberof Domain
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof Domain
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof Domain
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof Domain
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof Domain
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Domain
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof Domain
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof Domain
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof Domain
     */
    'reportsEnabled'?: boolean;
}
/**
 * 
 * @export
 * @interface DomainAllOf
 */
export interface DomainAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DomainAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof DomainAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof DomainAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof DomainAllOf
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof DomainAllOf
     */
    'name'?: string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof DomainAllOf
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof DomainAllOf
     */
    'fullname'?: string;
    /**
     * DNS
     * @type {string}
     * @memberof DomainAllOf
     */
    'dns'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainAllOf
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof DomainAllOf
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainAllOf
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainAllOf
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainAllOf
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainAllOf
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof DomainAllOf
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof DomainAllOf
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof DomainAllOf
     */
    'reportsEnabled'?: boolean;
}
/**
 * Домен для страниц статистики
 * @export
 * @interface DomainForStats
 */
export interface DomainForStats {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DomainForStats
     */
    'id': string;
    /**
     * Имя домена
     * @type {string}
     * @memberof DomainForStats
     */
    'name'?: string;
    /**
     * Код
     * @type {string}
     * @memberof DomainForStats
     */
    'code'?: string;
    /**
     * Список организаций
     * @type {Array<OrganizationForStats>}
     * @memberof DomainForStats
     */
    'organizations'?: Array<OrganizationForStats>;
}
/**
 * 
 * @export
 * @interface DomainProfile
 */
export interface DomainProfile {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof DomainProfile
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof DomainProfile
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof DomainProfile
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof DomainProfile
     */
    'schema'?: string;
}
/**
 * 
 * @export
 * @interface DomainTO
 */
export interface DomainTO {
    /**
     * 
     * @type {string}
     * @memberof DomainTO
     */
    'id'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainTO
     */
    'parentId'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainTO
     */
    'domainName'?: string;
    /**
     * 
     * @type {string}
     * @memberof DomainTO
     */
    'displayName'?: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof DomainTO
     */
    'properties'?: { [key: string]: string; };
}
/**
 * Удостоверение - описывает один за возможных вариантов аутентификации для персоны.
 * @export
 * @interface ExternalCredential
 */
export interface ExternalCredential {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ExternalCredential
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ExternalCredential
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ExternalCredential
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ExternalCredential
     */
    'schema'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ExternalCredential
     */
    'blocked'?: boolean;
    /**
     * Мнемоника внешнего IdP
     * @type {string}
     * @memberof ExternalCredential
     */
    'idpMnemonics': string;
    /**
     * Principal во внешнем IdP
     * @type {string}
     * @memberof ExternalCredential
     */
    'principal': string;
}
/**
 * 
 * @export
 * @interface ExternalCredentialAllOf
 */
export interface ExternalCredentialAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ExternalCredentialAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ExternalCredentialAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ExternalCredentialAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ExternalCredentialAllOf
     */
    'schema'?: string;
    /**
     * Мнемоника внешнего IdP
     * @type {string}
     * @memberof ExternalCredentialAllOf
     */
    'idpMnemonics'?: string;
    /**
     * Principal во внешнем IdP
     * @type {string}
     * @memberof ExternalCredentialAllOf
     */
    'principal'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ExternalCredentialAllOf
     */
    'blocked'?: boolean;
}
/**
 * 
 * @export
 * @interface Filters
 */
export interface Filters {
    /**
     * 
     * @type {Array<string>}
     * @memberof Filters
     */
    'regions'?: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof Filters
     */
    'services'?: Array<string>;
}
/**
 * 
 * @export
 * @interface GetCollapsedProfileByAccountId200Response
 */
export interface GetCollapsedProfileByAccountId200Response {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'schema'?: string;
    /**
     * 
     * @type {Filters}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'sectionFilters'?: Filters;
    /**
     * Язык
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'lang'?: string;
    /**
     * Часовой пояс
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'timezone'?: string;
    /**
     * Цветовая схема
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'colorScheme'?: string;
    /**
     * Предпочитаемый домен
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'preferredDomainId'?: string;
    /**
     * Предпочитаемый аккаунт
     * @type {string}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'preferredAccountId'?: string;
    /**
     * Дополнительные клаймы в токене
     * @type {{ [key: string]: any; }}
     * @memberof GetCollapsedProfileByAccountId200Response
     */
    'additionalTokenData'?: { [key: string]: any; };
}
/**
 * Группа
 * @export
 * @interface Group
 */
export interface Group extends Domain {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Group
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Group
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Group
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Group
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof Group
     */
    'name': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof Group
     */
    'shortname': string;
    /**
     * Полное имя
     * @type {string}
     * @memberof Group
     */
    'fullname': string;
    /**
     * DNS
     * @type {string}
     * @memberof Group
     */
    'dns': string;
    /**
     * 
     * @type {string}
     * @memberof Group
     */
    'email': string;
    /**
     * Телефон
     * @type {string}
     * @memberof Group
     */
    'phone': string;
    /**
     * 
     * @type {string}
     * @memberof Group
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof Group
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof Group
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Group
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof Group
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof Group
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof Group
     */
    'reportsEnabled'?: boolean;
    /**
     * 
     * @type {number}
     * @memberof Group
     */
    'maxnum'?: number;
}
/**
 * 
 * @export
 * @interface GroupAllOf
 */
export interface GroupAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof GroupAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof GroupAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof GroupAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof GroupAllOf
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof GroupAllOf
     */
    'name'?: string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof GroupAllOf
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof GroupAllOf
     */
    'fullname'?: string;
    /**
     * DNS
     * @type {string}
     * @memberof GroupAllOf
     */
    'dns'?: string;
    /**
     * 
     * @type {string}
     * @memberof GroupAllOf
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof GroupAllOf
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof GroupAllOf
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof GroupAllOf
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof GroupAllOf
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof GroupAllOf
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof GroupAllOf
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof GroupAllOf
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof GroupAllOf
     */
    'reportsEnabled'?: boolean;
    /**
     * 
     * @type {number}
     * @memberof GroupAllOf
     */
    'maxnum'?: number;
}
/**
 * 
 * @export
 * @interface HttpHeaders
 */
export interface HttpHeaders {
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    'authorization'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    'origin'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof HttpHeaders
     */
    'keepAlive'?: boolean;
    /**
     * 
     * @type {string}
     * @memberof HttpHeaders
     */
    'contentType'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof HttpHeaders
     */
    'empty'?: boolean;
}
/**
 * 
 * @export
 * @interface HttpResponse
 */
export interface HttpResponse {
    /**
     * 
     * @type {Cookies}
     * @memberof HttpResponse
     */
    'cookies'?: Cookies;
    /**
     * 
     * @type {string}
     * @memberof HttpResponse
     */
    'status'?: HttpResponseStatusEnum;
    /**
     * 
     * @type {HttpResponseCharacterEncoding}
     * @memberof HttpResponse
     */
    'characterEncoding': HttpResponseCharacterEncoding;
    /**
     * 
     * @type {any}
     * @memberof HttpResponse
     */
    'body': any;
    /**
     * 
     * @type {MutableConvertibleValuesObject}
     * @memberof HttpResponse
     */
    'attributes': MutableConvertibleValuesObject;
    /**
     * 
     * @type {number}
     * @memberof HttpResponse
     */
    'contentLength'?: number;
    /**
     * 
     * @type {HttpResponseLocale}
     * @memberof HttpResponse
     */
    'locale': HttpResponseLocale;
    /**
     * 
     * @type {HttpHeaders}
     * @memberof HttpResponse
     */
    'headers': HttpHeaders;
    /**
     * 
     * @type {MediaType}
     * @memberof HttpResponse
     */
    'contentType': MediaType;
}

export const HttpResponseStatusEnum = {
    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',
    TooEarly: 'TOO_EARLY',
    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'
} as const;

export type HttpResponseStatusEnum = typeof HttpResponseStatusEnum[keyof typeof HttpResponseStatusEnum];

/**
 * 
 * @export
 * @interface HttpResponseCharacterEncoding
 */
export interface HttpResponseCharacterEncoding {
    /**
     * 
     * @type {boolean}
     * @memberof HttpResponseCharacterEncoding
     */
    'registered'?: boolean;
}
/**
 * 
 * @export
 * @interface HttpResponseLocale
 */
export interface HttpResponseLocale {
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'language'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'script'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'variant'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'country'?: string;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseLocale
     */
    'unicodeLocaleAttributes'?: Set<string>;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseLocale
     */
    'unicodeLocaleKeys'?: Set<string>;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'displayLanguage'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'displayScript'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'displayCountry'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'displayVariant'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'displayName'?: string;
    /**
     * 
     * @type {Set<string>}
     * @memberof HttpResponseLocale
     */
    'extensionKeys'?: Set<string>;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'iso3Language'?: string;
    /**
     * 
     * @type {string}
     * @memberof HttpResponseLocale
     */
    'iso3Country'?: string;
}
/**
 * Список зафиксированных областей (системных областей) к которым может потребоваться запрос разрешения от клиента пользователю. Пример таких разрешений: Фамилия, Имя, Отчество, Почтовый адрес, Телефон.
 * @export
 * @interface IdentityScope
 */
export interface IdentityScope {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof IdentityScope
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof IdentityScope
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof IdentityScope
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof IdentityScope
     */
    'schema'?: string;
    /**
     * Название скоупа
     * @type {string}
     * @memberof IdentityScope
     */
    'name': string;
    /**
     * Название скоупа для показа пользователю
     * @type {string}
     * @memberof IdentityScope
     */
    'displayName'?: string;
    /**
     * Описание скоупа
     * @type {string}
     * @memberof IdentityScope
     */
    'description'?: string;
}
/**
 * Линки для связывания документа
 * @export
 * @interface LinkDTO
 */
export interface LinkDTO {
    /**
     * Схема документа
     * @type {string}
     * @memberof LinkDTO
     */
    'schema': string;
    /**
     * Имя связи
     * @type {string}
     * @memberof LinkDTO
     */
    'relation'?: string;
    /**
     * Списки id документов
     * @type {Set<string>}
     * @memberof LinkDTO
     */
    'documentIds': Set<string>;
}
/**
 * Удостоверение - описывает один за возможных вариантов аутентификации для персоны. В простейшем случае это локальная аутентификация и для нее устанавливаются значения имени пользователя и пароль.
 * @export
 * @interface LocalCredential
 */
export interface LocalCredential {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof LocalCredential
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof LocalCredential
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof LocalCredential
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof LocalCredential
     */
    'schema'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof LocalCredential
     */
    'blocked'?: boolean;
    /**
     * Имя пользователя
     * @type {string}
     * @memberof LocalCredential
     */
    'userName': string;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'value': LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'salt': LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'iterations': LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'keyLength': LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'algorithm': LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'passwordChangeRequired'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredential
     */
    'blockedUntil'?: LocalCredential;
    /**
     * Время (Unix time) последнего логина пользователя
     * @type {number}
     * @memberof LocalCredential
     */
    'lastLoginTime'?: number;
    /**
     * Время (Unix time) последнего сброса пароля пользователя
     * @type {number}
     * @memberof LocalCredential
     */
    'passwordResetLastTime'?: number;
}
/**
 * 
 * @export
 * @interface LocalCredentialAllOf
 */
export interface LocalCredentialAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof LocalCredentialAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof LocalCredentialAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof LocalCredentialAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof LocalCredentialAllOf
     */
    'schema'?: string;
    /**
     * Имя пользователя
     * @type {string}
     * @memberof LocalCredentialAllOf
     */
    'userName'?: string;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'value'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'salt'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'iterations'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'keyLength'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'algorithm'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'passwordChangeRequired'?: LocalCredential;
    /**
     * 
     * @type {LocalCredential}
     * @memberof LocalCredentialAllOf
     */
    'blockedUntil'?: LocalCredential;
    /**
     * Время (Unix time) последнего логина пользователя
     * @type {number}
     * @memberof LocalCredentialAllOf
     */
    'lastLoginTime'?: number;
    /**
     * Время (Unix time) последнего сброса пароля пользователя
     * @type {number}
     * @memberof LocalCredentialAllOf
     */
    'passwordResetLastTime'?: number;
    /**
     * 
     * @type {boolean}
     * @memberof LocalCredentialAllOf
     */
    'blocked'?: boolean;
}
/**
 * 
 * @export
 * @interface LocalCredentialTO
 */
export interface LocalCredentialTO {
    /**
     * Id
     * @type {string}
     * @memberof LocalCredentialTO
     */
    'id': string;
    /**
     * Время (Unix time) последнего изменения
     * @type {number}
     * @memberof LocalCredentialTO
     */
    'modified': number;
    /**
     * Имя пользователя
     * @type {string}
     * @memberof LocalCredentialTO
     */
    'userName': string;
    /**
     * Схема
     * @type {string}
     * @memberof LocalCredentialTO
     */
    'schema': string;
    /**
     * Заблокирован ли пользователь
     * @type {boolean}
     * @memberof LocalCredentialTO
     */
    'blocked'?: boolean;
}
/**
 * 
 * @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
     */
    'quality'?: string;
    /**
     * 
     * @type {number}
     * @memberof MediaType
     */
    'qualityAsNumber'?: number;
    /**
     * 
     * @type {boolean}
     * @memberof MediaType
     */
    'textBased'?: boolean;
    /**
     * 
     * @type {HttpResponseCharacterEncoding}
     * @memberof MediaType
     */
    'charset'?: HttpResponseCharacterEncoding;
    /**
     * 
     * @type {string}
     * @memberof MediaType
     */
    'version'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof MediaType
     */
    'empty'?: 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 const NodeTODirectionEnum = {
    Inbound: 'INBOUND',
    Outbound: 'OUTBOUND',
    Any: 'ANY'
} as const;

export type NodeTODirectionEnum = typeof NodeTODirectionEnum[keyof typeof NodeTODirectionEnum];

/**
 * Уведомление
 * @export
 * @interface Notification
 */
export interface Notification {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Notification
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Notification
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Notification
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Notification
     */
    'schema'?: string;
    /**
     * Наименование уведомления
     * @type {string}
     * @memberof Notification
     */
    'title': string;
    /**
     * Тема сообщения
     * @type {string}
     * @memberof Notification
     */
    'messageTopic': string;
    /**
     * Идентификатор события
     * @type {string}
     * @memberof Notification
     */
    'eventId': string;
    /**
     * Идентификатор шаблона
     * @type {string}
     * @memberof Notification
     */
    'templateId': string;
    /**
     * Дата создания
     * @type {number}
     * @memberof Notification
     */
    'created'?: number;
    /**
     * ID пользователя кем создано
     * @type {string}
     * @memberof Notification
     */
    'createdById'?: string;
    /**
     * Имя пользователя кем создано
     * @type {string}
     * @memberof Notification
     */
    'createdByName'?: string;
    /**
     * Роль пользователя кем создано
     * @type {string}
     * @memberof Notification
     */
    'createdByRole'?: string;
    /**
     * ID пользователя кем изменено
     * @type {string}
     * @memberof Notification
     */
    'modifiedById'?: string;
    /**
     * Имя пользователя кем изменено
     * @type {string}
     * @memberof Notification
     */
    'modifiedByName'?: string;
    /**
     * Роль пользователя кем изменено
     * @type {string}
     * @memberof Notification
     */
    'modifiedByRole'?: string;
}
/**
 * 
 * @export
 * @interface NotificationAllOf
 */
export interface NotificationAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof NotificationAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof NotificationAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof NotificationAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof NotificationAllOf
     */
    'schema'?: string;
    /**
     * Наименование уведомления
     * @type {string}
     * @memberof NotificationAllOf
     */
    'title'?: string;
    /**
     * Тема сообщения
     * @type {string}
     * @memberof NotificationAllOf
     */
    'messageTopic'?: string;
    /**
     * Идентификатор события
     * @type {string}
     * @memberof NotificationAllOf
     */
    'eventId'?: string;
    /**
     * Идентификатор шаблона
     * @type {string}
     * @memberof NotificationAllOf
     */
    'templateId'?: string;
    /**
     * Дата создания
     * @type {number}
     * @memberof NotificationAllOf
     */
    'created'?: number;
    /**
     * ID пользователя кем создано
     * @type {string}
     * @memberof NotificationAllOf
     */
    'createdById'?: string;
    /**
     * Имя пользователя кем создано
     * @type {string}
     * @memberof NotificationAllOf
     */
    'createdByName'?: string;
    /**
     * Роль пользователя кем создано
     * @type {string}
     * @memberof NotificationAllOf
     */
    'createdByRole'?: string;
    /**
     * ID пользователя кем изменено
     * @type {string}
     * @memberof NotificationAllOf
     */
    'modifiedById'?: string;
    /**
     * Имя пользователя кем изменено
     * @type {string}
     * @memberof NotificationAllOf
     */
    'modifiedByName'?: string;
    /**
     * Роль пользователя кем изменено
     * @type {string}
     * @memberof NotificationAllOf
     */
    'modifiedByRole'?: string;
}
/**
 * 
 * @export
 * @interface NotificationTO
 */
export interface NotificationTO {
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'id'?: string;
    /**
     * 
     * @type {number}
     * @memberof NotificationTO
     */
    'created'?: number;
    /**
     * 
     * @type {number}
     * @memberof NotificationTO
     */
    'modified'?: number;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'createdById'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'createdByName'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'createdByRole'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'modifiedById'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'modifiedByName'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'modifiedByRole'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'title'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'messageTopic'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof NotificationTO
     */
    'active'?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof NotificationTO
     */
    'inherited'?: boolean;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'templateId'?: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTO
     */
    'eventId'?: string;
    /**
     * 
     * @type {Array<any>}
     * @memberof NotificationTO
     */
    'roles'?: Array<any>;
}
/**
 * 
 * @export
 * @interface Opf
 */
export interface Opf {
    /**
     * 
     * @type {string}
     * @memberof Opf
     */
    'type'?: string;
    /**
     * 
     * @type {string}
     * @memberof Opf
     */
    'code'?: string;
    /**
     * 
     * @type {string}
     * @memberof Opf
     */
    'full'?: string;
    /**
     * 
     * @type {string}
     * @memberof Opf
     */
    'short'?: string;
}
/**
 * 
 * @export
 * @interface OptionalValuesString
 */
export interface OptionalValuesString {
    /**
     * 
     * @type {boolean}
     * @memberof OptionalValuesString
     */
    'empty'?: boolean;
}
/**
 * Организация
 * @export
 * @interface Organization
 */
export interface Organization extends Domain {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Organization
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Organization
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Organization
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Organization
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof Organization
     */
    'name': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof Organization
     */
    'shortname': string;
    /**
     * Полное имя
     * @type {string}
     * @memberof Organization
     */
    'fullname': string;
    /**
     * DNS
     * @type {string}
     * @memberof Organization
     */
    'dns': string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof Organization
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof Organization
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof Organization
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof Organization
     */
    'reportsEnabled'?: boolean;
    /**
     * ИНН
     * @type {string}
     * @memberof Organization
     */
    'inn': string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'leg'?: string;
    /**
     * ОГРН
     * @type {string}
     * @memberof Organization
     */
    'ogrn': string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'region'?: string;
    /**
     * ЕПГУ ID (departmentId)
     * @type {string}
     * @memberof Organization
     */
    'epguId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'type'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Organization
     */
    'esiaEmployeeAuthorization'?: boolean;
    /**
     * Название корзины S3, использующейся по умолчанию для организации
     * @type {string}
     * @memberof Organization
     */
    'defaultS3Bucket'?: string;
    /**
     * 
     * @type {Opf}
     * @memberof Organization
     */
    'opf'?: Opf;
    /**
     * КПП
     * @type {string}
     * @memberof Organization
     */
    'kpp'?: string;
    /**
     * Расчетный счет организации
     * @type {string}
     * @memberof Organization
     */
    'checkingAccount'?: string;
    /**
     * БИК банка получателя платежа
     * @type {string}
     * @memberof Organization
     */
    'bik'?: string;
    /**
     * Наименование банка получателя платежа
     * @type {string}
     * @memberof Organization
     */
    'bankName'?: string;
    /**
     * Корреспондентский счет банка
     * @type {string}
     * @memberof Organization
     */
    'bankCorrespondentAccount'?: string;
    /**
     * ОКТМО (8 или 11 цифр)
     * @type {string}
     * @memberof Organization
     */
    'oktmo'?: string;
    /**
     * OKATO (общероссийский классификатор административно-территориального деления объектов)
     * @type {string}
     * @memberof Organization
     */
    'okato'?: string;
    /**
     * Дата государственной регистрации
     * @type {string}
     * @memberof Organization
     */
    'govRegistrationDate'?: string;
    /**
     * Тип организации в соответствии со справочником - Органы государственной власти субъектов Российской Федерации
     * @type {string}
     * @memberof Organization
     */
    'govOrganizationType'?: string;
    /**
     * Алиас контейнера
     * @type {string}
     * @memberof Organization
     */
    'aliasKey'?: string;
    /**
     * Пароль к контейнеру
     * @type {string}
     * @memberof Organization
     */
    'passKey'?: string;
    /**
     * Сертификат организации в base64
     * @type {string}
     * @memberof Organization
     */
    'certificate'?: string;
    /**
     * Номер казначейского счета
     * @type {string}
     * @memberof Organization
     */
    'accountNumberTOFK'?: string;
    /**
     * БИК ТОФК
     * @type {string}
     * @memberof Organization
     */
    'bikTOFK'?: string;
    /**
     * Номер единого казначейского счета
     * @type {string}
     * @memberof Organization
     */
    'correspondentBankAccountTOFK'?: string;
    /**
     * Наименование банка
     * @type {string}
     * @memberof Organization
     */
    'nameTOFK'?: string;
    /**
     * НСИ идентификатор организации
     * @type {string}
     * @memberof Organization
     */
    'nsiOrganizationId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'docHandle'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'divisionType'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'tnsDepartmentId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'subpoenaSeriesCode'?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    'maintenanceCode'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof Organization
     */
    'enabled'?: boolean;
}
/**
 * 
 * @export
 * @interface OrganizationAllOf
 */
export interface OrganizationAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof OrganizationAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof OrganizationAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'name'?: string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'fullname'?: string;
    /**
     * DNS
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'dns'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof OrganizationAllOf
     */
    'reportsEnabled'?: boolean;
    /**
     * ИНН
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'inn'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'leg'?: string;
    /**
     * ОГРН
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'ogrn'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'region'?: string;
    /**
     * ЕПГУ ID (departmentId)
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'epguId'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'type'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof OrganizationAllOf
     */
    'esiaEmployeeAuthorization'?: boolean;
    /**
     * Название корзины S3, использующейся по умолчанию для организации
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'defaultS3Bucket'?: string;
    /**
     * 
     * @type {Opf}
     * @memberof OrganizationAllOf
     */
    'opf'?: Opf;
    /**
     * КПП
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'kpp'?: string;
    /**
     * Расчетный счет организации
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'checkingAccount'?: string;
    /**
     * БИК банка получателя платежа
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'bik'?: string;
    /**
     * Наименование банка получателя платежа
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'bankName'?: string;
    /**
     * Корреспондентский счет банка
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'bankCorrespondentAccount'?: string;
    /**
     * ОКТМО (8 или 11 цифр)
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'oktmo'?: string;
    /**
     * OKATO (общероссийский классификатор административно-территориального деления объектов)
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'okato'?: string;
    /**
     * Дата государственной регистрации
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'govRegistrationDate'?: string;
    /**
     * Тип организации в соответствии со справочником - Органы государственной власти субъектов Российской Федерации
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'govOrganizationType'?: string;
    /**
     * Алиас контейнера
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'aliasKey'?: string;
    /**
     * Пароль к контейнеру
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'passKey'?: string;
    /**
     * Сертификат организации в base64
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'certificate'?: string;
    /**
     * Номер казначейского счета
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'accountNumberTOFK'?: string;
    /**
     * БИК ТОФК
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'bikTOFK'?: string;
    /**
     * Номер единого казначейского счета
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'correspondentBankAccountTOFK'?: string;
    /**
     * Наименование банка
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'nameTOFK'?: string;
    /**
     * НСИ идентификатор организации
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'nsiOrganizationId'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'docHandle'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'divisionType'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'tnsDepartmentId'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'subpoenaSeriesCode'?: string;
    /**
     * 
     * @type {string}
     * @memberof OrganizationAllOf
     */
    'maintenanceCode'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof OrganizationAllOf
     */
    'enabled'?: boolean;
}
/**
 * Организация для страниц статистики
 * @export
 * @interface OrganizationForStats
 */
export interface OrganizationForStats {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof OrganizationForStats
     */
    'id': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof OrganizationForStats
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof OrganizationForStats
     */
    'fullname'?: string;
}
/**
 * Страница
 * @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 PageOfAccount
 */
export interface PageOfAccount {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAccount
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAccount
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfAccount
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfAccount
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfAccount
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfAccount
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Account>}
     * @memberof PageOfAccount
     */
    'records'?: Array<Account>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfAccount
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfAccount
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfAccount
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfAccountPersonSingleTO
 */
export interface PageOfAccountPersonSingleTO {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAccountPersonSingleTO
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfAccountPersonSingleTO
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfAccountPersonSingleTO
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfAccountPersonSingleTO
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfAccountPersonSingleTO
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfAccountPersonSingleTO
     */
    'perPage': number;
    /**
     * 
     * @type {Array<AccountPersonSingleTO>}
     * @memberof PageOfAccountPersonSingleTO
     */
    'records'?: Array<AccountPersonSingleTO>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfAccountPersonSingleTO
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfAccountPersonSingleTO
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfAccountPersonSingleTO
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfClient
 */
export interface PageOfClient {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfClient
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfClient
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfClient
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfClient
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfClient
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfClient
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Client>}
     * @memberof PageOfClient
     */
    'records'?: Array<Client>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfClient
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfClient
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfClient
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfClientScope
 */
export interface PageOfClientScope {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfClientScope
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfClientScope
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfClientScope
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfClientScope
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfClientScope
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfClientScope
     */
    'perPage': number;
    /**
     * 
     * @type {Array<ClientScope>}
     * @memberof PageOfClientScope
     */
    'records'?: Array<ClientScope>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfClientScope
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfClientScope
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfClientScope
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfConsent
 */
export interface PageOfConsent {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfConsent
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfConsent
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfConsent
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfConsent
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfConsent
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfConsent
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Consent>}
     * @memberof PageOfConsent
     */
    'records'?: Array<Consent>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfConsent
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfConsent
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfConsent
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfDepartment
 */
export interface PageOfDepartment {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfDepartment
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfDepartment
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfDepartment
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfDepartment
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfDepartment
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfDepartment
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Department>}
     * @memberof PageOfDepartment
     */
    'records'?: Array<Department>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfDepartment
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfDepartment
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfDepartment
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfDomain
 */
export interface PageOfDomain {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfDomain
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfDomain
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfDomain
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfDomain
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfDomain
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfDomain
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Domain>}
     * @memberof PageOfDomain
     */
    'records'?: Array<Domain>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfDomain
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfDomain
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfDomain
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfGroup
 */
export interface PageOfGroup {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfGroup
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfGroup
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfGroup
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfGroup
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfGroup
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfGroup
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Group>}
     * @memberof PageOfGroup
     */
    'records'?: Array<Group>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfGroup
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfGroup
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfGroup
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfIdentityScope
 */
export interface PageOfIdentityScope {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfIdentityScope
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfIdentityScope
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfIdentityScope
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfIdentityScope
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfIdentityScope
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfIdentityScope
     */
    'perPage': number;
    /**
     * 
     * @type {Array<IdentityScope>}
     * @memberof PageOfIdentityScope
     */
    'records'?: Array<IdentityScope>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfIdentityScope
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfIdentityScope
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfIdentityScope
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfNotification
 */
export interface PageOfNotification {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfNotification
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfNotification
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfNotification
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfNotification
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfNotification
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfNotification
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Notification>}
     * @memberof PageOfNotification
     */
    'records'?: Array<Notification>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfNotification
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfNotification
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfNotification
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfOrganization
 */
export interface PageOfOrganization {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfOrganization
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfOrganization
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfOrganization
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfOrganization
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfOrganization
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfOrganization
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Organization>}
     * @memberof PageOfOrganization
     */
    'records'?: Array<Organization>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfOrganization
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfOrganization
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfOrganization
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfPermission
 */
export interface PageOfPermission {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPermission
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPermission
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfPermission
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfPermission
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfPermission
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfPermission
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Permission>}
     * @memberof PageOfPermission
     */
    'records'?: Array<Permission>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfPermission
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfPermission
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfPermission
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfPermissionType
 */
export interface PageOfPermissionType {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPermissionType
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPermissionType
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfPermissionType
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfPermissionType
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfPermissionType
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfPermissionType
     */
    'perPage': number;
    /**
     * 
     * @type {Array<PermissionType>}
     * @memberof PageOfPermissionType
     */
    'records'?: Array<PermissionType>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfPermissionType
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfPermissionType
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfPermissionType
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfPerson
 */
export interface PageOfPerson {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPerson
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfPerson
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfPerson
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfPerson
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfPerson
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfPerson
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Person>}
     * @memberof PageOfPerson
     */
    'records'?: Array<Person>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfPerson
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfPerson
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfPerson
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfRegion
 */
export interface PageOfRegion {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRegion
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRegion
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfRegion
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfRegion
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfRegion
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfRegion
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Region>}
     * @memberof PageOfRegion
     */
    'records'?: Array<Region>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfRegion
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfRegion
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfRegion
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfResource
 */
export interface PageOfResource {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResource
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResource
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfResource
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfResource
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfResource
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfResource
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Resource>}
     * @memberof PageOfResource
     */
    'records'?: Array<Resource>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfResource
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfResource
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfResource
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfResourcePolicy
 */
export interface PageOfResourcePolicy {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResourcePolicy
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResourcePolicy
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfResourcePolicy
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfResourcePolicy
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfResourcePolicy
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfResourcePolicy
     */
    'perPage': number;
    /**
     * 
     * @type {Array<ResourcePolicy>}
     * @memberof PageOfResourcePolicy
     */
    'records'?: Array<ResourcePolicy>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfResourcePolicy
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfResourcePolicy
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfResourcePolicy
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfResourceScope
 */
export interface PageOfResourceScope {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResourceScope
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfResourceScope
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfResourceScope
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfResourceScope
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfResourceScope
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfResourceScope
     */
    'perPage': number;
    /**
     * 
     * @type {Array<ResourceScope>}
     * @memberof PageOfResourceScope
     */
    'records'?: Array<ResourceScope>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfResourceScope
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfResourceScope
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfResourceScope
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfRestDay
 */
export interface PageOfRestDay {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRestDay
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRestDay
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfRestDay
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfRestDay
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfRestDay
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfRestDay
     */
    'perPage': number;
    /**
     * 
     * @type {Array<RestDay>}
     * @memberof PageOfRestDay
     */
    'records'?: Array<RestDay>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfRestDay
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfRestDay
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfRestDay
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfRole
 */
export interface PageOfRole {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRole
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfRole
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfRole
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfRole
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfRole
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfRole
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Role>}
     * @memberof PageOfRole
     */
    'records'?: Array<Role>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfRole
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfRole
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfRole
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfSolution
 */
export interface PageOfSolution {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfSolution
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfSolution
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfSolution
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfSolution
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfSolution
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfSolution
     */
    'perPage': number;
    /**
     * 
     * @type {Array<Solution>}
     * @memberof PageOfSolution
     */
    'records'?: Array<Solution>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfSolution
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfSolution
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfSolution
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PageOfWorkCalendar
 */
export interface PageOfWorkCalendar {
    /**
     * Обычный RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfWorkCalendar
     */
    'filter'?: string;
    /**
     * Полнотекстовый RSQL фильтр с которым был выполнен запрос
     * @type {string}
     * @memberof PageOfWorkCalendar
     */
    'fulltext'?: string;
    /**
     * Сортировка с которой был выполнен запрос
     * @type {string}
     * @memberof PageOfWorkCalendar
     */
    'sort'?: string;
    /**
     * Общее количество документов для запроса (может отсутствовать, использовать метод Count в таком случае)
     * @type {number}
     * @memberof PageOfWorkCalendar
     */
    'totalRows'?: number;
    /**
     * Запрошенный номер страницы (1 по умолчанию)
     * @type {number}
     * @memberof PageOfWorkCalendar
     */
    'page': number;
    /**
     * Записей на страницу (по умолчанию 10)
     * @type {number}
     * @memberof PageOfWorkCalendar
     */
    'perPage': number;
    /**
     * 
     * @type {Array<WorkCalendar>}
     * @memberof PageOfWorkCalendar
     */
    'records'?: Array<WorkCalendar>;
    /**
     * Схема документа
     * @type {string}
     * @memberof PageOfWorkCalendar
     */
    'schema': string;
    /**
     * Параметры expand операции которые были для операции
     * @type {Array<string>}
     * @memberof PageOfWorkCalendar
     */
    'expand'?: Array<string>;
    /**
     * Найденное количество записей в наборе
     * @type {number}
     * @memberof PageOfWorkCalendar
     */
    'foundRows'?: number;
}
/**
 * 
 * @export
 * @interface PagingRequestAccountSearchDTO
 */
export interface PagingRequestAccountSearchDTO {
    /**
     * 
     * @type {AccountAdminSearchFilterDTO}
     * @memberof PagingRequestAccountSearchDTO
     */
    'searchFilter'?: AccountAdminSearchFilterDTO;
    /**
     * Номер страницы
     * @type {number}
     * @memberof PagingRequestAccountSearchDTO
     */
    'page'?: number;
    /**
     * Количество элементов на странице
     * @type {number}
     * @memberof PagingRequestAccountSearchDTO
     */
    'perPage'?: number;
    /**
     * Массив имен полей для сортировки
     * @type {Array<SortedField>}
     * @memberof PagingRequestAccountSearchDTO
     */
    'sort'?: Array<SortedField>;
}
/**
 * 
 * @export
 * @interface PagingRequestDTO
 */
export interface PagingRequestDTO {
    /**
     * Номер страницы
     * @type {number}
     * @memberof PagingRequestDTO
     */
    'page'?: number;
    /**
     * Количество элементов на странице
     * @type {number}
     * @memberof PagingRequestDTO
     */
    'perPage'?: number;
    /**
     * Массив имен полей для сортировки
     * @type {Array<SortedField>}
     * @memberof PagingRequestDTO
     */
    'sort'?: Array<SortedField>;
    /**
     * Параметр фильтрации может быть специфичен для конктретного сценария поиска.  Должен быть перегружен в конкретной имплементации
     * @type {any}
     * @memberof PagingRequestDTO
     */
    'searchFilter'?: any;
}
/**
 * 
 * @export
 * @interface PagingRequestRsqlSearchDTO
 */
export interface PagingRequestRsqlSearchDTO {
    /**
     * 
     * @type {SearchRsqlFilterDTO}
     * @memberof PagingRequestRsqlSearchDTO
     */
    'searchFilter'?: SearchRsqlFilterDTO;
    /**
     * Номер страницы
     * @type {number}
     * @memberof PagingRequestRsqlSearchDTO
     */
    'page'?: number;
    /**
     * Количество элементов на странице
     * @type {number}
     * @memberof PagingRequestRsqlSearchDTO
     */
    'perPage'?: number;
    /**
     * Массив имен полей для сортировки
     * @type {Array<SortedField>}
     * @memberof PagingRequestRsqlSearchDTO
     */
    'sort'?: Array<SortedField>;
}
/**
 * 
 * @export
 * @interface PagingResultDTO
 */
export interface PagingResultDTO {
    /**
     * 
     * @type {string}
     * @memberof PagingResultDTO
     */
    'elementType'?: string;
    /**
     * Page number
     * @type {number}
     * @memberof PagingResultDTO
     */
    'page'?: number;
    /**
     * Number of elements per page
     * @type {number}
     * @memberof PagingResultDTO
     */
    'perPage'?: number;
    /**
     * 
     * @type {number}
     * @memberof PagingResultDTO
     */
    'totalRows'?: number;
}
/**
 * возможность выполнение запрошенной операции над ресурсом
 * @export
 * @interface Permission
 */
export interface Permission {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Permission
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Permission
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Permission
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Permission
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Permission
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof Permission
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof Permission
     */
    'description'?: string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof Permission
     */
    'url': string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof Permission
     */
    'imported'?: number;
}
/**
 * 
 * @export
 * @interface PermissionAllOf
 */
export interface PermissionAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PermissionAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PermissionAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PermissionAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PermissionAllOf
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof PermissionAllOf
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof PermissionAllOf
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof PermissionAllOf
     */
    'description'?: string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof PermissionAllOf
     */
    'url'?: string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof PermissionAllOf
     */
    'imported'?: number;
}
/**
 * 
 * @export
 * @interface PermissionTO
 */
export interface PermissionTO {
    /**
     * 
     * @type {string}
     * @memberof PermissionTO
     */
    'id'?: string;
    /**
     * 
     * @type {string}
     * @memberof PermissionTO
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof PermissionTO
     */
    'description'?: string;
    /**
     * 
     * @type {string}
     * @memberof PermissionTO
     */
    'resourceName'?: string;
}
/**
 * Вид разрешения
 * @export
 * @interface PermissionType
 */
export interface PermissionType {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PermissionType
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PermissionType
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PermissionType
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PermissionType
     */
    'schema'?: string;
}
/**
 * 
 * @export
 * @interface PermissionTypeAllOf
 */
export interface PermissionTypeAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PermissionTypeAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PermissionTypeAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PermissionTypeAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PermissionTypeAllOf
     */
    'schema'?: string;
}
/**
 * Служащие организации
 * @export
 * @interface Person
 */
export interface Person {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Person
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Person
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Person
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Person
     */
    'schema'?: string;
    /**
     * День рождения
     * @type {string}
     * @memberof Person
     */
    'birthdate'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Person
     */
    'firstname': string;
    /**
     * Отчество
     * @type {string}
     * @memberof Person
     */
    'middlename'?: string;
    /**
     * Фамилия
     * @type {string}
     * @memberof Person
     */
    'surname': string;
    /**
     * Пол
     * @type {string}
     * @memberof Person
     */
    'sex'?: string;
    /**
     * Электронный адрес
     * @type {string}
     * @memberof Person
     */
    'email'?: string;
    /**
     * Фотография путь в ceph
     * @type {string}
     * @memberof Person
     */
    'photo'?: string;
    /**
     * Номер телефона
     * @type {string}
     * @memberof Person
     */
    'phone'?: string;
    /**
     * СНИЛС
     * @type {string}
     * @memberof Person
     */
    'snils': string;
    /**
     * Флаг указывает включена ли двухфакторная аутентификация
     * @type {boolean}
     * @memberof Person
     */
    'secondFactorEnabled'?: boolean;
    /**
     * разрешенные IP адреса для данного пользователя
     * @type {Array<string>}
     * @memberof Person
     */
    'ipAddresses'?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof Person
     */
    'fio'?: string;
}
/**
 * 
 * @export
 * @interface PersonAllOf
 */
export interface PersonAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PersonAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonAllOf
     */
    'schema'?: string;
    /**
     * День рождения
     * @type {string}
     * @memberof PersonAllOf
     */
    'birthdate'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof PersonAllOf
     */
    'firstname'?: string;
    /**
     * Отчество
     * @type {string}
     * @memberof PersonAllOf
     */
    'middlename'?: string;
    /**
     * Фамилия
     * @type {string}
     * @memberof PersonAllOf
     */
    'surname'?: string;
    /**
     * Пол
     * @type {string}
     * @memberof PersonAllOf
     */
    'sex'?: string;
    /**
     * Электронный адрес
     * @type {string}
     * @memberof PersonAllOf
     */
    'email'?: string;
    /**
     * Фотография путь в ceph
     * @type {string}
     * @memberof PersonAllOf
     */
    'photo'?: string;
    /**
     * Номер телефона
     * @type {string}
     * @memberof PersonAllOf
     */
    'phone'?: string;
    /**
     * СНИЛС
     * @type {string}
     * @memberof PersonAllOf
     */
    'snils'?: string;
    /**
     * Флаг указывает включена ли двухфакторная аутентификация
     * @type {boolean}
     * @memberof PersonAllOf
     */
    'secondFactorEnabled'?: boolean;
    /**
     * разрешенные IP адреса для данного пользователя
     * @type {Array<string>}
     * @memberof PersonAllOf
     */
    'ipAddresses'?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof PersonAllOf
     */
    'fio'?: string;
}
/**
 * 
 * @export
 * @interface PersonProfile
 */
export interface PersonProfile {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonProfile
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PersonProfile
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonProfile
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonProfile
     */
    'schema'?: string;
    /**
     * Язык
     * @type {string}
     * @memberof PersonProfile
     */
    'lang'?: string;
    /**
     * Часовой пояс
     * @type {string}
     * @memberof PersonProfile
     */
    'timezone'?: string;
    /**
     * Цветовая схема
     * @type {string}
     * @memberof PersonProfile
     */
    'colorScheme'?: string;
    /**
     * Предпочитаемый домен
     * @type {string}
     * @memberof PersonProfile
     */
    'preferredDomainId'?: string;
    /**
     * Предпочитаемый аккаунт
     * @type {string}
     * @memberof PersonProfile
     */
    'preferredAccountId'?: string;
    /**
     * Дополнительные клаймы в токене
     * @type {{ [key: string]: any; }}
     * @memberof PersonProfile
     */
    'additionalTokenData'?: { [key: string]: any; };
}
/**
 * 
 * @export
 * @interface PersonProfileAllOf
 */
export interface PersonProfileAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof PersonProfileAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof PersonProfileAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'schema'?: string;
    /**
     * Язык
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'lang'?: string;
    /**
     * Часовой пояс
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'timezone'?: string;
    /**
     * Цветовая схема
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'colorScheme'?: string;
    /**
     * Предпочитаемый домен
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'preferredDomainId'?: string;
    /**
     * Предпочитаемый аккаунт
     * @type {string}
     * @memberof PersonProfileAllOf
     */
    'preferredAccountId'?: string;
    /**
     * Дополнительные клаймы в токене
     * @type {{ [key: string]: any; }}
     * @memberof PersonProfileAllOf
     */
    'additionalTokenData'?: { [key: string]: any; };
}
/**
 * Сотрудник
 * @export
 * @interface PersonSingleTO
 */
export interface PersonSingleTO {
    /**
     * 
     * @type {string}
     * @memberof PersonSingleTO
     */
    'id'?: string;
    /**
     * День рождения
     * @type {string}
     * @memberof PersonSingleTO
     */
    'birthdate'?: string;
    /**
     * 
     * @type {string}
     * @memberof PersonSingleTO
     */
    'fio'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof PersonSingleTO
     */
    'firstname': string;
    /**
     * Отчество
     * @type {string}
     * @memberof PersonSingleTO
     */
    'middlename'?: string;
    /**
     * Фамилия
     * @type {string}
     * @memberof PersonSingleTO
     */
    'surname': string;
    /**
     * Фотография путь в ceph
     * @type {string}
     * @memberof PersonSingleTO
     */
    'photo'?: string;
    /**
     * СНИЛС
     * @type {string}
     * @memberof PersonSingleTO
     */
    'snils': string;
    /**
     * Электронный адрес
     * @type {string}
     * @memberof PersonSingleTO
     */
    'email': string;
    /**
     * Служебный телефон
     * @type {string}
     * @memberof PersonSingleTO
     */
    'phone'?: string;
    /**
     * Пол
     * @type {string}
     * @memberof PersonSingleTO
     */
    'sex'?: string;
}
/**
 * 
 * @export
 * @interface Profile
 */
export interface Profile {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Profile
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Profile
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Profile
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Profile
     */
    'schema'?: string;
}
/**
 * 
 * @export
 * @interface ReconcileMetaResponseDTO
 */
export interface ReconcileMetaResponseDTO {
    /**
     * Количество записей документов которое должно быть обработано на момент формирования задания
     * @type {number}
     * @memberof ReconcileMetaResponseDTO
     */
    'documentsCount'?: number;
    /**
     * Сообщение
     * @type {string}
     * @memberof ReconcileMetaResponseDTO
     */
    'message'?: string;
}
/**
 * Субъект РФ
 * @export
 * @interface Region
 */
export interface Region extends Domain {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Region
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Region
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Region
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Region
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof Region
     */
    'name': string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof Region
     */
    'shortname': string;
    /**
     * Полное имя
     * @type {string}
     * @memberof Region
     */
    'fullname': string;
    /**
     * DNS
     * @type {string}
     * @memberof Region
     */
    'dns': string;
    /**
     * 
     * @type {string}
     * @memberof Region
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof Region
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof Region
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof Region
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof Region
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof Region
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof Region
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof Region
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof Region
     */
    'reportsEnabled'?: boolean;
    /**
     * Код
     * @type {string}
     * @memberof Region
     */
    'code': string;
    /**
     * ОКТМО (8 или 11 цифр)
     * @type {string}
     * @memberof Region
     */
    'oktmo'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof Region
     */
    'enabled'?: boolean;
}
/**
 * 
 * @export
 * @interface RegionAllOf
 */
export interface RegionAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RegionAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof RegionAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RegionAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RegionAllOf
     */
    'schema'?: string;
    /**
     * Имя домена
     * @type {string}
     * @memberof RegionAllOf
     */
    'name'?: string;
    /**
     * Краткое имя
     * @type {string}
     * @memberof RegionAllOf
     */
    'shortname'?: string;
    /**
     * Полное имя
     * @type {string}
     * @memberof RegionAllOf
     */
    'fullname'?: string;
    /**
     * DNS
     * @type {string}
     * @memberof RegionAllOf
     */
    'dns'?: string;
    /**
     * 
     * @type {string}
     * @memberof RegionAllOf
     */
    'email'?: string;
    /**
     * Телефон
     * @type {string}
     * @memberof RegionAllOf
     */
    'phone'?: string;
    /**
     * 
     * @type {string}
     * @memberof RegionAllOf
     */
    'address'?: string;
    /**
     * 
     * @type {string}
     * @memberof RegionAllOf
     */
    'postalAddress'?: string;
    /**
     * 
     * @type {string}
     * @memberof RegionAllOf
     */
    'addressId'?: string;
    /**
     * 
     * @type {string}
     * @memberof RegionAllOf
     */
    'postalAddressId'?: string;
    /**
     * Код военного комиссариата
     * @type {string}
     * @memberof RegionAllOf
     */
    'militaryCode'?: string;
    /**
     * Таймзона
     * @type {string}
     * @memberof RegionAllOf
     */
    'timezone'?: string;
    /**
     * Признак доступности для отчетов
     * @type {boolean}
     * @memberof RegionAllOf
     */
    'reportsEnabled'?: boolean;
    /**
     * Код
     * @type {string}
     * @memberof RegionAllOf
     */
    'code'?: string;
    /**
     * ОКТМО (8 или 11 цифр)
     * @type {string}
     * @memberof RegionAllOf
     */
    'oktmo'?: string;
    /**
     * Активен (да/нет)
     * @type {boolean}
     * @memberof RegionAllOf
     */
    'enabled'?: boolean;
}
/**
 * определение файла или эндпоинта сервиса
 * @export
 * @interface Resource
 */
export interface Resource {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Resource
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Resource
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Resource
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Resource
     */
    'schema'?: string;
    /**
     * Названия сервиса, которому принадлежит ресурс
     * @type {string}
     * @memberof Resource
     */
    'serviceName'?: string;
    /**
     * Часть URI указывающая на ресурс после server
     * @type {string}
     * @memberof Resource
     */
    'path': string;
    /**
     * Метод доступа (HTTP METHOD - GET/POST и тд)
     * @type {string}
     * @memberof Resource
     */
    'type': string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof Resource
     */
    'url': string;
    /**
     * 
     * @type {string}
     * @memberof Resource
     */
    'description'?: string;
    /**
     * Источник ресурса (ФАЙЛ / REST / gRPS / GRAPHQL)
     * @type {string}
     * @memberof Resource
     */
    'source'?: string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof Resource
     */
    'imported'?: number;
}
/**
 * 
 * @export
 * @interface ResourceAllOf
 */
export interface ResourceAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ResourceAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ResourceAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ResourceAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ResourceAllOf
     */
    'schema'?: string;
    /**
     * Названия сервиса, которому принадлежит ресурс
     * @type {string}
     * @memberof ResourceAllOf
     */
    'serviceName'?: string;
    /**
     * Часть URI указывающая на ресурс после server
     * @type {string}
     * @memberof ResourceAllOf
     */
    'path'?: string;
    /**
     * Метод доступа (HTTP METHOD - GET/POST и тд)
     * @type {string}
     * @memberof ResourceAllOf
     */
    'type'?: string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof ResourceAllOf
     */
    'url'?: string;
    /**
     * 
     * @type {string}
     * @memberof ResourceAllOf
     */
    'description'?: string;
    /**
     * Источник ресурса (ФАЙЛ / REST / gRPS / GRAPHQL)
     * @type {string}
     * @memberof ResourceAllOf
     */
    'source'?: string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof ResourceAllOf
     */
    'imported'?: number;
}
/**
 * Политики ресурсов (уровни аудита, ограничения доступа по IP, etc.)
 * @export
 * @interface ResourcePolicy
 */
export interface ResourcePolicy {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ResourcePolicy
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ResourcePolicy
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ResourcePolicy
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ResourcePolicy
     */
    'schema'?: string;
}
/**
 * Определяет область видимости общего ресурса
 * @export
 * @interface ResourceScope
 */
export interface ResourceScope {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ResourceScope
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ResourceScope
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ResourceScope
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ResourceScope
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof ResourceScope
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof ResourceScope
     */
    'description'?: string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof ResourceScope
     */
    'url': string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof ResourceScope
     */
    'imported'?: number;
}
/**
 * 
 * @export
 * @interface ResourceScopeAllOf
 */
export interface ResourceScopeAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ResourceScopeAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ResourceScopeAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ResourceScopeAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ResourceScopeAllOf
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof ResourceScopeAllOf
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof ResourceScopeAllOf
     */
    'description'?: string;
    /**
     * Часть URI определяющая базовый  URL ресурса (включает протокол, домен и часть пути) указывающего на размещение ресурса
     * @type {string}
     * @memberof ResourceScopeAllOf
     */
    'url'?: string;
    /**
     * Unix Time время импорта ресурса
     * @type {number}
     * @memberof ResourceScopeAllOf
     */
    'imported'?: number;
}
/**
 * 
 * @export
 * @interface Response
 */
export interface Response {
    /**
     * true в случае успешной операции, false в противном
     * @type {boolean}
     * @memberof Response
     */
    'success': boolean;
    /**
     * Сообщение об ошибке или об успехе
     * @type {string}
     * @memberof Response
     */
    'message': string;
}
/**
 * Нерабочий день производственного календаря
 * @export
 * @interface RestDay
 */
export interface RestDay {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RestDay
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof RestDay
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RestDay
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RestDay
     */
    'schema'?: string;
    /**
     * Наименование
     * @type {string}
     * @memberof RestDay
     */
    'name'?: string;
    /**
     * Описание
     * @type {string}
     * @memberof RestDay
     */
    'description'?: string;
    /**
     * Номер дня недели
     * @type {number}
     * @memberof RestDay
     */
    'numDayOfWeek'?: number;
    /**
     * Номер дня месяца
     * @type {number}
     * @memberof RestDay
     */
    'numDayOfMonth'?: number;
    /**
     * Конкретная дата unixtime
     * @type {number}
     * @memberof RestDay
     */
    'longDate'?: number;
    /**
     * Инверсия - рабочий день
     * @type {boolean}
     * @memberof RestDay
     */
    'workDay'?: boolean;
}
/**
 * 
 * @export
 * @interface RestDayAllOf
 */
export interface RestDayAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RestDayAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof RestDayAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RestDayAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RestDayAllOf
     */
    'schema'?: string;
    /**
     * Наименование
     * @type {string}
     * @memberof RestDayAllOf
     */
    'name'?: string;
    /**
     * Описание
     * @type {string}
     * @memberof RestDayAllOf
     */
    'description'?: string;
    /**
     * Номер дня недели
     * @type {number}
     * @memberof RestDayAllOf
     */
    'numDayOfWeek'?: number;
    /**
     * Номер дня месяца
     * @type {number}
     * @memberof RestDayAllOf
     */
    'numDayOfMonth'?: number;
    /**
     * Конкретная дата unixtime
     * @type {number}
     * @memberof RestDayAllOf
     */
    'longDate'?: number;
    /**
     * Инверсия - рабочий день
     * @type {boolean}
     * @memberof RestDayAllOf
     */
    'workDay'?: boolean;
}
/**
 * Роль является совокупностью разрешений на действия с ресурсами находящимися в Solution
 * @export
 * @interface Role
 */
export interface Role {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Role
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Role
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Role
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Role
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Role
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof Role
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof Role
     */
    'displayName'?: string;
    /**
     * 
     * @type {number}
     * @memberof Role
     */
    'sessionsLimit'?: number;
/**
     * Признак ЕРВУ
     * @type {boolean}
     * @memberof Role
     */
    ervuRole ?: boolean;
}
/**
 * 
 * @export
 * @interface RoleAllOf
 */
export interface RoleAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof RoleAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof RoleAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof RoleAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof RoleAllOf
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof RoleAllOf
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof RoleAllOf
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof RoleAllOf
     */
    'displayName'?: string;
    /**
     * 
     * @type {number}
     * @memberof RoleAllOf
     */
    'sessionsLimit'?: number;
}
/**
 * 
 * @export
 * @interface RoleTO
 */
export interface RoleTO {
    /**
     * 
     * @type {string}
     * @memberof RoleTO
     */
    'id'?: string;
    /**
     * 
     * @type {string}
     * @memberof RoleTO
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof RoleTO
     */
    'displayName'?: string;
    /**
     * 
     * @type {string}
     * @memberof RoleTO
     */
    'parentId'?: string;
    /**
     * 
     * @type {boolean}
     * @memberof RoleTO
     */
    'ervuRole'?: boolean;
    /**
     * 
     * @type {number}
     * @memberof RoleTO
     */
    'sessionsLimit'?: number;
    /**
     * 
     * @type {Array<PermissionTO>}
     * @memberof RoleTO
     */
    'permissions'?: Array<PermissionTO>;
}
/**
 * 
 * @export
 * @interface Scope
 */
export interface Scope {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Scope
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Scope
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Scope
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Scope
     */
    'schema'?: string;
    /**
     * Название скоупа
     * @type {string}
     * @memberof Scope
     */
    'name': string;
    /**
     * Название скоупа для показа пользователю
     * @type {string}
     * @memberof Scope
     */
    'displayName'?: string;
    /**
     * Описание скоупа
     * @type {string}
     * @memberof Scope
     */
    'description'?: string;
}
/**
 * 
 * @export
 * @interface SearchRsqlFilterDTO
 */
export interface SearchRsqlFilterDTO {
    /**
     * RSQL фильтр для полнотекстового поиска. Например: (fio=searchprefix=\"Иван\" or fio=search=\"Иван\").
     * @type {string}
     * @memberof SearchRsqlFilterDTO
     */
    'fullTextRsqlFilter'?: string;
    /**
     * ID домена в иерархии которого необходимо осуществить поиск
     * @type {string}
     * @memberof SearchRsqlFilterDTO
     */
    'rsqlFilter'?: string;
}
/**
 * Сервис
 * @export
 * @interface Service
 */
export interface Service {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Service
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Service
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Service
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Service
     */
    'schema'?: string;
    /**
     * Название сервиса
     * @type {string}
     * @memberof Service
     */
    'name': string;
    /**
     * Описание сервиса
     * @type {string}
     * @memberof Service
     */
    'title'?: string;
    /**
     * URL сервиса
     * @type {string}
     * @memberof Service
     */
    'url'?: string;
    /**
     * Является ли сервис внешним
     * @type {boolean}
     * @memberof Service
     */
    'externalFlag'?: boolean;
}
/**
 * 
 * @export
 * @interface ServiceAllOf
 */
export interface ServiceAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof ServiceAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof ServiceAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof ServiceAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof ServiceAllOf
     */
    'schema'?: string;
    /**
     * Название сервиса
     * @type {string}
     * @memberof ServiceAllOf
     */
    'name'?: string;
    /**
     * Описание сервиса
     * @type {string}
     * @memberof ServiceAllOf
     */
    'title'?: string;
    /**
     * URL сервиса
     * @type {string}
     * @memberof ServiceAllOf
     */
    'url'?: string;
    /**
     * Является ли сервис внешним
     * @type {boolean}
     * @memberof ServiceAllOf
     */
    'externalFlag'?: boolean;
}
/**
 * Решение (приложение, сервисы, платформы, etc.)
 * @export
 * @interface Solution
 */
export interface Solution {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof Solution
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof Solution
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof Solution
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof Solution
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof Solution
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof Solution
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof Solution
     */
    'description'?: string;
    /**
     * 
     * @type {string}
     * @memberof Solution
     */
    'icon'?: string;
}
/**
 * 
 * @export
 * @interface SolutionAllOf
 */
export interface SolutionAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof SolutionAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof SolutionAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof SolutionAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof SolutionAllOf
     */
    'schema'?: string;
    /**
     * Имя
     * @type {string}
     * @memberof SolutionAllOf
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof SolutionAllOf
     */
    'shortname'?: string;
    /**
     * 
     * @type {string}
     * @memberof SolutionAllOf
     */
    'description'?: string;
    /**
     * 
     * @type {string}
     * @memberof SolutionAllOf
     */
    'icon'?: string;
}
/**
 * 
 * @export
 * @interface SortedField
 */
export interface SortedField {
    /**
     * Имя поля для сортировки
     * @type {string}
     * @memberof SortedField
     */
    'fieldName': string;
    /**
     * Направление сортировки - мапится на SQL ASC DESC
     * @type {string}
     * @memberof SortedField
     */
    'order': SortedFieldOrderEnum;
}

export const SortedFieldOrderEnum = {
    Asc: 'ASC',
    Desc: 'DESC'
} as const;

export type SortedFieldOrderEnum = typeof SortedFieldOrderEnum[keyof typeof SortedFieldOrderEnum];

/**
 * Производственный календарь
 * @export
 * @interface WorkCalendar
 */
export interface WorkCalendar {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof WorkCalendar
     */
    'id': string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof WorkCalendar
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof WorkCalendar
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof WorkCalendar
     */
    'schema'?: string;
    /**
     * Наименование
     * @type {string}
     * @memberof WorkCalendar
     */
    'name': string;
    /**
     * 
     * @type {string}
     * @memberof WorkCalendar
     */
    'description'?: string;
}
/**
 * 
 * @export
 * @interface WorkCalendarAllOf
 */
export interface WorkCalendarAllOf {
    /**
     * Уникальный идентификатор документа
     * @type {string}
     * @memberof WorkCalendarAllOf
     */
    'id'?: string;
    /**
     * Версия документа. По умолчанию 0 - если версионирование на этом типе документа не включено
     * @type {number}
     * @memberof WorkCalendarAllOf
     */
    'version'?: number;
    /**
     * Дата модификации как UnixTime (Может требоваться при обновлении)
     * @type {number}
     * @memberof WorkCalendarAllOf
     */
    'modified'?: number;
    /**
     * Имя схемы документа
     * @type {string}
     * @memberof WorkCalendarAllOf
     */
    'schema'?: string;
    /**
     * Наименование
     * @type {string}
     * @memberof WorkCalendarAllOf
     */
    'name'?: string;
    /**
     * 
     * @type {string}
     * @memberof WorkCalendarAllOf
     */
    'description'?: string;
}

/**
 * AccountApi - axios parameter creator
 * @export
 */
export const AccountApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countAccounts: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Account>} account Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccount: async (account: Array<Account>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'account' is not null or undefined
            assertParamExists('createAccount', 'account', account)
            const localVarPath = `/accounts`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 Получение списка всех account\'ов с person, связанных с организацией и всеми ее дочками
         * @param {string} id Id аккаунта
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Сортировка по полям Person
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccountsByOrganizationIdWithPerson: async (id: string, page?: number, perPage?: number, sort?: string, query?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('findAccountsByOrganizationIdWithPerson', 'id', id)
            const localVarPath = `/accounts/persons/organization/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Department
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccountsDepartmentsByOrganizationId: async (id: string, page?: number, perPage?: number, sort?: string, expand?: string, query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('findAccountsDepartmentsByOrganizationId', 'id', id)
            const localVarPath = `/accounts/departments/organization/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 Удаляет объекты по его идентификаторам Account, а также цепочку связей: Account-(Profile)-Person-(Profile)-Credential-PasswordSecret 
         * @param {string} body Массив ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteAccountChain: async (body: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'body' is not null or undefined
            assertParamExists('forceDeleteAccountChain', 'body', body)
            const localVarPath = `/accounts/force/chain/v1`;
            // 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;


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

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

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

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

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


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает все аккаунты, связанные напрямую с доменом без учета детей домена
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountsByDomainId: async (domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getAccountsByDomainId', 'domainId', domainId)
            const localVarPath = `/accounts/domain/{domainId}/direct/v1`
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * ### Поиск аккаунтов по ID домена и опционально по ID роли.  #### Учитывает иерархию доменов вниз по всем детям этого домена #### Не возвращает - роли, статус блокировки, имя домена 
         * @param {AccountSearchByDomainIdDTO} [accountSearchByDomainIdDTO] Формат запроса
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountsByOrganizationIdV1: async (accountSearchByDomainIdDTO?: AccountSearchByDomainIdDTO, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts/search/domain/v1`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain: async (id: string, domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'id', id)
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'domainId', domainId)
            const localVarPath = `/persons/{id}/accountsInDomain/{domainId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization: async (id: string, orgId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'id', id)
            // verify required parameter 'orgId' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'orgId', orgId)
            const localVarPath = `/persons/{id}/accountsInOrganization/{orgId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"orgId"}}`, encodeURIComponent(String(orgId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

            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}
         */
        pagingAccounts: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts`;
            // 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 (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);
            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}
         */
        searchAccounts: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * ### Search Accounts with filtering by:  #### - personFullTextQuery  #### - organizationId  #### - roleId    #### Notes: 
         * @param {number} [page] Page number
         * @param {number} [perPage] Number of elements per page
         * @param {string} [personFullTextQuery] RSQL full text filter applied on Person entity connected with Account
         * @param {string} [organizationId] Organization ID
         * @param {string} [roleId] Role ID
         * @param {string} [expand] Comma separated list of allowed expansions by object links. ### Caution: only expand what is necessary 
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        searchAccountsWithFilter: async (page?: number, perPage?: number, personFullTextQuery?: string, organizationId?: string, roleId?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts/search/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: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * ### Search Accounts #### Notes: 
         * @param {PagingRequestAccountSearchDTO} [pagingRequestAccountSearchDTO] paging filtering request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchAccountsWithFilterV1: async (pagingRequestAccountSearchDTO?: PagingRequestAccountSearchDTO, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/accounts/search/filter/v1`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Account>} account Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkAccount: async (account: Array<Account>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'account' is not null or undefined
            assertParamExists('unlinkAccount', 'account', account)
            const localVarPath = `/accounts`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Account>} account Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccount: async (account: Array<Account>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'account' is not null or undefined
            assertParamExists('updateAccount', 'account', account)
            const localVarPath = `/accounts`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * AccountApi - functional programming interface
 * @export
 */
export const AccountApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AccountApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countAccounts(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countAccounts(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Account>} account Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createAccount(account: Array<Account>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createAccount(account, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteAccount(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAccount(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получение списка всех account\'ов с person, связанных с организацией и всеми ее дочками
         * @param {string} id Id аккаунта
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Сортировка по полям Person
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async findAccountsByOrganizationIdWithPerson(id: string, page?: number, perPage?: number, sort?: string, query?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfAccountPersonSingleTO>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.findAccountsByOrganizationIdWithPerson(id, page, perPage, sort, query, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Department
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async findAccountsDepartmentsByOrganizationId(id: string, page?: number, perPage?: number, sort?: string, expand?: string, query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Account>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.findAccountsDepartmentsByOrganizationId(id, page, perPage, sort, expand, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteAccount(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteAccount(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объекты по его идентификаторам Account, а также цепочку связей: Account-(Profile)-Person-(Profile)-Credential-PasswordSecret 
         * @param {string} body Массив ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteAccountChain(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteAccountChain(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccount(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Account>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccount(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает роли аккаунта по его идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccountRolesByAccountId(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RoleTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccountRolesByAccountId(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает все аккаунты, связанные напрямую с доменом без учета детей домена
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccountsByDomainId(domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RoleTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccountsByDomainId(domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * ### Поиск аккаунтов по ID домена и опционально по ID роли.  #### Учитывает иерархию доменов вниз по всем детям этого домена #### Не возвращает - роли, статус блокировки, имя домена 
         * @param {AccountSearchByDomainIdDTO} [accountSearchByDomainIdDTO] Формат запроса
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO?: AccountSearchByDomainIdDTO, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountSearchRecordSimpleDTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsByPersonId(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Account>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsByPersonId(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInDomain(id, domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInOrganization(id, orgId, 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 pagingAccounts(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfAccount>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingAccounts(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 searchAccounts(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Account>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchAccounts(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * ### Search Accounts with filtering by:  #### - personFullTextQuery  #### - organizationId  #### - roleId    #### Notes: 
         * @param {number} [page] Page number
         * @param {number} [perPage] Number of elements per page
         * @param {string} [personFullTextQuery] RSQL full text filter applied on Person entity connected with Account
         * @param {string} [organizationId] Organization ID
         * @param {string} [roleId] Role ID
         * @param {string} [expand] Comma separated list of allowed expansions by object links. ### Caution: only expand what is necessary 
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async searchAccountsWithFilter(page?: number, perPage?: number, personFullTextQuery?: string, organizationId?: string, roleId?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfAccount>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchAccountsWithFilter(page, perPage, personFullTextQuery, organizationId, roleId, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * ### Search Accounts #### Notes: 
         * @param {PagingRequestAccountSearchDTO} [pagingRequestAccountSearchDTO] paging filtering request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchAccountsWithFilterV1(pagingRequestAccountSearchDTO?: PagingRequestAccountSearchDTO, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccountAdminSearchPagingResultDTO>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchAccountsWithFilterV1(pagingRequestAccountSearchDTO, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Account>} account Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkAccount(account: Array<Account>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkAccount(account, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Account>} account Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateAccount(account: Array<Account>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateAccount(account, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * AccountApi - factory interface
 * @export
 */
export const AccountApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AccountApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countAccounts(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countAccounts(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Account>} account Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccount(account: Array<Account>, options?: any): AxiosPromise<Response> {
            return localVarFp.createAccount(account, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteAccount(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteAccount(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получение списка всех account\'ов с person, связанных с организацией и всеми ее дочками
         * @param {string} id Id аккаунта
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Сортировка по полям Person
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccountsByOrganizationIdWithPerson(id: string, page?: number, perPage?: number, sort?: string, query?: string, options?: any): AxiosPromise<PageOfAccountPersonSingleTO> {
            return localVarFp.findAccountsByOrganizationIdWithPerson(id, page, perPage, sort, query, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {string} [query] Фильтр (RSQL) выборки по объекту Department
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки по объекту Person
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccountsDepartmentsByOrganizationId(id: string, page?: number, perPage?: number, sort?: string, expand?: string, query?: string, fulltext?: string, options?: any): AxiosPromise<Account> {
            return localVarFp.findAccountsDepartmentsByOrganizationId(id, page, perPage, sort, expand, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteAccount(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteAccount(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объекты по его идентификаторам Account, а также цепочку связей: Account-(Profile)-Person-(Profile)-Credential-PasswordSecret 
         * @param {string} body Массив ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteAccountChain(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteAccountChain(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccount(id: string, expand?: string, options?: any): AxiosPromise<Account> {
            return localVarFp.getAccount(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает роли аккаунта по его идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountRolesByAccountId(id: string, options?: any): AxiosPromise<Array<RoleTO>> {
            return localVarFp.getAccountRolesByAccountId(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает все аккаунты, связанные напрямую с доменом без учета детей домена
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountsByDomainId(domainId: string, options?: any): AxiosPromise<Array<RoleTO>> {
            return localVarFp.getAccountsByDomainId(domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * ### Поиск аккаунтов по ID домена и опционально по ID роли.  #### Учитывает иерархию доменов вниз по всем детям этого домена #### Не возвращает - роли, статус блокировки, имя домена 
         * @param {AccountSearchByDomainIdDTO} [accountSearchByDomainIdDTO] Формат запроса
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO?: AccountSearchByDomainIdDTO, options?: any): AxiosPromise<Array<AccountSearchRecordSimpleDTO>> {
            return localVarFp.getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsByPersonId(id: string, options?: any): AxiosPromise<Array<Account>> {
            return localVarFp.getPersonAccountsByPersonId(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain(id: string, domainId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInDomain(id, domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization(id: string, orgId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInOrganization(id, orgId, 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}
         */
        pagingAccounts(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfAccount> {
            return localVarFp.pagingAccounts(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}
         */
        searchAccounts(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Account>> {
            return localVarFp.searchAccounts(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * ### Search Accounts with filtering by:  #### - personFullTextQuery  #### - organizationId  #### - roleId    #### Notes: 
         * @param {number} [page] Page number
         * @param {number} [perPage] Number of elements per page
         * @param {string} [personFullTextQuery] RSQL full text filter applied on Person entity connected with Account
         * @param {string} [organizationId] Organization ID
         * @param {string} [roleId] Role ID
         * @param {string} [expand] Comma separated list of allowed expansions by object links. ### Caution: only expand what is necessary 
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        searchAccountsWithFilter(page?: number, perPage?: number, personFullTextQuery?: string, organizationId?: string, roleId?: string, expand?: string, options?: any): AxiosPromise<PageOfAccount> {
            return localVarFp.searchAccountsWithFilter(page, perPage, personFullTextQuery, organizationId, roleId, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * ### Search Accounts #### Notes: 
         * @param {PagingRequestAccountSearchDTO} [pagingRequestAccountSearchDTO] paging filtering request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchAccountsWithFilterV1(pagingRequestAccountSearchDTO?: PagingRequestAccountSearchDTO, options?: any): AxiosPromise<AccountAdminSearchPagingResultDTO> {
            return localVarFp.searchAccountsWithFilterV1(pagingRequestAccountSearchDTO, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Account>} account Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkAccount(account: Array<Account>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkAccount(account, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Account>} account Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccount(account: Array<Account>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateAccount(account, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Account>} account Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public createAccount(account: Array<Account>, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).createAccount(account, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public deleteAccount(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).deleteAccount(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получение списка всех account\'ов с person, связанных с организацией и всеми ее дочками
     * @param {string} id Id аккаунта
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {string} [sort] Сортировка по полям Person
     * @param {string} [query] Фильтр (RSQL) выборки по объекту Person
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public findAccountsByOrganizationIdWithPerson(id: string, page?: number, perPage?: number, sort?: string, query?: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).findAccountsByOrganizationIdWithPerson(id, page, perPage, sort, query, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Удаляет объекты по его идентификаторам Account, а также цепочку связей: Account-(Profile)-Person-(Profile)-Credential-PasswordSecret 
     * @param {string} body Массив ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public forceDeleteAccountChain(body: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).forceDeleteAccountChain(body, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Возвращает все аккаунты, связанные напрямую с доменом без учета детей домена
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public getAccountsByDomainId(domainId: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).getAccountsByDomainId(domainId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * ### Поиск аккаунтов по ID домена и опционально по ID роли.  #### Учитывает иерархию доменов вниз по всем детям этого домена #### Не возвращает - роли, статус блокировки, имя домена 
     * @param {AccountSearchByDomainIdDTO} [accountSearchByDomainIdDTO] Формат запроса
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO?: AccountSearchByDomainIdDTO, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).getAccountsByOrganizationIdV1(accountSearchByDomainIdDTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public getPersonAccountsByPersonId(id: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).getPersonAccountsByPersonId(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретном домене
     * @param {string} id 
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).getPersonAccountsInDomain(id, domainId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретной организации
     * @param {string} id 
     * @param {string} orgId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).getPersonAccountsInOrganization(id, orgId, 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 AccountApi
     */
    public pagingAccounts(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).pagingAccounts(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 AccountApi
     */
    public searchAccounts(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).searchAccounts(handler, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * ### Search Accounts with filtering by:  #### - personFullTextQuery  #### - organizationId  #### - roleId    #### Notes: 
     * @param {number} [page] Page number
     * @param {number} [perPage] Number of elements per page
     * @param {string} [personFullTextQuery] RSQL full text filter applied on Person entity connected with Account
     * @param {string} [organizationId] Organization ID
     * @param {string} [roleId] Role ID
     * @param {string} [expand] Comma separated list of allowed expansions by object links. ### Caution: only expand what is necessary 
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public searchAccountsWithFilter(page?: number, perPage?: number, personFullTextQuery?: string, organizationId?: string, roleId?: string, expand?: string, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).searchAccountsWithFilter(page, perPage, personFullTextQuery, organizationId, roleId, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * ### Search Accounts #### Notes: 
     * @param {PagingRequestAccountSearchDTO} [pagingRequestAccountSearchDTO] paging filtering request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public searchAccountsWithFilterV1(pagingRequestAccountSearchDTO?: PagingRequestAccountSearchDTO, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).searchAccountsWithFilterV1(pagingRequestAccountSearchDTO, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Account>} account Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public unlinkAccount(account: Array<Account>, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).unlinkAccount(account, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Account>} account Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountApi
     */
    public updateAccount(account: Array<Account>, options?: AxiosRequestConfig) {
        return AccountApiFp(this.configuration).updateAccount(account, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteAccountProfile: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteAccountProfile', 'requestBody', requestBody)
            const localVarPath = `/profiles/accounts/force`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountProfile: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/profiles/accounts`;
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<AccountProfile>} accountProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccountProfile: async (accountProfile: Array<AccountProfile>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'accountProfile' is not null or undefined
            assertParamExists('updateAccountProfile', 'accountProfile', accountProfile)
            const localVarPath = `/profiles/accounts`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * AccountProfileApi - functional programming interface
 * @export
 */
export const AccountProfileApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AccountProfileApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<AccountProfile>} accountProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createAccountProfile(accountProfile: Array<AccountProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createAccountProfile(accountProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteAccountProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAccountProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteAccountProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteAccountProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccountProfile(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountProfile>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccountProfile(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<AccountProfile>} accountProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateAccountProfile(accountProfile: Array<AccountProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateAccountProfile(accountProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * AccountProfileApi - factory interface
 * @export
 */
export const AccountProfileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AccountProfileApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<AccountProfile>} accountProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccountProfile(accountProfile: Array<AccountProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.createAccountProfile(accountProfile, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteAccountProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteAccountProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteAccountProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteAccountProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccountProfile(options?: any): AxiosPromise<Array<AccountProfile>> {
            return localVarFp.getAccountProfile(options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<AccountProfile>} accountProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccountProfile(accountProfile: Array<AccountProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateAccountProfile(accountProfile, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountProfileApi
     */
    public deleteAccountProfile(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return AccountProfileApiFp(this.configuration).deleteAccountProfile(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<AccountProfile>} accountProfile Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountProfileApi
     */
    public updateAccountProfile(accountProfile: Array<AccountProfile>, options?: AxiosRequestConfig) {
        return AccountProfileApiFp(this.configuration).updateAccountProfile(accountProfile, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ClientApi - axios parameter creator
 * @export
 */
export const ClientApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countClients: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/clients/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<Client>} client Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createClients: async (client: Array<Client>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'client' is not null or undefined
            assertParamExists('createClients', 'client', client)
            const localVarPath = `/clients`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteClient: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteClient', 'requestBody', requestBody)
            const localVarPath = `/clients/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingClients: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/clients`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Client>} client Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClients: async (client: Array<Client>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'client' is not null or undefined
            assertParamExists('unlinkClients', 'client', client)
            const localVarPath = `/clients`;
            // 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;


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

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

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

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


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

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

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

/**
 * ClientApi - functional programming interface
 * @export
 */
export const ClientApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ClientApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countClients(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countClients(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<Client>} client Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createClients(client: Array<Client>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createClients(client, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteClient(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteClient(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteClient(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteClient(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getClient(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Client>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getClient(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingClients(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfClient>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingClients(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchClients(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Client>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchClients(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Client>} client Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkClients(client: Array<Client>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkClients(client, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<Client>} client Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateClients(client: Array<Client>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateClients(client, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ClientApi - factory interface
 * @export
 */
export const ClientApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ClientApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countClients(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countClients(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<Client>} client Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createClients(client: Array<Client>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.createClients(client, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteClient(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.deleteClient(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteClient(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.forceDeleteClient(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getClient(id: string, expand?: string, options?: any): AxiosPromise<Client> {
            return localVarFp.getClient(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingClients(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfClient> {
            return localVarFp.pagingClients(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchClients(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Client>> {
            return localVarFp.searchClients(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Client>} client Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClients(client: Array<Client>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.unlinkClients(client, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<Client>} client Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateClients(client: Array<Client>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.updateClients(client, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новые объекты
     * @param {Array<Client>} client Список новых объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientApi
     */
    public createClients(client: Array<Client>, options?: AxiosRequestConfig) {
        return ClientApiFp(this.configuration).createClients(client, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по их идентификаторам
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientApi
     */
    public deleteClient(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ClientApiFp(this.configuration).deleteClient(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объектов
     * @param {Array<Client>} client Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientApi
     */
    public unlinkClients(client: Array<Client>, options?: AxiosRequestConfig) {
        return ClientApiFp(this.configuration).unlinkClients(client, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объекты
     * @param {Array<Client>} client Список объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientApi
     */
    public updateClients(client: Array<Client>, options?: AxiosRequestConfig) {
        return ClientApiFp(this.configuration).updateClients(client, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ClientScopeApi - axios parameter creator
 * @export
 */
export const ClientScopeApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countClientScopes: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/clients/scopes/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<ClientScope>} clientScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createClientScopes: async (clientScope: Array<ClientScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'clientScope' is not null or undefined
            assertParamExists('createClientScopes', 'clientScope', clientScope)
            const localVarPath = `/clients/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteClientScopes: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('deleteClientScopes', 'requestBody', requestBody)
            const localVarPath = `/clients/scopes`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteClientScopes: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteClientScopes', 'requestBody', requestBody)
            const localVarPath = `/clients/scopes/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingClientScopes: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/clients/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<ClientScope>} clientScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClientScopes: async (clientScope: Array<ClientScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'clientScope' is not null or undefined
            assertParamExists('unlinkClientScopes', 'clientScope', clientScope)
            const localVarPath = `/clients/scopes`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<ClientScope>} clientScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateClientScopes: async (clientScope: Array<ClientScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'clientScope' is not null or undefined
            assertParamExists('updateClientScopes', 'clientScope', clientScope)
            const localVarPath = `/clients/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * ClientScopeApi - functional programming interface
 * @export
 */
export const ClientScopeApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ClientScopeApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countClientScopes(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countClientScopes(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<ClientScope>} clientScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createClientScopes(clientScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteClientScopes(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteClientScopes(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteClientScopes(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteClientScopes(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getClientScope(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ClientScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getClientScope(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingClientScopes(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfClientScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingClientScopes(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchClientScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ClientScope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchClientScopes(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<ClientScope>} clientScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkClientScopes(clientScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<ClientScope>} clientScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateClientScopes(clientScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ClientScopeApi - factory interface
 * @export
 */
export const ClientScopeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ClientScopeApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countClientScopes(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countClientScopes(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<ClientScope>} clientScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createClientScopes(clientScope: Array<ClientScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.createClientScopes(clientScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteClientScopes(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.deleteClientScopes(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteClientScopes(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.forceDeleteClientScopes(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getClientScope(id: string, expand?: string, options?: any): AxiosPromise<ClientScope> {
            return localVarFp.getClientScope(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingClientScopes(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfClientScope> {
            return localVarFp.pagingClientScopes(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchClientScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<ClientScope>> {
            return localVarFp.searchClientScopes(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<ClientScope>} clientScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClientScopes(clientScope: Array<ClientScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.unlinkClientScopes(clientScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<ClientScope>} clientScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateClientScopes(clientScope: Array<ClientScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.updateClientScopes(clientScope, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новые объекты
     * @param {Array<ClientScope>} clientScope Список новых объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientScopeApi
     */
    public createClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig) {
        return ClientScopeApiFp(this.configuration).createClientScopes(clientScope, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по их идентификаторам
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientScopeApi
     */
    public deleteClientScopes(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ClientScopeApiFp(this.configuration).deleteClientScopes(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объектов
     * @param {Array<ClientScope>} clientScope Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientScopeApi
     */
    public unlinkClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig) {
        return ClientScopeApiFp(this.configuration).unlinkClientScopes(clientScope, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объекты
     * @param {Array<ClientScope>} clientScope Список объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClientScopeApi
     */
    public updateClientScopes(clientScope: Array<ClientScope>, options?: AxiosRequestConfig) {
        return ClientScopeApiFp(this.configuration).updateClientScopes(clientScope, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * CollapsedProfileApi - axios parameter creator
 * @export
 */
export const CollapsedProfileApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCollapsedProfile: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/profiles`;
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCollapsedProfileByAccountId: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getCollapsedProfileByAccountId', 'id', id)
            const localVarPath = `/profiles/accounts/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

/**
 * CollapsedProfileApi - functional programming interface
 * @export
 */
export const CollapsedProfileApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = CollapsedProfileApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getCollapsedProfile(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetCollapsedProfileByAccountId200Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getCollapsedProfile(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getCollapsedProfileByAccountId(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetCollapsedProfileByAccountId200Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getCollapsedProfileByAccountId(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * CollapsedProfileApi - factory interface
 * @export
 */
export const CollapsedProfileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = CollapsedProfileApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCollapsedProfile(options?: any): AxiosPromise<GetCollapsedProfileByAccountId200Response> {
            return localVarFp.getCollapsedProfile(options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает collapsed profile объект
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCollapsedProfileByAccountId(id: string, options?: any): AxiosPromise<GetCollapsedProfileByAccountId200Response> {
            return localVarFp.getCollapsedProfileByAccountId(id, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * CollapsedProfileApi - object-oriented interface
 * @export
 * @class CollapsedProfileApi
 * @extends {BaseAPI}
 */
export class CollapsedProfileApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает collapsed profile объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollapsedProfileApi
     */
    public getCollapsedProfile(options?: AxiosRequestConfig) {
        return CollapsedProfileApiFp(this.configuration).getCollapsedProfile(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает collapsed profile объект
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CollapsedProfileApi
     */
    public getCollapsedProfileByAccountId(id: string, options?: AxiosRequestConfig) {
        return CollapsedProfileApiFp(this.configuration).getCollapsedProfileByAccountId(id, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ConsentApi - axios parameter creator
 * @export
 */
export const ConsentApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countConsent: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/consents/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteConsents: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteConsents', 'requestBody', requestBody)
            const localVarPath = `/consents/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingConsents: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/consents`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Consent>} consent Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkConsents: async (consent: Array<Consent>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'consent' is not null or undefined
            assertParamExists('unlinkConsents', 'consent', consent)
            const localVarPath = `/consents`;
            // 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;


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

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

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

/**
 * ConsentApi - functional programming interface
 * @export
 */
export const ConsentApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ConsentApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countConsent(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countConsent(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteConsents(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteConsents(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteConsents(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteConsents(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getConsent(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Consent>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getConsent(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingConsents(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfConsent>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingConsents(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchConsents(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Consent>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchConsents(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Consent>} consent Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkConsents(consent: Array<Consent>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkConsents(consent, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ConsentApi - factory interface
 * @export
 */
export const ConsentApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ConsentApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countConsent(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countConsent(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteConsents(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.deleteConsents(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteConsents(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.forceDeleteConsents(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getConsent(id: string, expand?: string, options?: any): AxiosPromise<Consent> {
            return localVarFp.getConsent(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingConsents(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfConsent> {
            return localVarFp.pagingConsents(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchConsents(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Consent>> {
            return localVarFp.searchConsents(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<Consent>} consent Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkConsents(consent: Array<Consent>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.unlinkConsents(consent, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по их идентификаторам
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ConsentApi
     */
    public deleteConsents(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ConsentApiFp(this.configuration).deleteConsents(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объектов
     * @param {Array<Consent>} consent Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ConsentApi
     */
    public unlinkConsents(consent: Array<Consent>, options?: AxiosRequestConfig) {
        return ConsentApiFp(this.configuration).unlinkConsents(consent, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * CredentialsApi - axios parameter creator
 * @export
 */
export const CredentialsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @param {LocalCredential} localCredential Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCredentials: async (localCredential: LocalCredential, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'localCredential' is not null or undefined
            assertParamExists('createCredentials', 'localCredential', localCredential)
            const localVarPath = `/credentials`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Сoздает обьект ExternalCredential
         * @param {string} body Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExternalCredential: async (body: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'body' is not null or undefined
            assertParamExists('createExternalCredential', 'body', body)
            const localVarPath = `/credentials/external`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteByIds: async (body: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'body' is not null or undefined
            assertParamExists('deleteByIds', 'body', body)
            const localVarPath = `/credentials`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteByIds: async (body: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'body' is not null or undefined
            assertParamExists('forceDeleteByIds', 'body', body)
            const localVarPath = `/credentials/force`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {string} userName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProps: async (userName: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'userName' is not null or undefined
            assertParamExists('getProps', 'userName', userName)
            const localVarPath = `/credentials/login/{userName}`
                .replace(`{${"userName"}}`, encodeURIComponent(String(userName)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProps1: async (body?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/credentials/properties`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        resetPassword: async (localCredential: LocalCredential, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'localCredential' is not null or undefined
            assertParamExists('resetPassword', 'localCredential', localCredential)
            const localVarPath = `/credentials/reset-password`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Снимает блокировку
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unblockLocalCredential: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('unblockLocalCredential', 'id', id)
            const localVarPath = `/credentials/{id}/unblock`
                .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: 'PATCH', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateCredentials: async (localCredential: LocalCredential, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'localCredential' is not null or undefined
            assertParamExists('updateCredentials', 'localCredential', localCredential)
            const localVarPath = `/credentials`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить login в credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateLogin: async (localCredential: LocalCredential, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'localCredential' is not null or undefined
            assertParamExists('updateLogin', 'localCredential', localCredential)
            const localVarPath = `/credentials/login`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        validate: async (localCredential: LocalCredential, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'localCredential' is not null or undefined
            assertParamExists('validate', 'localCredential', localCredential)
            const localVarPath = `/credentials/validate`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * CredentialsApi - functional programming interface
 * @export
 */
export const CredentialsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = CredentialsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @param {LocalCredential} localCredential Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createCredentials(localCredential: LocalCredential, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createCredentials(localCredential, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Сoздает обьект ExternalCredential
         * @param {string} body Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createExternalCredential(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createExternalCredential(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteByIds(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteByIds(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteByIds(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteByIds(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {string} userName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getProps(userName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<LocalCredentialTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getProps(userName, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getProps1(body?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<LocalCredential>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getProps1(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async resetPassword(localCredential: LocalCredential, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.resetPassword(localCredential, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Снимает блокировку
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unblockLocalCredential(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unblockLocalCredential(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateCredentials(localCredential: LocalCredential, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateCredentials(localCredential, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить login в credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateLogin(localCredential: LocalCredential, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateLogin(localCredential, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async validate(localCredential: LocalCredential, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.validate(localCredential, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * CredentialsApi - factory interface
 * @export
 */
export const CredentialsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = CredentialsApiFp(configuration)
    return {
        /**
         * 
         * @param {LocalCredential} localCredential Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCredentials(localCredential: LocalCredential, options?: any): AxiosPromise<Response> {
            return localVarFp.createCredentials(localCredential, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Сoздает обьект ExternalCredential
         * @param {string} body Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createExternalCredential(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.createExternalCredential(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteByIds(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteByIds(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteByIds(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteByIds(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {string} userName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProps(userName: string, options?: any): AxiosPromise<Array<LocalCredentialTO>> {
            return localVarFp.getProps(userName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {string} [body] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProps1(body?: string, options?: any): AxiosPromise<LocalCredential> {
            return localVarFp.getProps1(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        resetPassword(localCredential: LocalCredential, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.resetPassword(localCredential, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Снимает блокировку
         * @param {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unblockLocalCredential(id: string, options?: any): AxiosPromise<Response> {
            return localVarFp.unblockLocalCredential(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateCredentials(localCredential: LocalCredential, options?: any): AxiosPromise<Response> {
            return localVarFp.updateCredentials(localCredential, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить login в credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateLogin(localCredential: LocalCredential, options?: any): AxiosPromise<Response> {
            return localVarFp.updateLogin(localCredential, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @param {LocalCredential} localCredential обновить credential
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        validate(localCredential: LocalCredential, options?: any): AxiosPromise<ModifyResponse> {
            return localVarFp.validate(localCredential, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * CredentialsApi - object-oriented interface
 * @export
 * @class CredentialsApi
 * @extends {BaseAPI}
 */
export class CredentialsApi extends BaseAPI {
    /**
     * 
     * @param {LocalCredential} localCredential Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public createCredentials(localCredential: LocalCredential, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).createCredentials(localCredential, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Сoздает обьект ExternalCredential
     * @param {string} body Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public createExternalCredential(body: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).createExternalCredential(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {string} body ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public deleteByIds(body: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).deleteByIds(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {string} body ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public forceDeleteByIds(body: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).forceDeleteByIds(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {string} userName 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public getProps(userName: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).getProps(userName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {string} [body] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public getProps1(body?: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).getProps1(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {LocalCredential} localCredential обновить credential
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public resetPassword(localCredential: LocalCredential, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).resetPassword(localCredential, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Снимает блокировку
     * @param {string} id ID документа
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public unblockLocalCredential(id: string, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).unblockLocalCredential(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {LocalCredential} localCredential обновить credential
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public updateCredentials(localCredential: LocalCredential, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).updateCredentials(localCredential, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {LocalCredential} localCredential обновить login в credential
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public updateLogin(localCredential: LocalCredential, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).updateLogin(localCredential, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @param {LocalCredential} localCredential обновить credential
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CredentialsApi
     */
    public validate(localCredential: LocalCredential, options?: AxiosRequestConfig) {
        return CredentialsApiFp(this.configuration).validate(localCredential, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * DepartmentApi - axios parameter creator
 * @export
 */
export const DepartmentApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countDepartments: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/departments/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Department>} department Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createDepartment: async (department: Array<Department>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'department' is not null or undefined
            assertParamExists('createDepartment', 'department', department)
            const localVarPath = `/departments`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteDepartment: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteDepartment', 'requestBody', requestBody)
            const localVarPath = `/departments/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain: async (id: string, domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'id', id)
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'domainId', domainId)
            const localVarPath = `/persons/{id}/accountsInDomain/{domainId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDepartments: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/departments`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Department>} department Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDepartment: async (department: Array<Department>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'department' is not null or undefined
            assertParamExists('unlinkDepartment', 'department', department)
            const localVarPath = `/departments`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Department>} department Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDepartment: async (department: Array<Department>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'department' is not null or undefined
            assertParamExists('updateDepartment', 'department', department)
            const localVarPath = `/departments`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * DepartmentApi - functional programming interface
 * @export
 */
export const DepartmentApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DepartmentApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countDepartments(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countDepartments(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Department>} department Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createDepartment(department: Array<Department>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createDepartment(department, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDepartment(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDepartment(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteDepartment(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteDepartment(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDepartment(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Department>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDepartment(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInDomain(id, domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingDepartments(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfDepartment>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingDepartments(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchDepartments(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Department>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchDepartments(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Department>} department Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkDepartment(department: Array<Department>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkDepartment(department, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Department>} department Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDepartment(department: Array<Department>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDepartment(department, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DepartmentApi - factory interface
 * @export
 */
export const DepartmentApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DepartmentApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countDepartments(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countDepartments(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Department>} department Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createDepartment(department: Array<Department>, options?: any): AxiosPromise<Response> {
            return localVarFp.createDepartment(department, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDepartment(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteDepartment(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteDepartment(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteDepartment(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDepartment(id: string, expand?: string, options?: any): AxiosPromise<Department> {
            return localVarFp.getDepartment(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain(id: string, domainId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInDomain(id, domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDepartments(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfDepartment> {
            return localVarFp.pagingDepartments(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchDepartments(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Department>> {
            return localVarFp.searchDepartments(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Department>} department Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDepartment(department: Array<Department>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkDepartment(department, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Department>} department Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDepartment(department: Array<Department>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateDepartment(department, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Department>} department Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DepartmentApi
     */
    public createDepartment(department: Array<Department>, options?: AxiosRequestConfig) {
        return DepartmentApiFp(this.configuration).createDepartment(department, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DepartmentApi
     */
    public deleteDepartment(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return DepartmentApiFp(this.configuration).deleteDepartment(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретном домене
     * @param {string} id 
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DepartmentApi
     */
    public getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig) {
        return DepartmentApiFp(this.configuration).getPersonAccountsInDomain(id, domainId, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Department>} department Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DepartmentApi
     */
    public unlinkDepartment(department: Array<Department>, options?: AxiosRequestConfig) {
        return DepartmentApiFp(this.configuration).unlinkDepartment(department, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Department>} department Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DepartmentApi
     */
    public updateDepartment(department: Array<Department>, options?: AxiosRequestConfig) {
        return DepartmentApiFp(this.configuration).updateDepartment(department, 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.
         * @deprecated
         * @throws {RequiredError}
         */
        countDocuments: async (schema: string, query?: string, fulltext?: string, options: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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}`
                .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);
            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 ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteByIdDocument: async (schema: string, id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('forceDeleteByIdDocument', 'schema', schema)
            // verify required parameter 'id' is not null or undefined
            assertParamExists('forceDeleteByIdDocument', 'id', id)
            const localVarPath = `/document/{schema}/force/{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);
            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}
         */
        forceDeleteDocument: async (schema: string, requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('forceDeleteDocument', 'schema', schema)
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteDocument', 'requestBody', requestBody)
            const localVarPath = `/document/{schema}/force`
                .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);
            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: AxiosRequestConfig = {}): 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            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: AxiosRequestConfig = {}): 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);
            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} [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: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            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 {Array<Document>} document Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDocument: async (schema: string, document: Array<Document>, options: AxiosRequestConfig = {}): 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);
            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.
         * @deprecated
         * @throws {RequiredError}
         */
        async countDocuments(schema: string, query?: string, fulltext?: string, options?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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 {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteByIdDocument(schema: string, id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteByIdDocument(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 forceDeleteDocument(schema: string, requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteDocument(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?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Document>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDocument(schema, id, expand, 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?: AxiosRequestConfig): 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);
        },
        /**
         * Возвращает список всех документов без пейджинга.
         * @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?: AxiosRequestConfig): 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?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ModifyResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkDocument(schema, document, 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?: AxiosRequestConfig): 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.
         * @deprecated
         * @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 {string} id ID документа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteByIdDocument(schema: string, id: string, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteByIdDocument(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}
         */
        forceDeleteDocument(schema: string, requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteDocument(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));
        },
        /**
         * Возвращает постраничный список документов. Разбиение на страницы производиться по 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));
        },
        /**
         * Возвращает список всех документов без пейджинга.
         * @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 {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.
     * @deprecated
     * @throws {RequiredError}
     * @memberof DocumentApi
     */
    public countDocuments(schema: string, query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).deleteByIdDocument(schema, id, 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 forceDeleteByIdDocument(schema: string, id: string, options?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).forceDeleteByIdDocument(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 forceDeleteDocument(schema: string, requestBody: Array<string>, options?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).forceDeleteDocument(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?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).getDocument(schema, id, expand, 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?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).pagingDocuments(schema, page, perPage, query, fulltext, sort, expand, 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?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).unlinkDocument(schema, document, 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?: AxiosRequestConfig) {
        return DocumentApiFp(this.configuration).updateDocument(schema, document, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * DomainApi - axios parameter creator
 * @export
 */
export const DomainApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Включает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        activateNotification: async (id: string, domain: Array<Domain>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('activateNotification', 'id', id)
            // verify required parameter 'domain' is not null or undefined
            assertParamExists('activateNotification', 'domain', domain)
            const localVarPath = `/domains/{id}/notifications`
                .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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countDomains: async (handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/domains/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Отключает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deactivateNotification: async (id: string, domain: Array<Domain>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deactivateNotification', 'id', id)
            // verify required parameter 'domain' is not null or undefined
            assertParamExists('deactivateNotification', 'domain', domain)
            const localVarPath = `/domains/{id}/notifications`
                .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: 'PATCH', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

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


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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает дерево детей домена.
         * @summary Возвращает дерево детей домена.
         * @param {string} domainId ID домена
         * @param {number} [depth] Глубина обхода дерева (графа)
         * @param {Array<string>} [schemas] Схемы (schema) домена которые включить в граф. Допустимые значения - Region, Organization, Department. По умолчанию все схемы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainChildrenTreeV1: async (domainId: string, depth?: number, schemas?: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getDomainChildrenTreeV1', 'domainId', domainId)
            const localVarPath = `/domains/hierarchy/tree/children/{domainId}/v1`
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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 (depth !== undefined) {
                localVarQueryParameter['depth'] = depth;
            }

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает иерархию доменов по идентификатору
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainHierarchy: async (domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getDomainHierarchy', 'domainId', domainId)
            const localVarPath = `/domains/hierarchy/{domainId}`
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производится по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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}
         */
        pagingDomains: async (handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/domains`;
            // 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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов для страниц статистики
         * @param {Array<string>} requestBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDomainsForStats: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('pagingDomainsForStats', 'requestBody', requestBody)
            const localVarPath = `/domains/recordsForStats`;
            // 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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает постраничный список включённых уведомлений по идентификатору домена
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingNotificationsActive: async (id: string, page?: number, perPage?: number, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('pagingNotificationsActive', 'id', id)
            const localVarPath = `/domains/{id}/notifications/active`
                .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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Domain>} domain Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDomain: async (domain: Array<Domain>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domain' is not null or undefined
            assertParamExists('unlinkDomain', 'domain', domain)
            const localVarPath = `/domains`;
            // 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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomain: async (domain: Array<Domain>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domain' is not null or undefined
            assertParamExists('updateDomain', 'domain', domain)
            const localVarPath = `/domains`;
            // 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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

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

/**
 * DomainApi - functional programming interface
 * @export
 */
export const DomainApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DomainApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Включает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async activateNotification(id: string, domain: Array<Domain>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.activateNotification(id, domain, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countDomains(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countDomains(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Отключает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deactivateNotification(id: string, domain: Array<Domain>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deactivateNotification(id, domain, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDomain(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Domain>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDomain(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает дерево детей домена.
         * @summary Возвращает дерево детей домена.
         * @param {string} domainId ID домена
         * @param {number} [depth] Глубина обхода дерева (графа)
         * @param {Array<string>} [schemas] Схемы (schema) домена которые включить в граф. Допустимые значения - Region, Organization, Department. По умолчанию все схемы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDomainChildrenTreeV1(domainId: string, depth?: number, schemas?: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<NodeTO>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDomainChildrenTreeV1(domainId, depth, schemas, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает иерархию доменов по идентификатору
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDomainHierarchy(domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<DomainTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDomainHierarchy(domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список уведомлений по идентификатору домена
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getNotifications(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<NotificationTO>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getNotifications(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производится по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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 pagingDomains(handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfDomain>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingDomains(handler, page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов для страниц статистики
         * @param {Array<string>} requestBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingDomainsForStats(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DomainForStats>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingDomainsForStats(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает постраничный список включённых уведомлений по идентификатору домена
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingNotificationsActive(id: string, page?: number, perPage?: number, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfNotification>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingNotificationsActive(id, page, perPage, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Domain>} domain Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkDomain(domain: Array<Domain>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkDomain(domain, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDomain(domain: Array<Domain>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDomain(domain, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DomainApi - factory interface
 * @export
 */
export const DomainApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DomainApiFp(configuration)
    return {
        /**
         * 
         * @summary Включает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        activateNotification(id: string, domain: Array<Domain>, options?: any): AxiosPromise<Response> {
            return localVarFp.activateNotification(id, domain, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countDomains(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countDomains(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Отключает уведомления домена
         * @param {string} id 
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deactivateNotification(id: string, domain: Array<Domain>, options?: any): AxiosPromise<Response> {
            return localVarFp.deactivateNotification(id, domain, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomain(id: string, expand?: string, options?: any): AxiosPromise<Domain> {
            return localVarFp.getDomain(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает дерево детей домена.
         * @summary Возвращает дерево детей домена.
         * @param {string} domainId ID домена
         * @param {number} [depth] Глубина обхода дерева (графа)
         * @param {Array<string>} [schemas] Схемы (schema) домена которые включить в граф. Допустимые значения - Region, Organization, Department. По умолчанию все схемы
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainChildrenTreeV1(domainId: string, depth?: number, schemas?: Array<string>, options?: any): AxiosPromise<NodeTO> {
            return localVarFp.getDomainChildrenTreeV1(domainId, depth, schemas, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает иерархию доменов по идентификатору
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainHierarchy(domainId: string, options?: any): AxiosPromise<Array<DomainTO>> {
            return localVarFp.getDomainHierarchy(domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список уведомлений по идентификатору домена
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getNotifications(id: string, expand?: string, options?: any): AxiosPromise<NotificationTO> {
            return localVarFp.getNotifications(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производится по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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}
         */
        pagingDomains(handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfDomain> {
            return localVarFp.pagingDomains(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов для страниц статистики
         * @param {Array<string>} requestBody 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingDomainsForStats(requestBody: Array<string>, options?: any): AxiosPromise<DomainForStats> {
            return localVarFp.pagingDomainsForStats(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает постраничный список включённых уведомлений по идентификатору домена
         * @param {string} id 
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingNotificationsActive(id: string, page?: number, perPage?: number, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfNotification> {
            return localVarFp.pagingNotificationsActive(id, page, perPage, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Domain>} domain Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkDomain(domain: Array<Domain>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkDomain(domain, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Domain>} domain Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomain(domain: Array<Domain>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateDomain(domain, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DomainApi - object-oriented interface
 * @export
 * @class DomainApi
 * @extends {BaseAPI}
 */
export class DomainApi extends BaseAPI {
    /**
     * 
     * @summary Включает уведомления домена
     * @param {string} id 
     * @param {Array<Domain>} domain Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public activateNotification(id: string, domain: Array<Domain>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).activateNotification(id, domain, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public countDomains(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).countDomains(handler, query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Отключает уведомления домена
     * @param {string} id 
     * @param {Array<Domain>} domain Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public deactivateNotification(id: string, domain: Array<Domain>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).deactivateNotification(id, domain, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * Возвращает дерево детей домена.
     * @summary Возвращает дерево детей домена.
     * @param {string} domainId ID домена
     * @param {number} [depth] Глубина обхода дерева (графа)
     * @param {Array<string>} [schemas] Схемы (schema) домена которые включить в граф. Допустимые значения - Region, Organization, Department. По умолчанию все схемы
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public getDomainChildrenTreeV1(domainId: string, depth?: number, schemas?: Array<string>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).getDomainChildrenTreeV1(domainId, depth, schemas, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает иерархию доменов по идентификатору
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public getDomainHierarchy(domainId: string, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).getDomainHierarchy(domainId, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * Возвращает список объектов без пейджинга.
     * @summary Возвращает список объектов для страниц статистики
     * @param {Array<string>} requestBody 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public pagingDomainsForStats(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).pagingDomainsForStats(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Domain>} domain Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public unlinkDomain(domain: Array<Domain>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).unlinkDomain(domain, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Domain>} domain Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainApi
     */
    public updateDomain(domain: Array<Domain>, options?: AxiosRequestConfig) {
        return DomainApiFp(this.configuration).updateDomain(domain, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteDomainProfile: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteDomainProfile', 'requestBody', requestBody)
            const localVarPath = `/profiles/domains/force`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainProfile: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/profiles/domains`;
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<DomainProfile>} domainProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomainProfile: async (domainProfile: Array<DomainProfile>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'domainProfile' is not null or undefined
            assertParamExists('updateDomainProfile', 'domainProfile', domainProfile)
            const localVarPath = `/profiles/domains`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * DomainProfileApi - functional programming interface
 * @export
 */
export const DomainProfileApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DomainProfileApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<DomainProfile>} domainProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createDomainProfile(domainProfile: Array<DomainProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createDomainProfile(domainProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteDomainProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDomainProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteDomainProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteDomainProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDomainProfile(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<DomainProfile>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDomainProfile(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<DomainProfile>} domainProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateDomainProfile(domainProfile: Array<DomainProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateDomainProfile(domainProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DomainProfileApi - factory interface
 * @export
 */
export const DomainProfileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DomainProfileApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<DomainProfile>} domainProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createDomainProfile(domainProfile: Array<DomainProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.createDomainProfile(domainProfile, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteDomainProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteDomainProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteDomainProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteDomainProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDomainProfile(options?: any): AxiosPromise<Array<DomainProfile>> {
            return localVarFp.getDomainProfile(options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<DomainProfile>} domainProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateDomainProfile(domainProfile: Array<DomainProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateDomainProfile(domainProfile, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainProfileApi
     */
    public deleteDomainProfile(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return DomainProfileApiFp(this.configuration).deleteDomainProfile(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<DomainProfile>} domainProfile Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DomainProfileApi
     */
    public updateDomainProfile(domainProfile: Array<DomainProfile>, options?: AxiosRequestConfig) {
        return DomainProfileApiFp(this.configuration).updateDomainProfile(domainProfile, 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: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            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?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        return GraphApiFp(this.configuration).tree(schema, type, id, depth, schemas, links, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * GroupApi - axios parameter creator
 * @export
 */
export const GroupApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countGroups: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/groups/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Group>} group Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createGroup: async (group: Array<Group>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'group' is not null or undefined
            assertParamExists('createGroup', 'group', group)
            const localVarPath = `/groups`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteGroup: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteGroup', 'requestBody', requestBody)
            const localVarPath = `/groups/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingGroups: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/groups`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Group>} group Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkGroup: async (group: Array<Group>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'group' is not null or undefined
            assertParamExists('unlinkGroup', 'group', group)
            const localVarPath = `/groups`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Group>} group Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateGroup: async (group: Array<Group>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'group' is not null or undefined
            assertParamExists('updateGroup', 'group', group)
            const localVarPath = `/groups`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * GroupApi - functional programming interface
 * @export
 */
export const GroupApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = GroupApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countGroups(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countGroups(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Group>} group Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createGroup(group: Array<Group>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createGroup(group, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteGroup(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroup(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteGroup(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteGroup(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getGroup(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Group>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getGroup(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingGroups(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfGroup>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingGroups(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchGroups(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Group>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchGroups(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Group>} group Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkGroup(group: Array<Group>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkGroup(group, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Group>} group Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateGroup(group: Array<Group>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroup(group, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * GroupApi - factory interface
 * @export
 */
export const GroupApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = GroupApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countGroups(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countGroups(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Group>} group Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createGroup(group: Array<Group>, options?: any): AxiosPromise<Response> {
            return localVarFp.createGroup(group, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteGroup(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteGroup(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteGroup(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteGroup(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getGroup(id: string, expand?: string, options?: any): AxiosPromise<Group> {
            return localVarFp.getGroup(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingGroups(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfGroup> {
            return localVarFp.pagingGroups(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchGroups(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Group>> {
            return localVarFp.searchGroups(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Group>} group Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkGroup(group: Array<Group>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkGroup(group, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Group>} group Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateGroup(group: Array<Group>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateGroup(group, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Group>} group Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GroupApi
     */
    public createGroup(group: Array<Group>, options?: AxiosRequestConfig) {
        return GroupApiFp(this.configuration).createGroup(group, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GroupApi
     */
    public deleteGroup(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return GroupApiFp(this.configuration).deleteGroup(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Group>} group Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GroupApi
     */
    public unlinkGroup(group: Array<Group>, options?: AxiosRequestConfig) {
        return GroupApiFp(this.configuration).unlinkGroup(group, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Group>} group Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GroupApi
     */
    public updateGroup(group: Array<Group>, options?: AxiosRequestConfig) {
        return GroupApiFp(this.configuration).updateGroup(group, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * IdentityScopeApi - axios parameter creator
 * @export
 */
export const IdentityScopeApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countIdentityScopes: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/identity/scopes/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<IdentityScope>} identityScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createIdentityScopes: async (identityScope: Array<IdentityScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'identityScope' is not null or undefined
            assertParamExists('createIdentityScopes', 'identityScope', identityScope)
            const localVarPath = `/identity/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteIdentityScopes: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('deleteIdentityScopes', 'requestBody', requestBody)
            const localVarPath = `/identity/scopes`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteIdentityScopes: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteIdentityScopes', 'requestBody', requestBody)
            const localVarPath = `/identity/scopes/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingIdentityScopes: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/identity/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<IdentityScope>} identityScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkIdentityScopes: async (identityScope: Array<IdentityScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'identityScope' is not null or undefined
            assertParamExists('unlinkIdentityScopes', 'identityScope', identityScope)
            const localVarPath = `/identity/scopes`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<IdentityScope>} identityScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateIdentityScopes: async (identityScope: Array<IdentityScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'identityScope' is not null or undefined
            assertParamExists('updateIdentityScopes', 'identityScope', identityScope)
            const localVarPath = `/identity/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * IdentityScopeApi - functional programming interface
 * @export
 */
export const IdentityScopeApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = IdentityScopeApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countIdentityScopes(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countIdentityScopes(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<IdentityScope>} identityScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createIdentityScopes(identityScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteIdentityScopes(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteIdentityScopes(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteIdentityScopes(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteIdentityScopes(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getIdentityScope(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<IdentityScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getIdentityScope(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingIdentityScopes(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfIdentityScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingIdentityScopes(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchIdentityScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<IdentityScope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchIdentityScopes(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<IdentityScope>} identityScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkIdentityScopes(identityScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<IdentityScope>} identityScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<string>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateIdentityScopes(identityScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * IdentityScopeApi - factory interface
 * @export
 */
export const IdentityScopeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = IdentityScopeApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countIdentityScopes(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countIdentityScopes(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новые объекты
         * @param {Array<IdentityScope>} identityScope Список новых объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createIdentityScopes(identityScope: Array<IdentityScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.createIdentityScopes(identityScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteIdentityScopes(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.deleteIdentityScopes(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объекты по их идентификаторам
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteIdentityScopes(requestBody: Array<string>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.forceDeleteIdentityScopes(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getIdentityScope(id: string, expand?: string, options?: any): AxiosPromise<IdentityScope> {
            return localVarFp.getIdentityScope(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingIdentityScopes(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfIdentityScope> {
            return localVarFp.pagingIdentityScopes(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchIdentityScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<IdentityScope>> {
            return localVarFp.searchIdentityScopes(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объектов
         * @param {Array<IdentityScope>} identityScope Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkIdentityScopes(identityScope: Array<IdentityScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.unlinkIdentityScopes(identityScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объекты
         * @param {Array<IdentityScope>} identityScope Список объектов
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateIdentityScopes(identityScope: Array<IdentityScope>, options?: any): AxiosPromise<Array<string>> {
            return localVarFp.updateIdentityScopes(identityScope, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новые объекты
     * @param {Array<IdentityScope>} identityScope Список новых объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof IdentityScopeApi
     */
    public createIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig) {
        return IdentityScopeApiFp(this.configuration).createIdentityScopes(identityScope, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по их идентификаторам
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof IdentityScopeApi
     */
    public deleteIdentityScopes(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return IdentityScopeApiFp(this.configuration).deleteIdentityScopes(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объектов
     * @param {Array<IdentityScope>} identityScope Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof IdentityScopeApi
     */
    public unlinkIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig) {
        return IdentityScopeApiFp(this.configuration).unlinkIdentityScopes(identityScope, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объекты
     * @param {Array<IdentityScope>} identityScope Список объектов
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof IdentityScopeApi
     */
    public updateIdentityScopes(identityScope: Array<IdentityScope>, options?: AxiosRequestConfig) {
        return IdentityScopeApiFp(this.configuration).updateIdentityScopes(identityScope, 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.
         * @deprecated
         * @throws {RequiredError}
         */
        countLinks: async (schemaParent: string, parentId: string, schemaChild: string, query?: string, options: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Связывает документы с предварительной проверкой такой возможности, исходя из бизнес-модели данных
         * @param {string} schema Схема документа
         * @param {DocumentLinkDTO} documentLinkDTO Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        linkDocuments: async (schema: string, documentLinkDTO: DocumentLinkDTO, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'schema' is not null or undefined
            assertParamExists('linkDocuments', 'schema', schema)
            // verify required parameter 'documentLinkDTO' is not null or undefined
            assertParamExists('linkDocuments', 'documentLinkDTO', documentLinkDTO)
            const localVarPath = `/links/link/{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;


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

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

            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: AxiosRequestConfig = {}): 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);
            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: AxiosRequestConfig = {}): 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);
            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.
         * @deprecated
         * @throws {RequiredError}
         */
        async countLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, options?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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);
        },
        /**
         * 
         * @summary Связывает документы с предварительной проверкой такой возможности, исходя из бизнес-модели данных
         * @param {string} schema Схема документа
         * @param {DocumentLinkDTO} documentLinkDTO Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async linkDocuments(schema: string, documentLinkDTO: DocumentLinkDTO, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.linkDocuments(schema, documentLinkDTO, 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?: AxiosRequestConfig): 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?: AxiosRequestConfig): 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.
         * @deprecated
         * @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));
        },
        /**
         * 
         * @summary Связывает документы с предварительной проверкой такой возможности, исходя из бизнес-модели данных
         * @param {string} schema Схема документа
         * @param {DocumentLinkDTO} documentLinkDTO Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        linkDocuments(schema: string, documentLinkDTO: DocumentLinkDTO, options?: any): AxiosPromise<Response> {
            return localVarFp.linkDocuments(schema, documentLinkDTO, 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.
     * @deprecated
     * @throws {RequiredError}
     * @memberof LinksApi
     */
    public countLinks(schemaParent: string, parentId: string, schemaChild: string, query?: string, options?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        return LinksApiFp(this.configuration).findLinks(schemaParent, parentId, schemaChild, id, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Связывает документы с предварительной проверкой такой возможности, исходя из бизнес-модели данных
     * @param {string} schema Схема документа
     * @param {DocumentLinkDTO} documentLinkDTO Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof LinksApi
     */
    public linkDocuments(schema: string, documentLinkDTO: DocumentLinkDTO, options?: AxiosRequestConfig) {
        return LinksApiFp(this.configuration).linkDocuments(schema, documentLinkDTO, 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?: AxiosRequestConfig) {
        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?: AxiosRequestConfig) {
        return LinksApiFp(this.configuration).searchLinks(schemaParent, parentId, schemaChild, query, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * NotificationsApi - axios parameter creator
 * @export
 */
export const NotificationsApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countNotifications: async (handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/notifications/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Notification>} notification Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createNotification: async (notification: Array<Notification>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'notification' is not null or undefined
            assertParamExists('createNotification', 'notification', notification)
            const localVarPath = `/notifications`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteNotification: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteNotification', 'requestBody', requestBody)
            const localVarPath = `/notifications/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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}
         */
        pagingNotifications: async (handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/notifications`;
            // 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 (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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchNotifications: async (handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/notifications/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Notification>} notification Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkNotification: async (notification: Array<Notification>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'notification' is not null or undefined
            assertParamExists('unlinkNotification', 'notification', notification)
            const localVarPath = `/notifications`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Notification>} notification Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateNotification: async (notification: Array<Notification>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'notification' is not null or undefined
            assertParamExists('updateNotification', 'notification', notification)
            const localVarPath = `/notifications`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * NotificationsApi - functional programming interface
 * @export
 */
export const NotificationsApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = NotificationsApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countNotifications(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Notification>} notification Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createNotification(notification: Array<Notification>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createNotification(notification, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteNotification(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteNotification(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteNotification(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteNotification(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getNotification(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Notification>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getNotification(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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 pagingNotifications(handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfNotification>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingNotifications(handler, page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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 searchNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Notification>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchNotifications(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Notification>} notification Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkNotification(notification: Array<Notification>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkNotification(notification, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Notification>} notification Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateNotification(notification: Array<Notification>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateNotification(notification, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * NotificationsApi - factory interface
 * @export
 */
export const NotificationsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = NotificationsApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countNotifications(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Notification>} notification Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createNotification(notification: Array<Notification>, options?: any): AxiosPromise<Response> {
            return localVarFp.createNotification(notification, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteNotification(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteNotification(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteNotification(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteNotification(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getNotification(id: string, expand?: string, options?: any): AxiosPromise<Notification> {
            return localVarFp.getNotification(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [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}
         */
        pagingNotifications(handler?: 'my' | 'managed' | 'myRegion', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfNotification> {
            return localVarFp.pagingNotifications(handler, page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Notification>> {
            return localVarFp.searchNotifications(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Notification>} notification Объект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkNotification(notification: Array<Notification>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkNotification(notification, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Notification>} notification Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateNotification(notification: Array<Notification>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateNotification(notification, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * NotificationsApi - object-oriented interface
 * @export
 * @class NotificationsApi
 * @extends {BaseAPI}
 */
export class NotificationsApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает количество объектов
     * @param {'my' | 'managed' | 'myRegion'} [handler] Тип handler который надо активировать
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof NotificationsApi
     */
    public countNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).countNotifications(handler, query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Notification>} notification Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof NotificationsApi
     */
    public createNotification(notification: Array<Notification>, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).createNotification(notification, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof NotificationsApi
     */
    public deleteNotification(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).deleteNotification(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

    /**
     * Возвращает список объектов без пейджинга.
     * @summary Возвращает список объектов
     * @param {'my' | 'managed' | 'myRegion'} [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 NotificationsApi
     */
    public searchNotifications(handler?: 'my' | 'managed' | 'myRegion', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).searchNotifications(handler, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Notification>} notification Объект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof NotificationsApi
     */
    public unlinkNotification(notification: Array<Notification>, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).unlinkNotification(notification, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Notification>} notification Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof NotificationsApi
     */
    public updateNotification(notification: Array<Notification>, options?: AxiosRequestConfig) {
        return NotificationsApiFp(this.configuration).updateNotification(notification, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * OrganizationApi - axios parameter creator
 * @export
 */
export const OrganizationApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countOrganizations: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/organizations/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Organization>} organization Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrganization: async (organization: Array<Organization>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'organization' is not null or undefined
            assertParamExists('createOrganization', 'organization', organization)
            const localVarPath = `/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: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteOrganization: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('deleteOrganization', 'requestBody', requestBody)
            const localVarPath = `/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: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteOrganization: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteOrganization', 'requestBody', requestBody)
            const localVarPath = `/organizations/force`;
            // 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;


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getOrganizationAccountsByRole: async (id: string, roleId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getOrganizationAccountsByRole', 'id', id)
            // verify required parameter 'roleId' is not null or undefined
            assertParamExists('getOrganizationAccountsByRole', 'roleId', roleId)
            const localVarPath = `/organizations/{id}/roles/{roleId}/accounts`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"roleId"}}`, encodeURIComponent(String(roleId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getOrganizationPersonByRoles: async (id: string, roleId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getOrganizationPersonByRoles', 'id', id)
            // verify required parameter 'roleId' is not null or undefined
            assertParamExists('getOrganizationPersonByRoles', 'roleId', roleId)
            const localVarPath = `/organizations/{id}/roles/{roleId}/persons`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"roleId"}}`, encodeURIComponent(String(roleId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain: async (id: string, domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'id', id)
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'domainId', domainId)
            const localVarPath = `/persons/{id}/accountsInDomain/{domainId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization: async (id: string, orgId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'id', id)
            // verify required parameter 'orgId' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'orgId', orgId)
            const localVarPath = `/persons/{id}/accountsInOrganization/{orgId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"orgId"}}`, encodeURIComponent(String(orgId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

            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}
         */
        pagingOrganizations: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/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;

            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);
            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}
         */
        searchOrganizations: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/organizations/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Organization>} organization Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkOrganization: async (organization: Array<Organization>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'organization' is not null or undefined
            assertParamExists('unlinkOrganization', 'organization', organization)
            const localVarPath = `/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: 'PATCH', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Organization>} organization Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateOrganization: async (organization: Array<Organization>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'organization' is not null or undefined
            assertParamExists('updateOrganization', 'organization', organization)
            const localVarPath = `/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: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


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

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

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

/**
 * OrganizationApi - functional programming interface
 * @export
 */
export const OrganizationApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = OrganizationApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countOrganizations(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countOrganizations(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Organization>} organization Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createOrganization(organization: Array<Organization>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createOrganization(organization, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteOrganization(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteOrganization(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteOrganization(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteOrganization(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getOrganization(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Organization>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganization(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getOrganizationAccountsByRole(id: string, roleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Person>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganizationAccountsByRole(id, roleId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getOrganizationPersonByRoles(id: string, roleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Person>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganizationPersonByRoles(id, roleId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInDomain(id, domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInOrganization(id, orgId, 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 pagingOrganizations(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfOrganization>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingOrganizations(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 searchOrganizations(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Organization>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchOrganizations(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Organization>} organization Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkOrganization(organization: Array<Organization>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkOrganization(organization, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Organization>} organization Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateOrganization(organization: Array<Organization>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateOrganization(organization, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * OrganizationApi - factory interface
 * @export
 */
export const OrganizationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = OrganizationApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countOrganizations(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countOrganizations(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Organization>} organization Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrganization(organization: Array<Organization>, options?: any): AxiosPromise<Response> {
            return localVarFp.createOrganization(organization, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteOrganization(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteOrganization(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteOrganization(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteOrganization(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getOrganization(id: string, expand?: string, options?: any): AxiosPromise<Organization> {
            return localVarFp.getOrganization(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getOrganizationAccountsByRole(id: string, roleId: string, options?: any): AxiosPromise<Array<Person>> {
            return localVarFp.getOrganizationAccountsByRole(id, roleId, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} id 
         * @param {string} roleId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getOrganizationPersonByRoles(id: string, roleId: string, options?: any): AxiosPromise<Array<Person>> {
            return localVarFp.getOrganizationPersonByRoles(id, roleId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain(id: string, domainId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInDomain(id, domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization(id: string, orgId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInOrganization(id, orgId, 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}
         */
        pagingOrganizations(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfOrganization> {
            return localVarFp.pagingOrganizations(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}
         */
        searchOrganizations(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Organization>> {
            return localVarFp.searchOrganizations(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Organization>} organization Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkOrganization(organization: Array<Organization>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkOrganization(organization, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Organization>} organization Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateOrganization(organization: Array<Organization>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateOrganization(organization, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Organization>} organization Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public createOrganization(organization: Array<Organization>, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).createOrganization(organization, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public deleteOrganization(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).deleteOrganization(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретном домене
     * @param {string} id 
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).getPersonAccountsInDomain(id, domainId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретной организации
     * @param {string} id 
     * @param {string} orgId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).getPersonAccountsInOrganization(id, orgId, 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 OrganizationApi
     */
    public pagingOrganizations(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).pagingOrganizations(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 OrganizationApi
     */
    public searchOrganizations(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).searchOrganizations(handler, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Organization>} organization Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public unlinkOrganization(organization: Array<Organization>, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).unlinkOrganization(organization, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Organization>} organization Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OrganizationApi
     */
    public updateOrganization(organization: Array<Organization>, options?: AxiosRequestConfig) {
        return OrganizationApiFp(this.configuration).updateOrganization(organization, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<Permission>} permission Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePermissionLinks: async (permission: Array<Permission>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'permission' is not null or undefined
            assertParamExists('deletePermissionLinks', 'permission', permission)
            const localVarPath = `/permissions`;
            // 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;


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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getPermissionCount: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/permissions/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPermissionPaging: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/permissions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Permission>} permission Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePermission: async (permission: Array<Permission>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'permission' is not null or undefined
            assertParamExists('updatePermission', 'permission', permission)
            const localVarPath = `/permissions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * PermissionApi - functional programming interface
 * @export
 */
export const PermissionApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PermissionApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Permission>} permission Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPermission(permission: Array<Permission>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPermission(permission, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePermissionById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePermissionById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Permission>} permission Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePermissionLinks(permission: Array<Permission>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePermissionLinks(permission, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeletePermissionById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeletePermissionById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllPermissions(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Permission>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllPermissions(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPermissionById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Permission>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissionById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async getPermissionCount(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissionCount(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPermissionPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfPermission>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissionPaging(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Permission>} permission Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePermission(permission: Array<Permission>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePermission(permission, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PermissionApi - factory interface
 * @export
 */
export const PermissionApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PermissionApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Permission>} permission Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPermission(permission: Array<Permission>, options?: any): AxiosPromise<Response> {
            return localVarFp.createPermission(permission, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePermissionById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deletePermissionById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Permission>} permission Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePermissionLinks(permission: Array<Permission>, options?: any): AxiosPromise<Response> {
            return localVarFp.deletePermissionLinks(permission, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeletePermissionById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeletePermissionById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPermissions(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Permission>> {
            return localVarFp.getAllPermissions(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPermissionById(id: string, expand?: string, options?: any): AxiosPromise<Permission> {
            return localVarFp.getPermissionById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getPermissionCount(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.getPermissionCount(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPermissionPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfPermission> {
            return localVarFp.getPermissionPaging(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Permission>} permission Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePermission(permission: Array<Permission>, options?: any): AxiosPromise<Response> {
            return localVarFp.updatePermission(permission, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApi
     */
    public deletePermissionById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return PermissionApiFp(this.configuration).deletePermissionById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Permission>} permission Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApi
     */
    public deletePermissionLinks(permission: Array<Permission>, options?: AxiosRequestConfig) {
        return PermissionApiFp(this.configuration).deletePermissionLinks(permission, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof PermissionApi
     */
    public getPermissionCount(query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return PermissionApiFp(this.configuration).getPermissionCount(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Permission>} permission Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApi
     */
    public updatePermission(permission: Array<Permission>, options?: AxiosRequestConfig) {
        return PermissionApiFp(this.configuration).updatePermission(permission, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

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

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

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

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


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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getPermissionTypesCount: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/permissions/types/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPermissionTypesPaging: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/permissions/types`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<PermissionType>} permissionType Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClaimType: async (permissionType: Array<PermissionType>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'permissionType' is not null or undefined
            assertParamExists('unlinkClaimType', 'permissionType', permissionType)
            const localVarPath = `/permissions/types`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<PermissionType>} permissionType Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateClaimType: async (permissionType: Array<PermissionType>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'permissionType' is not null or undefined
            assertParamExists('updateClaimType', 'permissionType', permissionType)
            const localVarPath = `/permissions/types`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * PermissionTypeApi - functional programming interface
 * @export
 */
export const PermissionTypeApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PermissionTypeApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<PermissionType>} permissionType Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createClaimType(permissionType: Array<PermissionType>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createClaimType(permissionType, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteClaimTypeById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteClaimTypeById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async findPermissionTypesById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PermissionType>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.findPermissionTypesById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteClaimTypeById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteClaimTypeById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllPermissionTypes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PermissionType>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllPermissionTypes(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async getPermissionTypesCount(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissionTypesCount(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPermissionTypesPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfPermissionType>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissionTypesPaging(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<PermissionType>} permissionType Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkClaimType(permissionType: Array<PermissionType>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkClaimType(permissionType, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<PermissionType>} permissionType Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateClaimType(permissionType: Array<PermissionType>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateClaimType(permissionType, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PermissionTypeApi - factory interface
 * @export
 */
export const PermissionTypeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PermissionTypeApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<PermissionType>} permissionType Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createClaimType(permissionType: Array<PermissionType>, options?: any): AxiosPromise<Response> {
            return localVarFp.createClaimType(permissionType, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteClaimTypeById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteClaimTypeById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findPermissionTypesById(id: string, expand?: string, options?: any): AxiosPromise<PermissionType> {
            return localVarFp.findPermissionTypesById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteClaimTypeById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteClaimTypeById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPermissionTypes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<PermissionType>> {
            return localVarFp.getAllPermissionTypes(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getPermissionTypesCount(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.getPermissionTypesCount(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPermissionTypesPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfPermissionType> {
            return localVarFp.getPermissionTypesPaging(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<PermissionType>} permissionType Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkClaimType(permissionType: Array<PermissionType>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkClaimType(permissionType, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<PermissionType>} permissionType Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateClaimType(permissionType: Array<PermissionType>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateClaimType(permissionType, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionTypeApi
     */
    public deleteClaimTypeById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return PermissionTypeApiFp(this.configuration).deleteClaimTypeById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof PermissionTypeApi
     */
    public getPermissionTypesCount(query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return PermissionTypeApiFp(this.configuration).getPermissionTypesCount(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<PermissionType>} permissionType Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionTypeApi
     */
    public unlinkClaimType(permissionType: Array<PermissionType>, options?: AxiosRequestConfig) {
        return PermissionTypeApiFp(this.configuration).unlinkClaimType(permissionType, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<PermissionType>} permissionType Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionTypeApi
     */
    public updateClaimType(permissionType: Array<PermissionType>, options?: AxiosRequestConfig) {
        return PermissionTypeApiFp(this.configuration).updateClaimType(permissionType, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PersonApi - axios parameter creator
 * @export
 */
export const PersonApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countPersons: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/persons/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Person>} person Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPerson: async (person: Array<Person>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'person' is not null or undefined
            assertParamExists('createPerson', 'person', person)
            const localVarPath = `/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeletePerson: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeletePerson', 'requestBody', requestBody)
            const localVarPath = `/persons/force`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 Возвращает localCredential персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCredentials: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getCredentials', 'id', id)
            const localVarPath = `/persons/{id}/credentials`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain: async (id: string, domainId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'id', id)
            // verify required parameter 'domainId' is not null or undefined
            assertParamExists('getPersonAccountsInDomain', 'domainId', domainId)
            const localVarPath = `/persons/{id}/accountsInDomain/{domainId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"domainId"}}`, encodeURIComponent(String(domainId)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization: async (id: string, orgId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'id', id)
            // verify required parameter 'orgId' is not null or undefined
            assertParamExists('getPersonAccountsInOrganization', 'orgId', orgId)
            const localVarPath = `/persons/{id}/accountsInOrganization/{orgId}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
                .replace(`{${"orgId"}}`, encodeURIComponent(String(orgId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingPersons: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

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

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Person>} person Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePerson: async (person: Array<Person>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'person' is not null or undefined
            assertParamExists('updatePerson', 'person', person)
            const localVarPath = `/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * PersonApi - functional programming interface
 * @export
 */
export const PersonApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PersonApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countPersons(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countPersons(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Person>} person Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPerson(person: Array<Person>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPerson(person, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePerson(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePerson(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeletePerson(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeletePerson(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает localCredential персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getCredentials(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<LocalCredentialTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getCredentials(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPerson(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Person>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPerson(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsByPersonId(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Account>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsByPersonId(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInDomain(id, domainId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AccountTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAccountsInOrganization(id, orgId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает фото персоны по идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPhoto(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPhoto(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingPersons(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfPerson>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingPersons(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchPersons(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Person>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchPersons(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Person>} person Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkPerson(person: Array<Person>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkPerson(person, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Person>} person Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePerson(person: Array<Person>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePerson(person, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PersonApi - factory interface
 * @export
 */
export const PersonApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PersonApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countPersons(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countPersons(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Person>} person Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPerson(person: Array<Person>, options?: any): AxiosPromise<Response> {
            return localVarFp.createPerson(person, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePerson(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deletePerson(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeletePerson(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeletePerson(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает localCredential персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCredentials(id: string, options?: any): AxiosPromise<Array<LocalCredentialTO>> {
            return localVarFp.getCredentials(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPerson(id: string, expand?: string, options?: any): AxiosPromise<Person> {
            return localVarFp.getPerson(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsByPersonId(id: string, options?: any): AxiosPromise<Array<Account>> {
            return localVarFp.getPersonAccountsByPersonId(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретном домене
         * @param {string} id 
         * @param {string} domainId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInDomain(id: string, domainId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInDomain(id, domainId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает список аккаунтов персоны в конкретной организации
         * @param {string} id 
         * @param {string} orgId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonAccountsInOrganization(id: string, orgId: string, options?: any): AxiosPromise<Array<AccountTO>> {
            return localVarFp.getPersonAccountsInOrganization(id, orgId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает фото персоны по идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPhoto(id: string, options?: any): AxiosPromise<void> {
            return localVarFp.getPhoto(id, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingPersons(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfPerson> {
            return localVarFp.pagingPersons(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchPersons(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Person>> {
            return localVarFp.searchPersons(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Person>} person Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkPerson(person: Array<Person>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkPerson(person, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Person>} person Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePerson(person: Array<Person>, options?: any): AxiosPromise<Response> {
            return localVarFp.updatePerson(person, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Person>} person Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public createPerson(person: Array<Person>, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).createPerson(person, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public deletePerson(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).deletePerson(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Возвращает localCredential персоны
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public getCredentials(id: string, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).getCredentials(id, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Возвращает список аккаунтов персоны
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public getPersonAccountsByPersonId(id: string, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).getPersonAccountsByPersonId(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретном домене
     * @param {string} id 
     * @param {string} domainId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public getPersonAccountsInDomain(id: string, domainId: string, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).getPersonAccountsInDomain(id, domainId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает список аккаунтов персоны в конкретной организации
     * @param {string} id 
     * @param {string} orgId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public getPersonAccountsInOrganization(id: string, orgId: string, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).getPersonAccountsInOrganization(id, orgId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает фото персоны по идентификатору
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public getPhoto(id: string, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).getPhoto(id, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Person>} person Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public unlinkPerson(person: Array<Person>, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).unlinkPerson(person, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Person>} person Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonApi
     */
    public updatePerson(person: Array<Person>, options?: AxiosRequestConfig) {
        return PersonApiFp(this.configuration).updatePerson(person, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PersonProfileApi - axios parameter creator
 * @export
 */
export const PersonProfileApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создает или изменяет профиль персоны и привязывает к сущности Person, которая вычисляется по информации аккаунта из токена
         * @param {PersonProfile} personProfile Профиль персоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrUpdatePersonProfile: async (personProfile: PersonProfile, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'personProfile' is not null or undefined
            assertParamExists('createOrUpdatePersonProfile', 'personProfile', personProfile)
            const localVarPath = `/profiles/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<PersonProfile>} personProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPersonProfile: async (personProfile: Array<PersonProfile>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'personProfile' is not null or undefined
            assertParamExists('createPersonProfile', 'personProfile', personProfile)
            const localVarPath = `/profiles/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeletePersonProfile: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeletePersonProfile', 'requestBody', requestBody)
            const localVarPath = `/profiles/persons/force`;
            // 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;


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 Возвращает объект PersonProfile по его идентификатору. Обьект ищется на основании данных по пользователю из токена
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonProfile: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/profiles/persons`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по заданному ID сущности Person связанной с PersonProfile
         * @param {string} personId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonProfileByPersonId: async (personId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'personId' is not null or undefined
            assertParamExists('getPersonProfileByPersonId', 'personId', personId)
            const localVarPath = `/profiles/persons/person/{personId}`
                .replace(`{${"personId"}}`, encodeURIComponent(String(personId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет профиль персоны
         * @param {Array<PersonProfile>} personProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePersonProfile: async (personProfile: Array<PersonProfile>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'personProfile' is not null or undefined
            assertParamExists('updatePersonProfile', 'personProfile', personProfile)
            const localVarPath = `/profiles/persons/update`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * PersonProfileApi - functional programming interface
 * @export
 */
export const PersonProfileApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PersonProfileApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает или изменяет профиль персоны и привязывает к сущности Person, которая вычисляется по информации аккаунта из токена
         * @param {PersonProfile} personProfile Профиль персоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createOrUpdatePersonProfile(personProfile: PersonProfile, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createOrUpdatePersonProfile(personProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<PersonProfile>} personProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPersonProfile(personProfile: Array<PersonProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPersonProfile(personProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePersonProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePersonProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeletePersonProfile(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeletePersonProfile(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по его идентификатору. Обьект ищется на основании данных по пользователю из токена
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonProfile(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonProfile>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonProfile(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonProfileById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonProfile>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonProfileById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по заданному ID сущности Person связанной с PersonProfile
         * @param {string} personId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPersonProfileByPersonId(personId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonProfile>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonProfileByPersonId(personId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет профиль персоны
         * @param {Array<PersonProfile>} personProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePersonProfile(personProfile: Array<PersonProfile>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePersonProfile(personProfile, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PersonProfileApi - factory interface
 * @export
 */
export const PersonProfileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PersonProfileApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает или изменяет профиль персоны и привязывает к сущности Person, которая вычисляется по информации аккаунта из токена
         * @param {PersonProfile} personProfile Профиль персоны
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrUpdatePersonProfile(personProfile: PersonProfile, options?: any): AxiosPromise<Response> {
            return localVarFp.createOrUpdatePersonProfile(personProfile, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<PersonProfile>} personProfile Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPersonProfile(personProfile: Array<PersonProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.createPersonProfile(personProfile, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePersonProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deletePersonProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeletePersonProfile(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeletePersonProfile(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по его идентификатору. Обьект ищется на основании данных по пользователю из токена
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonProfile(options?: any): AxiosPromise<PersonProfile> {
            return localVarFp.getPersonProfile(options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonProfileById(id: string, expand?: string, options?: any): AxiosPromise<PersonProfile> {
            return localVarFp.getPersonProfileById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект PersonProfile по заданному ID сущности Person связанной с PersonProfile
         * @param {string} personId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPersonProfileByPersonId(personId: string, options?: any): AxiosPromise<PersonProfile> {
            return localVarFp.getPersonProfileByPersonId(personId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет профиль персоны
         * @param {Array<PersonProfile>} personProfile Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePersonProfile(personProfile: Array<PersonProfile>, options?: any): AxiosPromise<Response> {
            return localVarFp.updatePersonProfile(personProfile, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * PersonProfileApi - object-oriented interface
 * @export
 * @class PersonProfileApi
 * @extends {BaseAPI}
 */
export class PersonProfileApi extends BaseAPI {
    /**
     * 
     * @summary Создает или изменяет профиль персоны и привязывает к сущности Person, которая вычисляется по информации аккаунта из токена
     * @param {PersonProfile} personProfile Профиль персоны
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public createOrUpdatePersonProfile(personProfile: PersonProfile, options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).createOrUpdatePersonProfile(personProfile, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<PersonProfile>} personProfile Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public createPersonProfile(personProfile: Array<PersonProfile>, options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).createPersonProfile(personProfile, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public deletePersonProfile(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).deletePersonProfile(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Возвращает объект PersonProfile по его идентификатору. Обьект ищется на основании данных по пользователю из токена
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public getPersonProfile(options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).getPersonProfile(options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Возвращает объект PersonProfile по заданному ID сущности Person связанной с PersonProfile
     * @param {string} personId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public getPersonProfileByPersonId(personId: string, options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).getPersonProfileByPersonId(personId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет профиль персоны
     * @param {Array<PersonProfile>} personProfile Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PersonProfileApi
     */
    public updatePersonProfile(personProfile: Array<PersonProfile>, options?: AxiosRequestConfig) {
        return PersonProfileApiFp(this.configuration).updatePersonProfile(personProfile, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * PhotoApi - axios parameter creator
 * @export
 */
export const PhotoApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает фото персоны по идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPhoto: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getPhoto', 'id', id)
            const localVarPath = `/persons/{id}/photo`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

/**
 * PhotoApi - functional programming interface
 * @export
 */
export const PhotoApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = PhotoApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает фото персоны по идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPhoto(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPhoto(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * PhotoApi - factory interface
 * @export
 */
export const PhotoApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = PhotoApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает фото персоны по идентификатору
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPhoto(id: string, options?: any): AxiosPromise<void> {
            return localVarFp.getPhoto(id, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * PhotoApi - object-oriented interface
 * @export
 * @class PhotoApi
 * @extends {BaseAPI}
 */
export class PhotoApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает фото персоны по идентификатору
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PhotoApi
     */
    public getPhoto(id: string, options?: AxiosRequestConfig) {
        return PhotoApiFp(this.configuration).getPhoto(id, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ReconciliationApi - axios parameter creator
 * @export
 */
export const ReconciliationApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * ### Реконсиляция (дамп) коллекции документов в Kafka топик. #### Операция не блокирующая - реконсиляция запускается в фоне. #### Название топика задается по имени коллекции - например idmv2.domain.reconciliation. #### Наполнение топика происходит событиями такого же вида как в топик *.created. #### Соответственно на топик idmv2.domain.reconciliation должны быть выданы права на запись. #### АПИ не проверяет наличие прав на топике и не выдаст ошибку в случае отсутствия прав на запись в топик. 
         * @param {string} collection Имя коллекции - например domain
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        reconcileCollectionToKafkaV1: async (collection: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'collection' is not null or undefined
            assertParamExists('reconcileCollectionToKafkaV1', 'collection', collection)
            const localVarPath = `/reconcile/{collection}/to/kafka/v1`
                .replace(`{${"collection"}}`, encodeURIComponent(String(collection)));
            // 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;


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

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

/**
 * ReconciliationApi - functional programming interface
 * @export
 */
export const ReconciliationApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ReconciliationApiAxiosParamCreator(configuration)
    return {
        /**
         * ### Реконсиляция (дамп) коллекции документов в Kafka топик. #### Операция не блокирующая - реконсиляция запускается в фоне. #### Название топика задается по имени коллекции - например idmv2.domain.reconciliation. #### Наполнение топика происходит событиями такого же вида как в топик *.created. #### Соответственно на топик idmv2.domain.reconciliation должны быть выданы права на запись. #### АПИ не проверяет наличие прав на топике и не выдаст ошибку в случае отсутствия прав на запись в топик. 
         * @param {string} collection Имя коллекции - например domain
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async reconcileCollectionToKafkaV1(collection: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ReconcileMetaResponseDTO>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.reconcileCollectionToKafkaV1(collection, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ReconciliationApi - factory interface
 * @export
 */
export const ReconciliationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ReconciliationApiFp(configuration)
    return {
        /**
         * ### Реконсиляция (дамп) коллекции документов в Kafka топик. #### Операция не блокирующая - реконсиляция запускается в фоне. #### Название топика задается по имени коллекции - например idmv2.domain.reconciliation. #### Наполнение топика происходит событиями такого же вида как в топик *.created. #### Соответственно на топик idmv2.domain.reconciliation должны быть выданы права на запись. #### АПИ не проверяет наличие прав на топике и не выдаст ошибку в случае отсутствия прав на запись в топик. 
         * @param {string} collection Имя коллекции - например domain
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        reconcileCollectionToKafkaV1(collection: string, options?: any): AxiosPromise<Array<ReconcileMetaResponseDTO>> {
            return localVarFp.reconcileCollectionToKafkaV1(collection, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ReconciliationApi - object-oriented interface
 * @export
 * @class ReconciliationApi
 * @extends {BaseAPI}
 */
export class ReconciliationApi extends BaseAPI {
    /**
     * ### Реконсиляция (дамп) коллекции документов в Kafka топик. #### Операция не блокирующая - реконсиляция запускается в фоне. #### Название топика задается по имени коллекции - например idmv2.domain.reconciliation. #### Наполнение топика происходит событиями такого же вида как в топик *.created. #### Соответственно на топик idmv2.domain.reconciliation должны быть выданы права на запись. #### АПИ не проверяет наличие прав на топике и не выдаст ошибку в случае отсутствия прав на запись в топик. 
     * @param {string} collection Имя коллекции - например domain
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReconciliationApi
     */
    public reconcileCollectionToKafkaV1(collection: string, options?: AxiosRequestConfig) {
        return ReconciliationApiFp(this.configuration).reconcileCollectionToKafkaV1(collection, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * RegionApi - axios parameter creator
 * @export
 */
export const RegionApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countRegions: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/regions/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Region>} region Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createRegion: async (region: Array<Region>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'region' is not null or undefined
            assertParamExists('createRegion', 'region', region)
            const localVarPath = `/regions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteRegion: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteRegion', 'requestBody', requestBody)
            const localVarPath = `/regions/force`;
            // 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;


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

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

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

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

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


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

            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}
         */
        pagingRegions: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/regions`;
            // 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 (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);
            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}
         */
        searchRegions: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/regions/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Region>} region Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkRegion: async (region: Array<Region>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'region' is not null or undefined
            assertParamExists('unlinkRegion', 'region', region)
            const localVarPath = `/regions`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Region>} region Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRegion: async (region: Array<Region>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'region' is not null or undefined
            assertParamExists('updateRegion', 'region', region)
            const localVarPath = `/regions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * RegionApi - functional programming interface
 * @export
 */
export const RegionApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RegionApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countRegions(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countRegions(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Region>} region Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createRegion(region: Array<Region>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createRegion(region, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRegion(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRegion(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteRegion(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteRegion(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRegion(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Region>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRegion(id, expand, 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 pagingRegions(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfRegion>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingRegions(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 searchRegions(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Region>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchRegions(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Region>} region Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkRegion(region: Array<Region>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkRegion(region, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Region>} region Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateRegion(region: Array<Region>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateRegion(region, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RegionApi - factory interface
 * @export
 */
export const RegionApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RegionApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countRegions(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countRegions(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Region>} region Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createRegion(region: Array<Region>, options?: any): AxiosPromise<Response> {
            return localVarFp.createRegion(region, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRegion(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteRegion(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteRegion(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteRegion(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRegion(id: string, expand?: string, options?: any): AxiosPromise<Region> {
            return localVarFp.getRegion(id, expand, 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}
         */
        pagingRegions(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfRegion> {
            return localVarFp.pagingRegions(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}
         */
        searchRegions(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Region>> {
            return localVarFp.searchRegions(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Region>} region Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkRegion(region: Array<Region>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkRegion(region, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Region>} region Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRegion(region: Array<Region>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateRegion(region, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Region>} region Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RegionApi
     */
    public createRegion(region: Array<Region>, options?: AxiosRequestConfig) {
        return RegionApiFp(this.configuration).createRegion(region, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RegionApi
     */
    public deleteRegion(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return RegionApiFp(this.configuration).deleteRegion(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Region>} region Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RegionApi
     */
    public unlinkRegion(region: Array<Region>, options?: AxiosRequestConfig) {
        return RegionApiFp(this.configuration).unlinkRegion(region, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Region>} region Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RegionApi
     */
    public updateRegion(region: Array<Region>, options?: AxiosRequestConfig) {
        return RegionApiFp(this.configuration).updateRegion(region, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ResourceApi - axios parameter creator
 * @export
 */
export const ResourceApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countResources: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Resource>} resource Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createResource: async (resource: Array<Resource>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resource' is not null or undefined
            assertParamExists('createResource', 'resource', resource)
            const localVarPath = `/resources`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteResourceById: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteResourceById', 'requestBody', requestBody)
            const localVarPath = `/resources/force`;
            // 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;


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourcesList: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Resource>} resource Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlink: async (resource: Array<Resource>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resource' is not null or undefined
            assertParamExists('unlink', 'resource', resource)
            const localVarPath = `/resources`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Resource>} resource Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResource: async (resource: Array<Resource>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resource' is not null or undefined
            assertParamExists('updateResource', 'resource', resource)
            const localVarPath = `/resources`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * ResourceApi - functional programming interface
 * @export
 */
export const ResourceApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ResourceApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countResources(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countResources(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Resource>} resource Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createResource(resource: Array<Resource>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createResource(resource, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteResourceById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteResourceById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteResourceById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteResourceById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllResources(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Resource>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllResources(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getResourceById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Resource>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourceById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getResourcesList(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfResource>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourcesList(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Resource>} resource Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlink(resource: Array<Resource>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlink(resource, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Resource>} resource Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateResource(resource: Array<Resource>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateResource(resource, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ResourceApi - factory interface
 * @export
 */
export const ResourceApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ResourceApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countResources(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countResources(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Resource>} resource Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createResource(resource: Array<Resource>, options?: any): AxiosPromise<Response> {
            return localVarFp.createResource(resource, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourceById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteResourceById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteResourceById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteResourceById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllResources(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Resource>> {
            return localVarFp.getAllResources(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourceById(id: string, expand?: string, options?: any): AxiosPromise<Resource> {
            return localVarFp.getResourceById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourcesList(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfResource> {
            return localVarFp.getResourcesList(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Resource>} resource Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlink(resource: Array<Resource>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlink(resource, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Resource>} resource Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResource(resource: Array<Resource>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateResource(resource, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<Resource>} resource Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceApi
     */
    public createResource(resource: Array<Resource>, options?: AxiosRequestConfig) {
        return ResourceApiFp(this.configuration).createResource(resource, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceApi
     */
    public deleteResourceById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ResourceApiFp(this.configuration).deleteResourceById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Resource>} resource Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceApi
     */
    public unlink(resource: Array<Resource>, options?: AxiosRequestConfig) {
        return ResourceApiFp(this.configuration).unlink(resource, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Resource>} resource Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceApi
     */
    public updateResource(resource: Array<Resource>, options?: AxiosRequestConfig) {
        return ResourceApiFp(this.configuration).updateResource(resource, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ResourcePolicyApi - axios parameter creator
 * @export
 */
export const ResourcePolicyApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countResourcePolicies: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources/policies/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<ResourcePolicy>} resourcePolicy Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createResourcePolicy: async (resourcePolicy: Array<ResourcePolicy>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resourcePolicy' is not null or undefined
            assertParamExists('createResourcePolicy', 'resourcePolicy', resourcePolicy)
            const localVarPath = `/resources/policies`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<ResourcePolicy>} resourcePolicy Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourcePolicyLinks: async (resourcePolicy: Array<ResourcePolicy>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resourcePolicy' is not null or undefined
            assertParamExists('deleteResourcePolicyLinks', 'resourcePolicy', resourcePolicy)
            const localVarPath = `/resources/policies`;
            // 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;


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

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

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


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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingResourcePolicies: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources/policies`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourcePolicy>} resourcePolicy Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResourcePolicy: async (resourcePolicy: Array<ResourcePolicy>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resourcePolicy' is not null or undefined
            assertParamExists('updateResourcePolicy', 'resourcePolicy', resourcePolicy)
            const localVarPath = `/resources/policies`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * ResourcePolicyApi - functional programming interface
 * @export
 */
export const ResourcePolicyApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ResourcePolicyApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countResourcePolicies(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countResourcePolicies(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<ResourcePolicy>} resourcePolicy Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createResourcePolicy(resourcePolicy, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteResourcePolicyById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteResourcePolicyById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<ResourcePolicy>} resourcePolicy Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteResourcePolicyLinks(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteResourcePolicyLinks(resourcePolicy, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteResourcePolicyById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteResourcePolicyById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getResourcePolicyById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ResourcePolicy>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourcePolicyById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pagingResourcePolicies(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfResourcePolicy>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingResourcePolicies(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async searchResourcePolicies(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ResourcePolicy>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchResourcePolicies(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourcePolicy>} resourcePolicy Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateResourcePolicy(resourcePolicy, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ResourcePolicyApi - factory interface
 * @export
 */
export const ResourcePolicyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ResourcePolicyApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countResourcePolicies(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countResourcePolicies(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<ResourcePolicy>} resourcePolicy Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: any): AxiosPromise<Response> {
            return localVarFp.createResourcePolicy(resourcePolicy, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourcePolicyById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteResourcePolicyById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<ResourcePolicy>} resourcePolicy Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourcePolicyLinks(resourcePolicy: Array<ResourcePolicy>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteResourcePolicyLinks(resourcePolicy, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteResourcePolicyById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteResourcePolicyById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourcePolicyById(id: string, expand?: string, options?: any): AxiosPromise<ResourcePolicy> {
            return localVarFp.getResourcePolicyById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pagingResourcePolicies(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfResourcePolicy> {
            return localVarFp.pagingResourcePolicies(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        searchResourcePolicies(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<ResourcePolicy>> {
            return localVarFp.searchResourcePolicies(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourcePolicy>} resourcePolicy Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateResourcePolicy(resourcePolicy, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<ResourcePolicy>} resourcePolicy Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourcePolicyApi
     */
    public createResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig) {
        return ResourcePolicyApiFp(this.configuration).createResourcePolicy(resourcePolicy, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourcePolicyApi
     */
    public deleteResourcePolicyById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ResourcePolicyApiFp(this.configuration).deleteResourcePolicyById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<ResourcePolicy>} resourcePolicy Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourcePolicyApi
     */
    public deleteResourcePolicyLinks(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig) {
        return ResourcePolicyApiFp(this.configuration).deleteResourcePolicyLinks(resourcePolicy, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<ResourcePolicy>} resourcePolicy Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourcePolicyApi
     */
    public updateResourcePolicy(resourcePolicy: Array<ResourcePolicy>, options?: AxiosRequestConfig) {
        return ResourcePolicyApiFp(this.configuration).updateResourcePolicy(resourcePolicy, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<ResourceScope>} resourceScope Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourceScopeLinks: async (resourceScope: Array<ResourceScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resourceScope' is not null or undefined
            assertParamExists('deleteResourceScopeLinks', 'resourceScope', resourceScope)
            const localVarPath = `/resources/scopes`;
            // 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;


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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getResourceScopeCount: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources/scopes/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourceScopePaging: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/resources/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourceScope>} resourceScope Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResourceScope: async (resourceScope: Array<ResourceScope>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'resourceScope' is not null or undefined
            assertParamExists('updateResourceScope', 'resourceScope', resourceScope)
            const localVarPath = `/resources/scopes`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * ResourceScopeApi - functional programming interface
 * @export
 */
export const ResourceScopeApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ResourceScopeApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<ResourceScope>} resourceScope Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createResourceScope(resourceScope: Array<ResourceScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createResourceScope(resourceScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteResourceScopeById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteResourceScopeById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<ResourceScope>} resourceScope Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteResourceScopeLinks(resourceScope: Array<ResourceScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteResourceScopeLinks(resourceScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteResourceScopeById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteResourceScopeById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllResourceScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ResourceScope>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllResourceScopes(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getResourceScopeById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ResourceScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourceScopeById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async getResourceScopeCount(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourceScopeCount(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getResourceScopePaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfResourceScope>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getResourceScopePaging(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourceScope>} resourceScope Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateResourceScope(resourceScope: Array<ResourceScope>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateResourceScope(resourceScope, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ResourceScopeApi - factory interface
 * @export
 */
export const ResourceScopeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ResourceScopeApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<ResourceScope>} resourceScope Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createResourceScope(resourceScope: Array<ResourceScope>, options?: any): AxiosPromise<Response> {
            return localVarFp.createResourceScope(resourceScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourceScopeById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteResourceScopeById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<ResourceScope>} resourceScope Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteResourceScopeLinks(resourceScope: Array<ResourceScope>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteResourceScopeLinks(resourceScope, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteResourceScopeById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteResourceScopeById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllResourceScopes(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<ResourceScope>> {
            return localVarFp.getAllResourceScopes(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourceScopeById(id: string, expand?: string, options?: any): AxiosPromise<ResourceScope> {
            return localVarFp.getResourceScopeById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getResourceScopeCount(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.getResourceScopeCount(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getResourceScopePaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfResourceScope> {
            return localVarFp.getResourceScopePaging(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<ResourceScope>} resourceScope Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateResourceScope(resourceScope: Array<ResourceScope>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateResourceScope(resourceScope, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceScopeApi
     */
    public deleteResourceScopeById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return ResourceScopeApiFp(this.configuration).deleteResourceScopeById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<ResourceScope>} resourceScope Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceScopeApi
     */
    public deleteResourceScopeLinks(resourceScope: Array<ResourceScope>, options?: AxiosRequestConfig) {
        return ResourceScopeApiFp(this.configuration).deleteResourceScopeLinks(resourceScope, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof ResourceScopeApi
     */
    public getResourceScopeCount(query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return ResourceScopeApiFp(this.configuration).getResourceScopeCount(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<ResourceScope>} resourceScope Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ResourceScopeApi
     */
    public updateResourceScope(resourceScope: Array<ResourceScope>, options?: AxiosRequestConfig) {
        return ResourceScopeApiFp(this.configuration).updateResourceScope(resourceScope, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * RestDayApi - axios parameter creator
 * @export
 */
export const RestDayApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countRestDays: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar/days/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<RestDay>} restDay Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createRestDay: async (restDay: Array<RestDay>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'restDay' is not null or undefined
            assertParamExists('createRestDay', 'restDay', restDay)
            const localVarPath = `/calendar/days`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteRestDay: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteRestDay', 'requestBody', requestBody)
            const localVarPath = `/calendar/days/force`;
            // 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;


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

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

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

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

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


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

            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}
         */
        pagingRestDays: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar/days`;
            // 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 (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);
            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}
         */
        searchRestDays: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar/days/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<RestDay>} restDay Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkRestDay: async (restDay: Array<RestDay>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'restDay' is not null or undefined
            assertParamExists('unlinkRestDay', 'restDay', restDay)
            const localVarPath = `/calendar/days`;
            // 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;


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

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<RestDay>} restDay Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRestDay: async (restDay: Array<RestDay>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'restDay' is not null or undefined
            assertParamExists('updateRestDay', 'restDay', restDay)
            const localVarPath = `/calendar/days`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * RestDayApi - functional programming interface
 * @export
 */
export const RestDayApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RestDayApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countRestDays(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countRestDays(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<RestDay>} restDay Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createRestDay(restDay, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRestDay(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRestDay(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteRestDay(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteRestDay(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRestDay(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RestDay>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRestDay(id, expand, 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 pagingRestDays(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfRestDay>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingRestDays(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 searchRestDays(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RestDay>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchRestDays(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<RestDay>} restDay Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkRestDay(restDay, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<RestDay>} restDay Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateRestDay(restDay, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RestDayApi - factory interface
 * @export
 */
export const RestDayApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RestDayApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countRestDays(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countRestDays(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<RestDay>} restDay Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createRestDay(restDay: Array<RestDay>, options?: any): AxiosPromise<Response> {
            return localVarFp.createRestDay(restDay, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRestDay(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteRestDay(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteRestDay(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteRestDay(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRestDay(id: string, expand?: string, options?: any): AxiosPromise<RestDay> {
            return localVarFp.getRestDay(id, expand, 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}
         */
        pagingRestDays(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfRestDay> {
            return localVarFp.pagingRestDays(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}
         */
        searchRestDays(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<RestDay>> {
            return localVarFp.searchRestDays(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<RestDay>} restDay Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkRestDay(restDay: Array<RestDay>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkRestDay(restDay, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<RestDay>} restDay Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRestDay(restDay: Array<RestDay>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateRestDay(restDay, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<RestDay>} restDay Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RestDayApi
     */
    public createRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig) {
        return RestDayApiFp(this.configuration).createRestDay(restDay, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RestDayApi
     */
    public deleteRestDay(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return RestDayApiFp(this.configuration).deleteRestDay(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<RestDay>} restDay Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RestDayApi
     */
    public unlinkRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig) {
        return RestDayApiFp(this.configuration).unlinkRestDay(restDay, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<RestDay>} restDay Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RestDayApi
     */
    public updateRestDay(restDay: Array<RestDay>, options?: AxiosRequestConfig) {
        return RestDayApiFp(this.configuration).updateRestDay(restDay, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * RestDaysApi - axios parameter creator
 * @export
 */
export const RestDaysApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Выбирает общий рабочий календарь для домена
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        mergedCalendar: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('mergedCalendar', 'id', id)
            const localVarPath = `/domains/{id}/mergedCalendar`
                .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 registryAuth required
            // oauth required
            await setOAuthToObject(localVarHeaderParameter, "registryAuth", [], configuration)


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

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

/**
 * RestDaysApi - functional programming interface
 * @export
 */
export const RestDaysApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RestDaysApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Выбирает общий рабочий календарь для домена
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async mergedCalendar(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.mergedCalendar(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RestDaysApi - factory interface
 * @export
 */
export const RestDaysApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RestDaysApiFp(configuration)
    return {
        /**
         * 
         * @summary Выбирает общий рабочий календарь для домена
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        mergedCalendar(id: string, options?: any): AxiosPromise<Response> {
            return localVarFp.mergedCalendar(id, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * RestDaysApi - object-oriented interface
 * @export
 * @class RestDaysApi
 * @extends {BaseAPI}
 */
export class RestDaysApi extends BaseAPI {
    /**
     * 
     * @summary Выбирает общий рабочий календарь для домена
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RestDaysApi
     */
    public mergedCalendar(id: string, options?: AxiosRequestConfig) {
        return RestDaysApiFp(this.configuration).mergedCalendar(id, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<Role>} role Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRoleLinks: async (role: Array<Role>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'role' is not null or undefined
            assertParamExists('deleteRoleLinks', 'role', role)
            const localVarPath = `/roles`;
            // 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;


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

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

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


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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getRoles: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/roles/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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


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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRolesList: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/roles`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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

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

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

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

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Role>} role Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRole: async (role: Array<Role>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'role' is not null or undefined
            assertParamExists('updateRole', 'role', role)
            const localVarPath = `/roles`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * RoleApi - functional programming interface
 * @export
 */
export const RoleApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = RoleApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Role>} role Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createRole(role: Array<Role>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createRole(role, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRoleById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRoleById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Role>} role Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRoleLinks(role: Array<Role>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRoleLinks(role, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteRoleById(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteRoleById(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllRoles(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Role>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllRoles(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async getRoles(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRoles(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRolesById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Role>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRolesById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRolesList(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfRole>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRolesList(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Role>} role Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateRole(role: Array<Role>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateRole(role, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * RoleApi - factory interface
 * @export
 */
export const RoleApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = RoleApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<Role>} role Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createRole(role: Array<Role>, options?: any): AxiosPromise<Response> {
            return localVarFp.createRole(role, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRoleById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteRoleById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<Role>} role Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRoleLinks(role: Array<Role>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteRoleLinks(role, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteRoleById(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteRoleById(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllRoles(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Role>> {
            return localVarFp.getAllRoles(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getRoles(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.getRoles(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRolesById(id: string, expand?: string, options?: any): AxiosPromise<Role> {
            return localVarFp.getRolesById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRolesList(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfRole> {
            return localVarFp.getRolesList(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<Role>} role Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateRole(role: Array<Role>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateRole(role, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    public deleteRoleById(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return RoleApiFp(this.configuration).deleteRoleById(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<Role>} role Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    public deleteRoleLinks(role: Array<Role>, options?: AxiosRequestConfig) {
        return RoleApiFp(this.configuration).deleteRoleLinks(role, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    public getRoles(query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return RoleApiFp(this.configuration).getRoles(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

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

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<Role>} role Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RoleApi
     */
    public updateRole(role: Array<Role>, options?: AxiosRequestConfig) {
        return RoleApiFp(this.configuration).updateRole(role, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * SchemaApi - axios parameter creator
 * @export
 */
export const SchemaApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает Avro схему в виде JSON по названию схемы
         * @param {string} schemaName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAvroSchemaBySchemaName: async (schemaName: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'schemaName' is not null or undefined
            assertParamExists('getAvroSchemaBySchemaName', 'schemaName', schemaName)
            const localVarPath = `/avro/schema/{schemaName}`
                .replace(`{${"schemaName"}}`, encodeURIComponent(String(schemaName)));
            // 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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает все Avro схемы с группировкой по именам коллекций(таблиц) документов в виде JSON
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAvroSchemas: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/avro/schema/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;


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

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

/**
 * SchemaApi - functional programming interface
 * @export
 */
export const SchemaApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = SchemaApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает Avro схему в виде JSON по названию схемы
         * @param {string} schemaName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAvroSchemaBySchemaName(schemaName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAvroSchemaBySchemaName(schemaName, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает все Avro схемы с группировкой по именам коллекций(таблиц) документов в виде JSON
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAvroSchemas(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAvroSchemas(options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * SchemaApi - factory interface
 * @export
 */
export const SchemaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = SchemaApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает Avro схему в виде JSON по названию схемы
         * @param {string} schemaName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAvroSchemaBySchemaName(schemaName: string, options?: any): AxiosPromise<any> {
            return localVarFp.getAvroSchemaBySchemaName(schemaName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает все Avro схемы с группировкой по именам коллекций(таблиц) документов в виде JSON
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAvroSchemas(options?: any): AxiosPromise<any> {
            return localVarFp.getAvroSchemas(options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * SchemaApi - object-oriented interface
 * @export
 * @class SchemaApi
 * @extends {BaseAPI}
 */
export class SchemaApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает Avro схему в виде JSON по названию схемы
     * @param {string} schemaName 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SchemaApi
     */
    public getAvroSchemaBySchemaName(schemaName: string, options?: AxiosRequestConfig) {
        return SchemaApiFp(this.configuration).getAvroSchemaBySchemaName(schemaName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает все Avro схемы с группировкой по именам коллекций(таблиц) документов в виде JSON
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SchemaApi
     */
    public getAvroSchemas(options?: AxiosRequestConfig) {
        return SchemaApiFp(this.configuration).getAvroSchemas(options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * SecretApi - axios parameter creator
 * @export
 */
export const SecretApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Гасит секрет для сброса пароля
         * @param {string} secretValue Фильтр секрета
         * @param {string} body Новый пароль
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        resetPasswordWithSecret: async (secretValue: string, body: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'secretValue' is not null or undefined
            assertParamExists('resetPasswordWithSecret', 'secretValue', secretValue)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('resetPasswordWithSecret', 'body', body)
            const localVarPath = `/secrets/{secretValue}/slake`
                .replace(`{${"secretValue"}}`, encodeURIComponent(String(secretValue)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

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

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

/**
 * SecretApi - functional programming interface
 * @export
 */
export const SecretApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = SecretApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Гасит секрет для сброса пароля
         * @param {string} secretValue Фильтр секрета
         * @param {string} body Новый пароль
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async resetPasswordWithSecret(secretValue: string, body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.resetPasswordWithSecret(secretValue, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Запускает процесс сброса пароля
         * @param {string} secretValue Секрет
         * @param {string} principal Идентификация пользователя
         * @param {string} body Линк для редиректа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async startResetPasswordWithSecret(secretValue: string, principal: string, body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.startResetPasswordWithSecret(secretValue, principal, body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * SecretApi - factory interface
 * @export
 */
export const SecretApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = SecretApiFp(configuration)
    return {
        /**
         * 
         * @summary Гасит секрет для сброса пароля
         * @param {string} secretValue Фильтр секрета
         * @param {string} body Новый пароль
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        resetPasswordWithSecret(secretValue: string, body: string, options?: any): AxiosPromise<number> {
            return localVarFp.resetPasswordWithSecret(secretValue, body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Запускает процесс сброса пароля
         * @param {string} secretValue Секрет
         * @param {string} principal Идентификация пользователя
         * @param {string} body Линк для редиректа
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        startResetPasswordWithSecret(secretValue: string, principal: string, body: string, options?: any): AxiosPromise<number> {
            return localVarFp.startResetPasswordWithSecret(secretValue, principal, body, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * SecretApi - object-oriented interface
 * @export
 * @class SecretApi
 * @extends {BaseAPI}
 */
export class SecretApi extends BaseAPI {
    /**
     * 
     * @summary Гасит секрет для сброса пароля
     * @param {string} secretValue Фильтр секрета
     * @param {string} body Новый пароль
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SecretApi
     */
    public resetPasswordWithSecret(secretValue: string, body: string, options?: AxiosRequestConfig) {
        return SecretApiFp(this.configuration).resetPasswordWithSecret(secretValue, body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Запускает процесс сброса пароля
     * @param {string} secretValue Секрет
     * @param {string} principal Идентификация пользователя
     * @param {string} body Линк для редиректа
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SecretApi
     */
    public startResetPasswordWithSecret(secretValue: string, principal: string, body: string, options?: AxiosRequestConfig) {
        return SecretApiFp(this.configuration).startResetPasswordWithSecret(secretValue, principal, body, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

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

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


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

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

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

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Service} service Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateService: async (service: Service, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'service' is not null or undefined
            assertParamExists('updateService', 'service', service)
            const localVarPath = `/services`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

/**
 * ServiceApi - functional programming interface
 * @export
 */
export const ServiceApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ServiceApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Service} service Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createService(service: Service, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createService(service, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteServiceById(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteServiceById(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteServiceById(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteServiceById(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllServices(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Service>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllServices(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getServiceById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Service>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getServiceById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Service} service Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateService(service: Service, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateService(service, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ServiceApi - factory interface
 * @export
 */
export const ServiceApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ServiceApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Service} service Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createService(service: Service, options?: any): AxiosPromise<Response> {
            return localVarFp.createService(service, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteServiceById(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteServiceById(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteServiceById(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteServiceById(body, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllServices(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Service>> {
            return localVarFp.getAllServices(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getServiceById(id: string, expand?: string, options?: any): AxiosPromise<Service> {
            return localVarFp.getServiceById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Service} service Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateService(service: Service, options?: any): AxiosPromise<Response> {
            return localVarFp.updateService(service, options).then((request) => request(axios, basePath));
        },
    };
};

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

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {string} body ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ServiceApi
     */
    public deleteServiceById(body: string, options?: AxiosRequestConfig) {
        return ServiceApiFp(this.configuration).deleteServiceById(body, options).then((request) => request(this.axios, this.basePath));
    }

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

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

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

    /**
     * 
     * @summary Изменяет объект
     * @param {Service} service Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ServiceApi
     */
    public updateService(service: Service, options?: AxiosRequestConfig) {
        return ServiceApiFp(this.configuration).updateService(service, options).then((request) => request(this.axios, this.basePath));
    }
}


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

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


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

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

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


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

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

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


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllSolutions: async (query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/solutions/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSolutionById: async (id: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getSolutionById', 'id', id)
            const localVarPath = `/solutions/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (expand !== undefined) {
                localVarQueryParameter['expand'] = expand;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getSolutionsCount: async (query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/solutions/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (query !== undefined) {
                localVarQueryParameter['query'] = query;
            }

            if (fulltext !== undefined) {
                localVarQueryParameter['fulltext'] = fulltext;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSolutionsPaging: async (page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/solutions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (page !== undefined) {
                localVarQueryParameter['page'] = page;
            }

            if (perPage !== undefined) {
                localVarQueryParameter['perPage'] = perPage;
            }

            if (query !== undefined) {
                localVarQueryParameter['query'] = query;
            }

            if (fulltext !== undefined) {
                localVarQueryParameter['fulltext'] = fulltext;
            }

            if (sort !== undefined) {
                localVarQueryParameter['sort'] = sort;
            }

            if (expand !== undefined) {
                localVarQueryParameter['expand'] = expand;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Solution} solution Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkSolution: async (solution: Solution, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'solution' is not null or undefined
            assertParamExists('unlinkSolution', 'solution', solution)
            const localVarPath = `/solutions`;
            // 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;


    
            localVarHeaderParameter['Content-Type'] = 'application/json;charset=utf-8';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(solution, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Solution} solution Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSolution: async (solution: Solution, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'solution' is not null or undefined
            assertParamExists('updateSolution', 'solution', solution)
            const localVarPath = `/solutions`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json;charset=utf-8';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(solution, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * SolutionApi - functional programming interface
 * @export
 */
export const SolutionApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = SolutionApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Solution} solution Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createSolution(solution: Solution, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createSolution(solution, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteSolutionById(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteSolutionById(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору из бд
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteSolutionById(body: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteSolutionById(body, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllSolutions(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Solution>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllSolutions(query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getSolutionById(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Solution>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getSolutionById(id, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async getSolutionsCount(query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getSolutionsCount(query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getSolutionsPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfSolution>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getSolutionsPaging(page, perPage, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Solution} solution Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkSolution(solution: Solution, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkSolution(solution, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Solution} solution Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateSolution(solution: Solution, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateSolution(solution, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * SolutionApi - factory interface
 * @export
 */
export const SolutionApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = SolutionApiFp(configuration)
    return {
        /**
         * 
         * @summary Создает новый объект
         * @param {Solution} solution Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createSolution(solution: Solution, options?: any): AxiosPromise<Response> {
            return localVarFp.createSolution(solution, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteSolutionById(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteSolutionById(body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору из бд
         * @param {string} body ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteSolutionById(body: string, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteSolutionById(body, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает список объектов без пейджинга.
         * @summary Возвращает список объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllSolutions(query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<Solution>> {
            return localVarFp.getAllSolutions(query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSolutionById(id: string, expand?: string, options?: any): AxiosPromise<Solution> {
            return localVarFp.getSolutionById(id, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        getSolutionsCount(query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.getSolutionsCount(query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
         * @summary Возвращает список объектов
         * @param {number} [page] Номер страницы
         * @param {number} [perPage] Количество элементов на страницу
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {string} [sort] Тип сортировки
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSolutionsPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfSolution> {
            return localVarFp.getSolutionsPaging(page, perPage, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Solution} solution Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkSolution(solution: Solution, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkSolution(solution, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Solution} solution Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateSolution(solution: Solution, options?: any): AxiosPromise<Response> {
            return localVarFp.updateSolution(solution, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * SolutionApi - object-oriented interface
 * @export
 * @class SolutionApi
 * @extends {BaseAPI}
 */
export class SolutionApi extends BaseAPI {
    /**
     * 
     * @summary Создает новый объект
     * @param {Solution} solution Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public createSolution(solution: Solution, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).createSolution(solution, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {string} body ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public deleteSolutionById(body: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).deleteSolutionById(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет объект по его идентификатору из бд
     * @param {string} body ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public forceDeleteSolutionById(body: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).forceDeleteSolutionById(body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает список объектов без пейджинга.
     * @summary Возвращает список объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {string} [sort] Тип сортировки
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public getAllSolutions(query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).getAllSolutions(query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает объект по его идентификатору
     * @param {string} id 
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public getSolutionById(id: string, expand?: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).getSolutionById(id, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает количество объектов
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public getSolutionsCount(query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).getSolutionsCount(query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Возвращает постраничный список объектов. Разбиение на страницы производиться по 100 записей на страницу и сортировкой по дате изменения или задаётся параметрами запроса.
     * @summary Возвращает список объектов
     * @param {number} [page] Номер страницы
     * @param {number} [perPage] Количество элементов на страницу
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {string} [sort] Тип сортировки
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public getSolutionsPaging(page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).getSolutionsPaging(page, perPage, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Solution} solution Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public unlinkSolution(solution: Solution, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).unlinkSolution(solution, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Solution} solution Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SolutionApi
     */
    public updateSolution(solution: Solution, options?: AxiosRequestConfig) {
        return SolutionApiFp(this.configuration).updateSolution(solution, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * WorkCalendarApi - axios parameter creator
 * @export
 */
export const WorkCalendarApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countWorkCalendars: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar/count`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (handler !== undefined) {
                localVarQueryParameter['handler'] = handler;
            }

            if (query !== undefined) {
                localVarQueryParameter['query'] = query;
            }

            if (fulltext !== undefined) {
                localVarQueryParameter['fulltext'] = fulltext;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<WorkCalendar>} workCalendar Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createWorkCalendar: async (workCalendar: Array<WorkCalendar>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'workCalendar' is not null or undefined
            assertParamExists('createWorkCalendar', 'workCalendar', workCalendar)
            const localVarPath = `/calendar`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json;charset=utf-8';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(workCalendar, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteWorkCalendar: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('deleteWorkCalendar', 'requestBody', requestBody)
            const localVarPath = `/calendar`;
            // 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;


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            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 {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteWorkCalendar: async (requestBody: Array<string>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('forceDeleteWorkCalendar', 'requestBody', requestBody)
            const localVarPath = `/calendar/force`;
            // 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;


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(requestBody, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getWorkCalendar: async (id: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getWorkCalendar', 'id', id)
            const localVarPath = `/calendar/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (expand !== undefined) {
                localVarQueryParameter['expand'] = expand;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            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}
         */
        pagingWorkCalendars: async (handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar`;
            // 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 (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);
            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}
         */
        searchWorkCalendars: async (handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/calendar/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;

            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);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<WorkCalendar>} workCalendar Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkWorkCalendar: async (workCalendar: Array<WorkCalendar>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'workCalendar' is not null or undefined
            assertParamExists('unlinkWorkCalendar', 'workCalendar', workCalendar)
            const localVarPath = `/calendar`;
            // 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;


    
            localVarHeaderParameter['Content-Type'] = 'application/json;charset=utf-8';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(workCalendar, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<WorkCalendar>} workCalendar Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateWorkCalendar: async (workCalendar: Array<WorkCalendar>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'workCalendar' is not null or undefined
            assertParamExists('updateWorkCalendar', 'workCalendar', workCalendar)
            const localVarPath = `/calendar`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;


    
            localVarHeaderParameter['Content-Type'] = 'application/json;charset=utf-8';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(workCalendar, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * WorkCalendarApi - functional programming interface
 * @export
 */
export const WorkCalendarApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = WorkCalendarApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        async countWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<number>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.countWorkCalendars(handler, query, fulltext, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<WorkCalendar>} workCalendar Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createWorkCalendar(workCalendar, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteWorkCalendar(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteWorkCalendar(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async forceDeleteWorkCalendar(requestBody: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.forceDeleteWorkCalendar(requestBody, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getWorkCalendar(id: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WorkCalendar>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getWorkCalendar(id, expand, 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 pagingWorkCalendars(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageOfWorkCalendar>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pagingWorkCalendars(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 searchWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<WorkCalendar>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.searchWorkCalendars(handler, query, fulltext, sort, expand, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<WorkCalendar>} workCalendar Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async unlinkWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.unlinkWorkCalendar(workCalendar, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<WorkCalendar>} workCalendar Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Response>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateWorkCalendar(workCalendar, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * WorkCalendarApi - factory interface
 * @export
 */
export const WorkCalendarApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = WorkCalendarApiFp(configuration)
    return {
        /**
         * 
         * @summary Возвращает количество объектов
         * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
         * @param {string} [query] Фильтр (RSQL) выборки по объекту
         * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
         * @param {*} [options] Override http request option.
         * @deprecated
         * @throws {RequiredError}
         */
        countWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: any): AxiosPromise<number> {
            return localVarFp.countWorkCalendars(handler, query, fulltext, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создает новый объект
         * @param {Array<WorkCalendar>} workCalendar Новый объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createWorkCalendar(workCalendar: Array<WorkCalendar>, options?: any): AxiosPromise<Response> {
            return localVarFp.createWorkCalendar(workCalendar, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Помечает объекты hidden = true по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteWorkCalendar(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.deleteWorkCalendar(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет объект по его идентификатору
         * @param {Array<string>} requestBody ID объектов на удаление
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        forceDeleteWorkCalendar(requestBody: Array<string>, options?: any): AxiosPromise<Response> {
            return localVarFp.forceDeleteWorkCalendar(requestBody, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Возвращает объект по его идентификатору
         * @param {string} id 
         * @param {string} [expand] Расширение объекта по его ссылкам
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getWorkCalendar(id: string, expand?: string, options?: any): AxiosPromise<WorkCalendar> {
            return localVarFp.getWorkCalendar(id, expand, 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}
         */
        pagingWorkCalendars(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<PageOfWorkCalendar> {
            return localVarFp.pagingWorkCalendars(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}
         */
        searchWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: any): AxiosPromise<Array<WorkCalendar>> {
            return localVarFp.searchWorkCalendars(handler, query, fulltext, sort, expand, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удаляет связи объекта
         * @param {Array<WorkCalendar>} workCalendar Обьект со связями для удаления
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        unlinkWorkCalendar(workCalendar: Array<WorkCalendar>, options?: any): AxiosPromise<Response> {
            return localVarFp.unlinkWorkCalendar(workCalendar, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Изменяет объект
         * @param {Array<WorkCalendar>} workCalendar Объект
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateWorkCalendar(workCalendar: Array<WorkCalendar>, options?: any): AxiosPromise<Response> {
            return localVarFp.updateWorkCalendar(workCalendar, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * WorkCalendarApi - object-oriented interface
 * @export
 * @class WorkCalendarApi
 * @extends {BaseAPI}
 */
export class WorkCalendarApi extends BaseAPI {
    /**
     * 
     * @summary Возвращает количество объектов
     * @param {'my' | 'managed'} [handler] Тип handler который надо активировать
     * @param {string} [query] Фильтр (RSQL) выборки по объекту
     * @param {string} [fulltext] Фильтр (RSQL) полнотекстовых операторов выборки
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public countWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).countWorkCalendars(handler, query, fulltext, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создает новый объект
     * @param {Array<WorkCalendar>} workCalendar Новый объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public createWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).createWorkCalendar(workCalendar, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Помечает объекты hidden = true по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public deleteWorkCalendar(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).deleteWorkCalendar(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет объект по его идентификатору
     * @param {Array<string>} requestBody ID объектов на удаление
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public forceDeleteWorkCalendar(requestBody: Array<string>, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).forceDeleteWorkCalendar(requestBody, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Возвращает объект по его идентификатору
     * @param {string} id 
     * @param {string} [expand] Расширение объекта по его ссылкам
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public getWorkCalendar(id: string, expand?: string, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).getWorkCalendar(id, expand, 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 WorkCalendarApi
     */
    public pagingWorkCalendars(handler?: 'my' | 'managed', page?: number, perPage?: number, query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).pagingWorkCalendars(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 WorkCalendarApi
     */
    public searchWorkCalendars(handler?: 'my' | 'managed', query?: string, fulltext?: string, sort?: string, expand?: string, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).searchWorkCalendars(handler, query, fulltext, sort, expand, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удаляет связи объекта
     * @param {Array<WorkCalendar>} workCalendar Обьект со связями для удаления
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public unlinkWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).unlinkWorkCalendar(workCalendar, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Изменяет объект
     * @param {Array<WorkCalendar>} workCalendar Объект
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof WorkCalendarApi
     */
    public updateWorkCalendar(workCalendar: Array<WorkCalendar>, options?: AxiosRequestConfig) {
        return WorkCalendarApiFp(this.configuration).updateWorkCalendar(workCalendar, options).then((request) => request(this.axios, this.basePath));
    }
}


