/* tslint:disable */
/* eslint-disable */
/**
 * mz-payment-service
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.6
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


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

/**
 * 
 * @export
 * @interface Bank
 */
export interface Bank {
    /**
     * 
     * @type {string}
     * @memberof Bank
     */
    BIK?: string;
    /**
     * 
     * @type {string}
     * @memberof Bank
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof Bank
     */
    account?: string;
    /**
     * 
     * @type {string}
     * @memberof Bank
     */
    corrAccount?: string;
}
/**
 * 
 * @export
 * @interface BudgetIndex
 */
export interface BudgetIndex {
    /**
     * 
     * @type {number}
     * @memberof BudgetIndex
     */
    taxPeriod?: number;
    /**
     * 
     * @type {number}
     * @memberof BudgetIndex
     */
    purpose?: number;
    /**
     * 
     * @type {number}
     * @memberof BudgetIndex
     */
    taxDocDate?: number;
    /**
     * 
     * @type {number}
     * @memberof BudgetIndex
     */
    taxDocNumber?: number;
    /**
     * 
     * @type {string}
     * @memberof BudgetIndex
     */
    status?: string;
}
/**
 * 
 * @export
 * @interface Charge
 */
export interface Charge {
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    guid?: string;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    supplierBillId?: string;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    billFor?: string;
    /**
     * 
     * @type {number}
     * @memberof Charge
     */
    totalAmount?: number;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    KBK?: string;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    OKTMO?: string;
    /**
     * 
     * @type {ChargeOrganization}
     * @memberof Charge
     */
    organization?: ChargeOrganization;
    /**
     * 
     * @type {BudgetIndex}
     * @memberof Charge
     */
    budgetIndex?: BudgetIndex;
    /**
     * 
     * @type {PayerId}
     * @memberof Charge
     */
    payerId?: PayerId;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    payerName?: string;
    /**
     * 
     * @type {string}
     * @memberof Charge
     */
    billDate?: string;
    /**
     * 
     * @type {ChargeAdditionalData}
     * @memberof Charge
     */
    additionalData?: ChargeAdditionalData;
}
/**
 * 
 * @export
 * @interface ChargeAdditionalData
 */
export interface ChargeAdditionalData {
    /**
     * 
     * @type {Array<ChargeAdditionalDataParams>}
     * @memberof ChargeAdditionalData
     */
    params?: Array<ChargeAdditionalDataParams>;
}
/**
 * 
 * @export
 * @interface ChargeAdditionalDataParams
 */
export interface ChargeAdditionalDataParams {
    /**
     * 
     * @type {string}
     * @memberof ChargeAdditionalDataParams
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof ChargeAdditionalDataParams
     */
    value?: string;
}
/**
 * 
 * @export
 * @interface ChargeOrganization
 */
export interface ChargeOrganization {
    /**
     * 
     * @type {string}
     * @memberof ChargeOrganization
     */
    OGRN?: string;
    /**
     * 
     * @type {Bank}
     * @memberof ChargeOrganization
     */
    bank?: Bank;
    /**
     * 
     * @type {string}
     * @memberof ChargeOrganization
     */
    INN?: string;
    /**
     * 
     * @type {string}
     * @memberof ChargeOrganization
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof ChargeOrganization
     */
    KPP?: string;
}
/**
 * 
 * @export
 * @enum {string}
 */

export enum ChargeStatus {
    Created = 'CREATED',
    Error = 'ERROR',
    Registered = 'REGISTERED',
    Sent = 'SENT',
    FullPayment = 'FULL_PAYMENT',
    Cancel = 'cancel',
    Deleted = 'DELETED'
}

/**
 * 
 * @export
 * @interface ControlRequest
 */
export interface ControlRequest {
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    applicationId?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    serviceId?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    status?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    goal?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    fullName?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    userType?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    payerId?: string;
    /**
     * 
     * @type {string}
     * @memberof ControlRequest
     */
    orderId?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ControlRequest
     */
    createPayments?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof ControlRequest
     */
    registerPayments?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof ControlRequest
     */
    checkPayments?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof ControlRequest
     */
    deletePayments?: boolean;
    /**
     * 
     * @type {Organization}
     * @memberof ControlRequest
     */
    organization?: Organization;
    /**
     * 
     * @type {Array<PaymentTemplate>}
     * @memberof ControlRequest
     */
    paymentLinks?: Array<PaymentTemplate>;
    /**
     * 
     * @type {Array<Payment>}
     * @memberof ControlRequest
     */
    payments?: Array<Payment>;
}
/**
 * Множество данных которые нужны для работы бизнес процесса PGS
 * @export
 * @interface GetControlDataForWorkflow
 */
export interface GetControlDataForWorkflow {
    /**
     * Созданные начисления
     * @type {Array<string>}
     * @memberof GetControlDataForWorkflow
     */
    createdPaymentsIds: Array<string>;
    /**
     * 
     * @type {boolean}
     * @memberof GetControlDataForWorkflow
     */
    chargeRequired?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof GetControlDataForWorkflow
     */
    paymentCheckRequired?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof GetControlDataForWorkflow
     */
    chargeRegistrationRequired?: boolean;
    /**
     * Начисления для создания
     * @type {Array<PaymentTemplate>}
     * @memberof GetControlDataForWorkflow
     */
    newPayments: Array<PaymentTemplate>;
    /**
     * Удалённые начисления
     * @type {Array<string>}
     * @memberof GetControlDataForWorkflow
     */
    deletedPaymentsIds: Array<string>;
    /**
     * Начисления для регистрации
     * @type {Array<Payment>}
     * @memberof GetControlDataForWorkflow
     */
    activePaymentsForRegistration: Array<Payment>;
    /**
     * Начисления для проверки оплаты
     * @type {Array<Payment>}
     * @memberof GetControlDataForWorkflow
     */
    activePaymentsForWaitPayment: Array<Payment>;
}
/**
 * 
 * @export
 * @enum {string}
 */

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

/**
 * 
 * @export
 * @interface InlineObject
 */
export interface InlineObject {
    /**
     * 
     * @type {Organization}
     * @memberof InlineObject
     */
    organization?: Organization;
    /**
     * 
     * @type {string}
     * @memberof InlineObject
     */
    guid?: string;
}
/**
 * 
 * @export
 * @interface InlineObject1
 */
export interface InlineObject1 {
    /**
     * 
     * @type {Organization}
     * @memberof InlineObject1
     */
    organization?: Organization;
}
/**
 * 
 * @export
 * @interface InlineObject2
 */
export interface InlineObject2 {
    /**
     * 
     * @type {Payment}
     * @memberof InlineObject2
     */
    payment?: Payment;
    /**
     * 
     * @type {string}
     * @memberof InlineObject2
     */
    guid?: string;
}
/**
 * 
 * @export
 * @interface InlineObject3
 */
export interface InlineObject3 {
    /**
     * 
     * @type {Payment}
     * @memberof InlineObject3
     */
    payment?: Payment;
}
/**
 * 
 * @export
 * @interface InlineObject4
 */
export interface InlineObject4 {
    /**
     * 
     * @type {PaymentTemplate}
     * @memberof InlineObject4
     */
    paymentTemplate?: PaymentTemplate;
    /**
     * 
     * @type {string}
     * @memberof InlineObject4
     */
    guid?: string;
}
/**
 * 
 * @export
 * @interface InlineObject5
 */
export interface InlineObject5 {
    /**
     * 
     * @type {PaymentTemplate}
     * @memberof InlineObject5
     */
    paymentTemplate?: PaymentTemplate;
}
/**
 * 
 * @export
 * @interface Organization
 */
export interface Organization {
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    senderId?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    originatorId?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    senderRole?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    accountNumberTOFK?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    correspondentBankAccountTOFK?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    bikTOFK?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    nameTOFK?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    checkingAccount?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    bik?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    bankName?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    ogrn?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    kpp?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    inn?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    oktmo?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    fullname?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    shortname?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    address?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    okato?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    region?: string;
    /**
     * 
     * @type {string}
     * @memberof Organization
     */
    regionId?: string;
    /**
     * 
     * @type {OrganizationParent}
     * @memberof Organization
     */
    parent?: OrganizationParent;
}
/**
 * 
 * @export
 * @interface OrganizationParent
 */
export interface OrganizationParent {
    /**
     * 
     * @type {string}
     * @memberof OrganizationParent
     */
    code?: string;
}
/**
 * 
 * @export
 * @interface PayerId
 */
export interface PayerId {
    /**
     * 
     * @type {string}
     * @memberof PayerId
     */
    payerId: string;
    /**
     * 
     * @type {string}
     * @memberof PayerId
     */
    additionalPayerId?: string;
}
/**
 * 
 * @export
 * @interface Payment
 */
export interface Payment {
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    lastRequestId?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    originalMessageId?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    applicationId?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    serviceId?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    orderId?: string;
    /**
     * 
     * @type {Charge}
     * @memberof Payment
     */
    charge?: Charge;
    /**
     * TODO openapi
     * @type {number}
     * @memberof Payment
     */
    systemStatus?: number;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    chargeDate?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    applicationStatusForCharge?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    applicationStatusForRegister?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    applicationStatusForWaitPayment?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    personalCertificate?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    senderCertificate?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    smevCertificate?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    status?: string;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    receiveDate?: string;
    /**
     * 
     * @type {number}
     * @memberof Payment
     */
    totalAmountMultiplier?: number;
    /**
     * 
     * @type {string}
     * @memberof Payment
     */
    systemLabel?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof Payment
     */
    registrationRequestIds?: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof Payment
     */
    paymentCheckRequestIds?: Array<string>;
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Payment
     */
    paymentCheckRequest?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Payment
     */
    paymentCheckResponse?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Payment
     */
    registrationRequest?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Payment
     */
    registrationResponse?: { [key: string]: object; };
    /**
     * 
     * @type {{ [key: string]: object; }}
     * @memberof Payment
     */
    response?: { [key: string]: object; };
}
/**
 * Шаблон платежа
 * @export
 * @interface PaymentTemplate
 */
export interface PaymentTemplate {
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    serviceId?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    regionCode?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    billFor?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    KBK?: string;
    /**
     * 
     * @type {number}
     * @memberof PaymentTemplate
     */
    totalAmount?: number;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    discountType?: string;
    /**
     * 
     * @type {number}
     * @memberof PaymentTemplate
     */
    discountValue?: number;
    /**
     * 
     * @type {number}
     * @memberof PaymentTemplate
     */
    expiryPlusDays?: number;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    goal?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    applicationStatusForCharge?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    applicationStatusForRegister?: string;
    /**
     * 
     * @type {string}
     * @memberof PaymentTemplate
     */
    applicationStatusForWaitPayment?: string;
    /**
     * 
     * @type {number}
     * @memberof PaymentTemplate
     */
    totalAmountMultiplier?: number;
}
/**
 * Ответ
 * @export
 * @interface SimpleResponse
 */
export interface SimpleResponse {
    /**
     * Код ответа
     * @type {string}
     * @memberof SimpleResponse
     */
    code: string;
    /**
     * Сообщение
     * @type {string}
     * @memberof SimpleResponse
     */
    msg: string;
}

/**
 * DefaultApi - axios parameter creator
 * @export
 */
export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Создать организацию
         * @param {InlineObject1} inlineObject1 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrganization: async (inlineObject1: InlineObject1, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'inlineObject1' is not null or undefined
            assertParamExists('createOrganization', 'inlineObject1', inlineObject1)
            const localVarPath = `/organization`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Получить список всех организаций
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllOrganization: async (page: number, size: number, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'page' is not null or undefined
            assertParamExists('getAllOrganization', 'page', page)
            // verify required parameter 'size' is not null or undefined
            assertParamExists('getAllOrganization', 'size', size)
            const localVarPath = `/organization`;
            // use dummy base URL string because the 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 (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Получить список всех начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPayment: async (page: number, size: number, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'page' is not null or undefined
            assertParamExists('getAllPayment', 'page', page)
            // verify required parameter 'size' is not null or undefined
            assertParamExists('getAllPayment', 'size', size)
            const localVarPath = `/payment`;
            // use dummy base URL string because the 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 (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Получить список всех шаблонов начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPaymentTemplate: async (page: number, size: number, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'page' is not null or undefined
            assertParamExists('getAllPaymentTemplate', 'page', page)
            // verify required parameter 'size' is not null or undefined
            assertParamExists('getAllPaymentTemplate', 'size', size)
            const localVarPath = `/paymentTemplate`;
            // use dummy base URL string because the 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 (size !== undefined) {
                localVarQueryParameter['size'] = size;
            }


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

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

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


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

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

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


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

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

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


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

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

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


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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Обновить организацию
         * @param {InlineObject} inlineObject 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateOrganization: async (inlineObject: InlineObject, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'inlineObject' is not null or undefined
            assertParamExists('updateOrganization', 'inlineObject', inlineObject)
            const localVarPath = `/organization`;
            // use dummy base URL string because the 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';

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Обновить начисление
         * @param {InlineObject2} inlineObject2 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePayment: async (inlineObject2: InlineObject2, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'inlineObject2' is not null or undefined
            assertParamExists('updatePayment', 'inlineObject2', inlineObject2)
            const localVarPath = `/payment`;
            // use dummy base URL string because the 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';

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

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Обновить шаблон начисления
         * @param {InlineObject4} inlineObject4 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePaymentTemplate: async (inlineObject4: InlineObject4, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'inlineObject4' is not null or undefined
            assertParamExists('updatePaymentTemplate', 'inlineObject4', inlineObject4)
            const localVarPath = `/paymentTemplate`;
            // use dummy base URL string because the 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';

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

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

/**
 * DefaultApi - functional programming interface
 * @export
 */
export const DefaultApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Создать организацию
         * @param {InlineObject1} inlineObject1 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createOrganization(inlineObject1: InlineObject1, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Organization>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createOrganization(inlineObject1, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создать начисление
         * @param {InlineObject3} inlineObject3 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPayment(inlineObject3: InlineObject3, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Payment>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPayment(inlineObject3, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Создать шаблон начисления
         * @param {InlineObject5} inlineObject5 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createPaymentTemplate(inlineObject5: InlineObject5, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaymentTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createPaymentTemplate(inlineObject5, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удалить организацию
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteOrganization(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HttpStatus>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteOrganization(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удалить платёж
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePayment(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HttpStatus>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePayment(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Удалить шаблон начисления
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deletePaymentTemplate(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HttpStatus>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deletePaymentTemplate(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить список всех организаций
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllOrganization(page: number, size: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Organization>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllOrganization(page, size, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить список всех начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllPayment(page: number, size: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Payment>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllPayment(page, size, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить список всех шаблонов начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAllPaymentTemplate(page: number, size: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PaymentTemplate>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllPaymentTemplate(page, size, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить начисление по id
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPayment(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Payment>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPayment(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить начисление по applicationId
         * @param {string} applicationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPaymentByApplicationId(applicationId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Payment>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPaymentByApplicationId(applicationId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить шаблон начисления по id
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPaymentTemplate(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaymentTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPaymentTemplate(id, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Получить шаблон начисления по serviceId
         * @param {string} serviceId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getPaymentTemplateByServiceId(serviceId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PaymentTemplate>>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getPaymentTemplateByServiceId(serviceId, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Обновить организацию
         * @param {InlineObject} inlineObject 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updateOrganization(inlineObject: InlineObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Organization>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updateOrganization(inlineObject, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Обновить начисление
         * @param {InlineObject2} inlineObject2 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePayment(inlineObject2: InlineObject2, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Payment>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePayment(inlineObject2, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
        /**
         * 
         * @summary Обновить шаблон начисления
         * @param {InlineObject4} inlineObject4 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async updatePaymentTemplate(inlineObject4: InlineObject4, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaymentTemplate>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.updatePaymentTemplate(inlineObject4, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * DefaultApi - factory interface
 * @export
 */
export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = DefaultApiFp(configuration)
    return {
        /**
         * 
         * @summary Создать организацию
         * @param {InlineObject1} inlineObject1 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createOrganization(inlineObject1: InlineObject1, options?: any): AxiosPromise<Organization> {
            return localVarFp.createOrganization(inlineObject1, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создать начисление
         * @param {InlineObject3} inlineObject3 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPayment(inlineObject3: InlineObject3, options?: any): AxiosPromise<Payment> {
            return localVarFp.createPayment(inlineObject3, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Создать шаблон начисления
         * @param {InlineObject5} inlineObject5 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createPaymentTemplate(inlineObject5: InlineObject5, options?: any): AxiosPromise<PaymentTemplate> {
            return localVarFp.createPaymentTemplate(inlineObject5, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удалить организацию
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteOrganization(id: string, options?: any): AxiosPromise<HttpStatus> {
            return localVarFp.deleteOrganization(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удалить платёж
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePayment(id: string, options?: any): AxiosPromise<HttpStatus> {
            return localVarFp.deletePayment(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Удалить шаблон начисления
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deletePaymentTemplate(id: string, options?: any): AxiosPromise<HttpStatus> {
            return localVarFp.deletePaymentTemplate(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить список всех организаций
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllOrganization(page: number, size: number, options?: any): AxiosPromise<Array<Organization>> {
            return localVarFp.getAllOrganization(page, size, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить список всех начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPayment(page: number, size: number, options?: any): AxiosPromise<Array<Payment>> {
            return localVarFp.getAllPayment(page, size, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить список всех шаблонов начислений
         * @param {number} page 
         * @param {number} size 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAllPaymentTemplate(page: number, size: number, options?: any): AxiosPromise<Array<PaymentTemplate>> {
            return localVarFp.getAllPaymentTemplate(page, size, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить начисление по id
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPayment(id: string, options?: any): AxiosPromise<Payment> {
            return localVarFp.getPayment(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить начисление по applicationId
         * @param {string} applicationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPaymentByApplicationId(applicationId: string, options?: any): AxiosPromise<Array<Payment>> {
            return localVarFp.getPaymentByApplicationId(applicationId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить шаблон начисления по id
         * @param {string} id 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPaymentTemplate(id: string, options?: any): AxiosPromise<PaymentTemplate> {
            return localVarFp.getPaymentTemplate(id, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Получить шаблон начисления по serviceId
         * @param {string} serviceId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getPaymentTemplateByServiceId(serviceId: string, options?: any): AxiosPromise<Array<PaymentTemplate>> {
            return localVarFp.getPaymentTemplateByServiceId(serviceId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Обновить организацию
         * @param {InlineObject} inlineObject 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateOrganization(inlineObject: InlineObject, options?: any): AxiosPromise<Organization> {
            return localVarFp.updateOrganization(inlineObject, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Обновить начисление
         * @param {InlineObject2} inlineObject2 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePayment(inlineObject2: InlineObject2, options?: any): AxiosPromise<Payment> {
            return localVarFp.updatePayment(inlineObject2, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Обновить шаблон начисления
         * @param {InlineObject4} inlineObject4 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updatePaymentTemplate(inlineObject4: InlineObject4, options?: any): AxiosPromise<PaymentTemplate> {
            return localVarFp.updatePaymentTemplate(inlineObject4, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * DefaultApi - object-oriented interface
 * @export
 * @class DefaultApi
 * @extends {BaseAPI}
 */
export class DefaultApi extends BaseAPI {
    /**
     * 
     * @summary Создать организацию
     * @param {InlineObject1} inlineObject1 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public createOrganization(inlineObject1: InlineObject1, options?: any) {
        return DefaultApiFp(this.configuration).createOrganization(inlineObject1, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создать начисление
     * @param {InlineObject3} inlineObject3 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public createPayment(inlineObject3: InlineObject3, options?: any) {
        return DefaultApiFp(this.configuration).createPayment(inlineObject3, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Создать шаблон начисления
     * @param {InlineObject5} inlineObject5 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public createPaymentTemplate(inlineObject5: InlineObject5, options?: any) {
        return DefaultApiFp(this.configuration).createPaymentTemplate(inlineObject5, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удалить организацию
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public deleteOrganization(id: string, options?: any) {
        return DefaultApiFp(this.configuration).deleteOrganization(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Удалить платёж
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public deletePayment(id: string, options?: any) {
        return DefaultApiFp(this.configuration).deletePayment(id, options).then((request) => request(this.axios, this.basePath));
    }

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

    /**
     * 
     * @summary Получить список всех организаций
     * @param {number} page 
     * @param {number} size 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getAllOrganization(page: number, size: number, options?: any) {
        return DefaultApiFp(this.configuration).getAllOrganization(page, size, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить список всех начислений
     * @param {number} page 
     * @param {number} size 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getAllPayment(page: number, size: number, options?: any) {
        return DefaultApiFp(this.configuration).getAllPayment(page, size, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить список всех шаблонов начислений
     * @param {number} page 
     * @param {number} size 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getAllPaymentTemplate(page: number, size: number, options?: any) {
        return DefaultApiFp(this.configuration).getAllPaymentTemplate(page, size, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить начисление по id
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getPayment(id: string, options?: any) {
        return DefaultApiFp(this.configuration).getPayment(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить начисление по applicationId
     * @param {string} applicationId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getPaymentByApplicationId(applicationId: string, options?: any) {
        return DefaultApiFp(this.configuration).getPaymentByApplicationId(applicationId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить шаблон начисления по id
     * @param {string} id 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getPaymentTemplate(id: string, options?: any) {
        return DefaultApiFp(this.configuration).getPaymentTemplate(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Получить шаблон начисления по serviceId
     * @param {string} serviceId 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public getPaymentTemplateByServiceId(serviceId: string, options?: any) {
        return DefaultApiFp(this.configuration).getPaymentTemplateByServiceId(serviceId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Обновить организацию
     * @param {InlineObject} inlineObject 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public updateOrganization(inlineObject: InlineObject, options?: any) {
        return DefaultApiFp(this.configuration).updateOrganization(inlineObject, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Обновить начисление
     * @param {InlineObject2} inlineObject2 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public updatePayment(inlineObject2: InlineObject2, options?: any) {
        return DefaultApiFp(this.configuration).updatePayment(inlineObject2, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Обновить шаблон начисления
     * @param {InlineObject4} inlineObject4 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DefaultApi
     */
    public updatePaymentTemplate(inlineObject4: InlineObject4, options?: any) {
        return DefaultApiFp(this.configuration).updatePaymentTemplate(inlineObject4, options).then((request) => request(this.axios, this.basePath));
    }
}


/**
 * ForPgsWorkflowApi - axios parameter creator
 * @export
 */
export const ForPgsWorkflowApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Эндпоинт для работы с PGS Workflow
         * @param {{ [key: string]: object; }} requestBody 
         * @param {string} [authorization] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getControls: async (requestBody: { [key: string]: object; }, authorization?: string, options: any = {}): Promise<RequestArgs> => {
            // verify required parameter 'requestBody' is not null or undefined
            assertParamExists('getControls', 'requestBody', requestBody)
            const localVarPath = `/getControls`;
            // use dummy base URL string because the 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;

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


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

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

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

/**
 * ForPgsWorkflowApi - functional programming interface
 * @export
 */
export const ForPgsWorkflowApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ForPgsWorkflowApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Эндпоинт для работы с PGS Workflow
         * @param {{ [key: string]: object; }} requestBody 
         * @param {string} [authorization] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getControls(requestBody: { [key: string]: object; }, authorization?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetControlDataForWorkflow>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getControls(requestBody, authorization, options);
            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
        },
    }
};

/**
 * ForPgsWorkflowApi - factory interface
 * @export
 */
export const ForPgsWorkflowApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ForPgsWorkflowApiFp(configuration)
    return {
        /**
         * 
         * @summary Эндпоинт для работы с PGS Workflow
         * @param {{ [key: string]: object; }} requestBody 
         * @param {string} [authorization] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getControls(requestBody: { [key: string]: object; }, authorization?: string, options?: any): AxiosPromise<GetControlDataForWorkflow> {
            return localVarFp.getControls(requestBody, authorization, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ForPgsWorkflowApi - object-oriented interface
 * @export
 * @class ForPgsWorkflowApi
 * @extends {BaseAPI}
 */
export class ForPgsWorkflowApi extends BaseAPI {
    /**
     * 
     * @summary Эндпоинт для работы с PGS Workflow
     * @param {{ [key: string]: object; }} requestBody 
     * @param {string} [authorization] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ForPgsWorkflowApi
     */
    public getControls(requestBody: { [key: string]: object; }, authorization?: string, options?: any) {
        return ForPgsWorkflowApiFp(this.configuration).getControls(requestBody, authorization, options).then((request) => request(this.axios, this.basePath));
    }
}


