UNPKG

fineract_sdk

Version:

Wrapper around fineract api.

1,285 lines 93.2 kB
"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * Apache Fineract
 * Apache Fineract is a secure, multi-tenanted microfinance platform  The goal of the Apache Fineract API is to empower developers to build apps on top of the Apache Fineract Platform<br>The [reference app](https://cui.fineract.dev) (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation  - The API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) - Find out more about Apache Fineract [here](/fineract-provider/api-docs/apiLive.htm#top) - You can [Try The API From Your Browser](/fineract-provider/api-docs/apiLive.htm#interact) - The Generic Options are available [here](/fineract-provider/api-docs/apiLive.htm#genopts) - Find out more about [Updating Dates and Numbers](/fineract-provider/api-docs/apiLive.htm#dates_and_numbers) - For the Authentication and the Basic of HTTP and HTTPS refer [here](/fineract-provider/api-docs/apiLive.htm#authentication_overview) - Check about ERROR codes [here](/fineract-provider/api-docs/apiLive.htm#errors)  Please refer to the [old documentation](/fineract-provider/api-docs/apiLive.htm) for any documentation queries
 *
 * The version of the OpenAPI document: 1.5.0-66-gffae7d4-dirty
 * Contact: dev@fineract.apache.org
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RecurringDepositAccountApi = exports.RecurringDepositAccountApiFactory = exports.RecurringDepositAccountApiFp = exports.RecurringDepositAccountApiAxiosParamCreator = void 0;
var axios_1 = require("axios");
// Some imports not used depending on template conditions
// @ts-ignore
var common_1 = require("../common");
// @ts-ignore
var base_1 = require("../base");
/**
 * RecurringDepositAccountApi - axios parameter creator
 * @export
 */
exports.RecurringDepositAccountApiAxiosParamCreator = function (configuration) {
    var _this = this;
    return {
        /**
         *
         * @param {number} accountId accountId
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        accountClosureTemplate1: function (accountId, command, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('accountClosureTemplate1', 'accountId', accountId);
                            localVarPath = "/recurringdepositaccounts/{accountId}/template"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)));
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (command !== undefined) {
                                localVarQueryParameter['command'] = command;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * At present we support hard delete of recurring deposit application so long as its in \'Submitted and pending approval\' state. One the application is moves past this state, it is not possible to do a \'hard\' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.
         * @summary Delete a recurring deposit application
         * @param {number} accountId accountId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        delete16: function (accountId, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('delete16', 'accountId', accountId);
                            localVarPath = "/recurringdepositaccounts/{accountId}"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)));
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {number} [staffId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTemplate: function (officeId, staffId, dateFormat, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts/downloadtemplate";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (officeId !== undefined) {
                                localVarQueryParameter['officeId'] = officeId;
                            }
                            if (staffId !== undefined) {
                                localVarQueryParameter['staffId'] = staffId;
                            }
                            if (dateFormat !== undefined) {
                                localVarQueryParameter['dateFormat'] = dateFormat;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTransactionTemplate: function (officeId, dateFormat, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts/transactions/downloadtemplate";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (officeId !== undefined) {
                                localVarQueryParameter['officeId'] = officeId;
                            }
                            if (dateFormat !== undefined) {
                                localVarQueryParameter['dateFormat'] = dateFormat;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * Approve recurring deposit application:  Approves recurring deposit application so long as its in \'Submitted and pending approval\' state.  Undo approval recurring deposit application:  Will move \'approved\' recurring deposit application back to \'Submitted and pending approval\' state.  Reject recurring deposit application  Rejects recurring deposit application so long as its in \'Submitted and pending approval\' state.  Withdraw recurring deposit application:  Used when an applicant withdraws from the recurring deposit application. It must be in \'Submitted and pending approval\' state.  Activate a recurring deposit account:  Results in an approved recurring deposit application being converted into an \'active\' recurring deposit account.  Update the recommended deposit amount for a recurring deposit account:  Updates the recommended deposit amount for a RD account as on the effective date.  Close a recurring deposit account  Results in a Matured recurring deposit account being converted into a \'closed\' recurring deposit account.  On account close allowed actions are.Premature Close a recurring deposit account:  Results in an Active recurring deposit account being converted into a \'Premature Closed\' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)  On account premature closure allowed actions are.  Calculate Premature amount on Recurring deposit account:  Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any.  Calculate Interest on recurring Deposit Account:  Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.  Post Interest on recurring Deposit Account:  Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due.  Showing request/response for \'Post Interest on recurring Deposit Account\'
         * @summary Approve recurring deposit application | Undo approval recurring deposit application | Reject recurring deposit application | Withdraw recurring deposit application | Activate a recurring deposit account | Update the recommended deposit amount for a recurring deposit account | Close a recurring deposit account | Premature Close a recurring deposit account | Calculate Premature amount on Recurring deposit account | Calculate Interest on recurring Deposit Account | Post Interest on recurring Deposit Account
         * @param {number} accountId accountId
         * @param {object} body
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands5: function (accountId, body, command, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('handleCommands5', 'accountId', accountId);
                            // verify required parameter 'body' is not null or undefined
                            common_1.assertParamExists('handleCommands5', 'body', body);
                            localVarPath = "/recurringdepositaccounts/{accountId}"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)));
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (command !== undefined) {
                                localVarQueryParameter['command'] = command;
                            }
                            localVarHeaderParameter['Content-Type'] = 'application/json';
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            localVarRequestOptions.data = common_1.serializeDataIfNeeded(body, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTemplate: function (file, locale, dateFormat, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts/uploadtemplate";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (file !== undefined) {
                                localVarFormParams.append('file', new Blob([JSON.stringify(file)], { type: "application/json", }));
                            }
                            if (locale !== undefined) {
                                localVarFormParams.append('locale', locale);
                            }
                            if (dateFormat !== undefined) {
                                localVarFormParams.append('dateFormat', dateFormat);
                            }
                            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            localVarRequestOptions.data = localVarFormParams;
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTransactionsTemplate: function (file, locale, dateFormat, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts/transactions/uploadtemplate";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (file !== undefined) {
                                localVarFormParams.append('file', new Blob([JSON.stringify(file)], { type: "application/json", }));
                            }
                            if (locale !== undefined) {
                                localVarFormParams.append('locale', locale);
                            }
                            if (dateFormat !== undefined) {
                                localVarFormParams.append('dateFormat', dateFormat);
                            }
                            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            localVarRequestOptions.data = localVarFormParams;
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * Lists Recurring deposit applications/accounts  Example Requests:  recurringdepositaccounts   recurringdepositaccounts?fields=name
         * @summary List Recurring deposit applications/accounts
         * @param {boolean} [paged] paged
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {string} [orderBy] orderBy
         * @param {string} [sortOrder] sortOrder
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAll31: function (paged, offset, limit, orderBy, sortOrder, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (paged !== undefined) {
                                localVarQueryParameter['paged'] = paged;
                            }
                            if (offset !== undefined) {
                                localVarQueryParameter['offset'] = offset;
                            }
                            if (limit !== undefined) {
                                localVarQueryParameter['limit'] = limit;
                            }
                            if (orderBy !== undefined) {
                                localVarQueryParameter['orderBy'] = orderBy;
                            }
                            if (sortOrder !== undefined) {
                                localVarQueryParameter['sortOrder'] = sortOrder;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * Retrieves a recurring deposit application/account  Example Requests :  recurringdepositaccounts/1   recurringdepositaccounts/1?associations=all
         * @summary Retrieve a recurring deposit application/account
         * @param {number} accountId accountId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {string} [chargeStatus] chargeStatus
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveOne21: function (accountId, staffInSelectedOfficeOnly, chargeStatus, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('retrieveOne21', 'accountId', accountId);
                            localVarPath = "/recurringdepositaccounts/{accountId}"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)));
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (staffInSelectedOfficeOnly !== undefined) {
                                localVarQueryParameter['staffInSelectedOfficeOnly'] = staffInSelectedOfficeOnly;
                            }
                            if (chargeStatus !== undefined) {
                                localVarQueryParameter['chargeStatus'] = chargeStatus;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * Submits new recurring deposit application  Mandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId  Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )  Inherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax
         * @summary Submit new recurring deposit application
         * @param {PostRecurringDepositAccountsRequest} postRecurringDepositAccountsRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submitApplication1: function (postRecurringDepositAccountsRequest, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'postRecurringDepositAccountsRequest' is not null or undefined
                            common_1.assertParamExists('submitApplication1', 'postRecurringDepositAccountsRequest', postRecurringDepositAccountsRequest);
                            localVarPath = "/recurringdepositaccounts";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            localVarHeaderParameter['Content-Type'] = 'application/json';
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            localVarRequestOptions.data = common_1.serializeDataIfNeeded(postRecurringDepositAccountsRequest, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  recurringdepositaccounts/template?clientId=1   recurringdepositaccounts/template?clientId=1&productId=1
         * @summary Retrieve recurring Deposit Account Template
         * @param {number} [clientId] clientId
         * @param {number} [groupId] groupId
         * @param {number} [productId] productId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template13: function (clientId, groupId, productId, staffInSelectedOfficeOnly, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            localVarPath = "/recurringdepositaccounts/template";
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            if (clientId !== undefined) {
                                localVarQueryParameter['clientId'] = clientId;
                            }
                            if (groupId !== undefined) {
                                localVarQueryParameter['groupId'] = groupId;
                            }
                            if (productId !== undefined) {
                                localVarQueryParameter['productId'] = productId;
                            }
                            if (staffInSelectedOfficeOnly !== undefined) {
                                localVarQueryParameter['staffInSelectedOfficeOnly'] = staffInSelectedOfficeOnly;
                            }
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         * Recurring deposit application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
         * @summary Modify a recurring deposit application
         * @param {number} accountId accountId
         * @param {PutRecurringDepositAccountsAccountIdRequest} putRecurringDepositAccountsAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        update17: function (accountId, putRecurringDepositAccountsAccountIdRequest, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('update17', 'accountId', accountId);
                            // verify required parameter 'putRecurringDepositAccountsAccountIdRequest' is not null or undefined
                            common_1.assertParamExists('update17', 'putRecurringDepositAccountsAccountIdRequest', putRecurringDepositAccountsAccountIdRequest);
                            localVarPath = "/recurringdepositaccounts/{accountId}"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)));
                            localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
                            if (configuration) {
                                baseOptions = configuration.baseOptions;
                            }
                            localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
                            localVarHeaderParameter = {};
                            localVarQueryParameter = {};
                            // authentication basicAuth required
                            // http basic authentication required
                            common_1.setBasicAuthToObject(localVarRequestOptions, configuration);
                            // authentication tenantid required
                            return [4 /*yield*/, common_1.setApiKeyToObject(localVarHeaderParameter, "fineract-platform-tenantid", configuration)];
                        case 1:
                            // authentication tenantid required
                            _a.sent();
                            localVarHeaderParameter['Content-Type'] = 'application/json';
                            common_1.setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
                            headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                            localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                            localVarRequestOptions.data = common_1.serializeDataIfNeeded(putRecurringDepositAccountsAccountIdRequest, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
    };
};
/**
 * RecurringDepositAccountApi - functional programming interface
 * @export
 */
exports.RecurringDepositAccountApiFp = function (configuration) {
    var localVarAxiosParamCreator = exports.RecurringDepositAccountApiAxiosParamCreator(configuration);
    return {
        /**
         *
         * @param {number} accountId accountId
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        accountClosureTemplate1: function (accountId, command, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.accountClosureTemplate1(accountId, command, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * At present we support hard delete of recurring deposit application so long as its in \'Submitted and pending approval\' state. One the application is moves past this state, it is not possible to do a \'hard\' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.
         * @summary Delete a recurring deposit application
         * @param {number} accountId accountId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        delete16: function (accountId, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.delete16(accountId, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {number} [staffId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTemplate: function (officeId, staffId, dateFormat, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecurringDepositTemplate(officeId, staffId, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTransactionTemplate: function (officeId, dateFormat, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecurringDepositTransactionTemplate(officeId, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Approve recurring deposit application:  Approves recurring deposit application so long as its in \'Submitted and pending approval\' state.  Undo approval recurring deposit application:  Will move \'approved\' recurring deposit application back to \'Submitted and pending approval\' state.  Reject recurring deposit application  Rejects recurring deposit application so long as its in \'Submitted and pending approval\' state.  Withdraw recurring deposit application:  Used when an applicant withdraws from the recurring deposit application. It must be in \'Submitted and pending approval\' state.  Activate a recurring deposit account:  Results in an approved recurring deposit application being converted into an \'active\' recurring deposit account.  Update the recommended deposit amount for a recurring deposit account:  Updates the recommended deposit amount for a RD account as on the effective date.  Close a recurring deposit account  Results in a Matured recurring deposit account being converted into a \'closed\' recurring deposit account.  On account close allowed actions are.Premature Close a recurring deposit account:  Results in an Active recurring deposit account being converted into a \'Premature Closed\' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)  On account premature closure allowed actions are.  Calculate Premature amount on Recurring deposit account:  Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any.  Calculate Interest on recurring Deposit Account:  Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.  Post Interest on recurring Deposit Account:  Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due.  Showing request/response for \'Post Interest on recurring Deposit Account\'
         * @summary Approve recurring deposit application | Undo approval recurring deposit application | Reject recurring deposit application | Withdraw recurring deposit application | Activate a recurring deposit account | Update the recommended deposit amount for a recurring deposit account | Close a recurring deposit account | Premature Close a recurring deposit account | Calculate Premature amount on Recurring deposit account | Calculate Interest on recurring Deposit Account | Post Interest on recurring Deposit Account
         * @param {number} accountId accountId
         * @param {object} body
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands5: function (accountId, body, command, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.handleCommands5(accountId, body, command, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTemplate: function (file, locale, dateFormat, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.postRecurringDepositTemplate(file, locale, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTransactionsTemplate: function (file, locale, dateFormat, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.postRecurringDepositTransactionsTemplate(file, locale, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Lists Recurring deposit applications/accounts  Example Requests:  recurringdepositaccounts   recurringdepositaccounts?fields=name
         * @summary List Recurring deposit applications/accounts
         * @param {boolean} [paged] paged
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {string} [orderBy] orderBy
         * @param {string} [sortOrder] sortOrder
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAll31: function (paged, offset, limit, orderBy, sortOrder, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.retrieveAll31(paged, offset, limit, orderBy, sortOrder, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Retrieves a recurring deposit application/account  Example Requests :  recurringdepositaccounts/1   recurringdepositaccounts/1?associations=all
         * @summary Retrieve a recurring deposit application/account
         * @param {number} accountId accountId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {string} [chargeStatus] chargeStatus
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveOne21: function (accountId, staffInSelectedOfficeOnly, chargeStatus, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.retrieveOne21(accountId, staffInSelectedOfficeOnly, chargeStatus, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Submits new recurring deposit application  Mandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId  Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )  Inherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax
         * @summary Submit new recurring deposit application
         * @param {PostRecurringDepositAccountsRequest} postRecurringDepositAccountsRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submitApplication1: function (postRecurringDepositAccountsRequest, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitApplication1(postRecurringDepositAccountsRequest, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  recurringdepositaccounts/template?clientId=1   recurringdepositaccounts/template?clientId=1&productId=1
         * @summary Retrieve recurring Deposit Account Template
         * @param {number} [clientId] clientId
         * @param {number} [groupId] groupId
         * @param {number} [productId] productId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template13: function (clientId, groupId, productId, staffInSelectedOfficeOnly, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.template13(clientId, groupId, productId, staffInSelectedOfficeOnly, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Recurring deposit application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
         * @summary Modify a recurring deposit application
         * @param {number} accountId accountId
         * @param {PutRecurringDepositAccountsAccountIdRequest} putRecurringDepositAccountsAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        update17: function (accountId, putRecurringDepositAccountsAccountIdRequest, options) {
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.update17(accountId, putRecurringDepositAccountsAccountIdRequest, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
    };
};
/**
 * RecurringDepositAccountApi - factory interface
 * @export
 */
exports.RecurringDepositAccountApiFactory = function (configuration, basePath, axios) {
    var localVarFp = exports.RecurringDepositAccountApiFp(configuration);
    return {
        /**
         *
         * @param {number} accountId accountId
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        accountClosureTemplate1: function (accountId, command, options) {
            return localVarFp.accountClosureTemplate1(accountId, command, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * At present we support hard delete of recurring deposit application so long as its in \'Submitted and pending approval\' state. One the application is moves past this state, it is not possible to do a \'hard\' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.
         * @summary Delete a recurring deposit application
         * @param {number} accountId accountId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        delete16: function (accountId, options) {
            return localVarFp.delete16(accountId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {number} [staffId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTemplate: function (officeId, staffId, dateFormat, options) {
            return localVarFp.getRecurringDepositTemplate(officeId, staffId, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecurringDepositTransactionTemplate: function (officeId, dateFormat, options) {
            return localVarFp.getRecurringDepositTransactionTemplate(officeId, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Approve recurring deposit application:  Approves recurring deposit application so long as its in \'Submitted and pending approval\' state.  Undo approval recurring deposit application:  Will move \'approved\' recurring deposit application back to \'Submitted and pending approval\' state.  Reject recurring deposit application  Rejects recurring deposit application so long as its in \'Submitted and pending approval\' state.  Withdraw recurring deposit application:  Used when an applicant withdraws from the recurring deposit application. It must be in \'Submitted and pending approval\' state.  Activate a recurring deposit account:  Results in an approved recurring deposit application being converted into an \'active\' recurring deposit account.  Update the recommended deposit amount for a recurring deposit account:  Updates the recommended deposit amount for a RD account as on the effective date.  Close a recurring deposit account  Results in a Matured recurring deposit account being converted into a \'closed\' recurring deposit account.  On account close allowed actions are.Premature Close a recurring deposit account:  Results in an Active recurring deposit account being converted into a \'Premature Closed\' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)  On account premature closure allowed actions are.  Calculate Premature amount on Recurring deposit account:  Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any.  Calculate Interest on recurring Deposit Account:  Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.  Post Interest on recurring Deposit Account:  Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due.  Showing request/response for \'Post Interest on recurring Deposit Account\'
         * @summary Approve recurring deposit application | Undo approval recurring deposit application | Reject recurring deposit application | Withdraw recurring deposit application | Activate a recurring deposit account | Update the recommended deposit amount for a recurring deposit account | Close a recurring deposit account | Premature Close a recurring deposit account | Calculate Premature amount on Recurring deposit account | Calculate Interest on recurring Deposit Account | Post Interest on recurring Deposit Account
         * @param {number} accountId accountId
         * @param {object} body
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands5: function (accountId, body, command, options) {
            return localVarFp.handleCommands5(accountId, body, command, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTemplate: function (file, locale, dateFormat, options) {
            return localVarFp.postRecurringDepositTemplate(file, locale, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postRecurringDepositTransactionsTemplate: function (file, locale, dateFormat, options) {
            return localVarFp.postRecurringDepositTransactionsTemplate(file, locale, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Lists Recurring deposit applications/accounts  Example Requests:  recurringdepositaccounts   recurringdepositaccounts?fields=name
         * @summary List Recurring deposit applications/accounts
         * @param {boolean} [paged] paged
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {string} [orderBy] orderBy
         * @param {string} [sortOrder] sortOrder
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAll31: function (paged, offset, limit, orderBy, sortOrder, options) {
            return localVarFp.retrieveAll31(paged, offset, limit, orderBy, sortOrder, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Retrieves a recurring deposit application/account  Example Requests :  recurringdepositaccounts/1   recurringdepositaccounts/1?associations=all
         * @summary Retrieve a recurring deposit application/account
         * @param {number} accountId accountId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {string} [chargeStatus] chargeStatus
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveOne21: function (accountId, staffInSelectedOfficeOnly, chargeStatus, options) {
            return localVarFp.retrieveOne21(accountId, staffInSelectedOfficeOnly, chargeStatus, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Submits new recurring deposit application  Mandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId  Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )  Inherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax
         * @summary Submit new recurring deposit application
         * @param {PostRecurringDepositAccountsRequest} postRecurringDepositAccountsRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submitApplication1: function (postRecurringDepositAccountsRequest, options) {
            return localVarFp.submitApplication1(postRecurringDepositAccountsRequest, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  recurringdepositaccounts/template?clientId=1   recurringdepositaccounts/template?clientId=1&productId=1
         * @summary Retrieve recurring Deposit Account Template
         * @param {number} [clientId] clientId
         * @param {number} [groupId] groupId
         * @param {number} [productId] productId
         * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template13: function (clientId, groupId, productId, staffInSelectedOfficeOnly, options) {
            return localVarFp.template13(clientId, groupId, productId, staffInSelectedOfficeOnly, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Recurring deposit application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
         * @summary Modify a recurring deposit application
         * @param {number} accountId accountId
         * @param {PutRecurringDepositAccountsAccountIdRequest} putRecurringDepositAccountsAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        update17: function (accountId, putRecurringDepositAccountsAccountIdRequest, options) {
            return localVarFp.update17(accountId, putRecurringDepositAccountsAccountIdRequest, options).then(function (request) { return request(axios, basePath); });
        },
    };
};
/**
 * RecurringDepositAccountApi - object-oriented interface
 * @export
 * @class RecurringDepositAccountApi
 * @extends {BaseAPI}
 */
var RecurringDepositAccountApi = /** @class */ (function (_super) {
    __extends(RecurringDepositAccountApi, _super);
    function RecurringDepositAccountApi() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     *
     * @param {number} accountId accountId
     * @param {string} [command] command
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.accountClosureTemplate1 = function (accountId, command, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).accountClosureTemplate1(accountId, command, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * At present we support hard delete of recurring deposit application so long as its in \'Submitted and pending approval\' state. One the application is moves past this state, it is not possible to do a \'hard\' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.
     * @summary Delete a recurring deposit application
     * @param {number} accountId accountId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.delete16 = function (accountId, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).delete16(accountId, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {number} [officeId]
     * @param {number} [staffId]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.getRecurringDepositTemplate = function (officeId, staffId, dateFormat, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).getRecurringDepositTemplate(officeId, staffId, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {number} [officeId]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.getRecurringDepositTransactionTemplate = function (officeId, dateFormat, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).getRecurringDepositTransactionTemplate(officeId, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Approve recurring deposit application:  Approves recurring deposit application so long as its in \'Submitted and pending approval\' state.  Undo approval recurring deposit application:  Will move \'approved\' recurring deposit application back to \'Submitted and pending approval\' state.  Reject recurring deposit application  Rejects recurring deposit application so long as its in \'Submitted and pending approval\' state.  Withdraw recurring deposit application:  Used when an applicant withdraws from the recurring deposit application. It must be in \'Submitted and pending approval\' state.  Activate a recurring deposit account:  Results in an approved recurring deposit application being converted into an \'active\' recurring deposit account.  Update the recommended deposit amount for a recurring deposit account:  Updates the recommended deposit amount for a RD account as on the effective date.  Close a recurring deposit account  Results in a Matured recurring deposit account being converted into a \'closed\' recurring deposit account.  On account close allowed actions are.Premature Close a recurring deposit account:  Results in an Active recurring deposit account being converted into a \'Premature Closed\' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)  On account premature closure allowed actions are.  Calculate Premature amount on Recurring deposit account:  Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any.  Calculate Interest on recurring Deposit Account:  Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process.  Post Interest on recurring Deposit Account:  Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due.  Showing request/response for \'Post Interest on recurring Deposit Account\'
     * @summary Approve recurring deposit application | Undo approval recurring deposit application | Reject recurring deposit application | Withdraw recurring deposit application | Activate a recurring deposit account | Update the recommended deposit amount for a recurring deposit account | Close a recurring deposit account | Premature Close a recurring deposit account | Calculate Premature amount on Recurring deposit account | Calculate Interest on recurring Deposit Account | Post Interest on recurring Deposit Account
     * @param {number} accountId accountId
     * @param {object} body
     * @param {string} [command] command
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.handleCommands5 = function (accountId, body, command, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).handleCommands5(accountId, body, command, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {FormDataContentDisposition} [file]
     * @param {string} [locale]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.postRecurringDepositTemplate = function (file, locale, dateFormat, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).postRecurringDepositTemplate(file, locale, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {FormDataContentDisposition} [file]
     * @param {string} [locale]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.postRecurringDepositTransactionsTemplate = function (file, locale, dateFormat, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).postRecurringDepositTransactionsTemplate(file, locale, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Lists Recurring deposit applications/accounts  Example Requests:  recurringdepositaccounts   recurringdepositaccounts?fields=name
     * @summary List Recurring deposit applications/accounts
     * @param {boolean} [paged] paged
     * @param {number} [offset] offset
     * @param {number} [limit] limit
     * @param {string} [orderBy] orderBy
     * @param {string} [sortOrder] sortOrder
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.retrieveAll31 = function (paged, offset, limit, orderBy, sortOrder, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).retrieveAll31(paged, offset, limit, orderBy, sortOrder, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Retrieves a recurring deposit application/account  Example Requests :  recurringdepositaccounts/1   recurringdepositaccounts/1?associations=all
     * @summary Retrieve a recurring deposit application/account
     * @param {number} accountId accountId
     * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
     * @param {string} [chargeStatus] chargeStatus
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.retrieveOne21 = function (accountId, staffInSelectedOfficeOnly, chargeStatus, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).retrieveOne21(accountId, staffInSelectedOfficeOnly, chargeStatus, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Submits new recurring deposit application  Mandatory Fields: clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId  Optional Fields: accountNo, externalId, fieldOfficerId,linkAccountId(if provided initial deposit amount will be collected from this account),transferInterestToSavings(By enabling this flag all interest postings will be transferred to linked saving account )  Inherited from Product (if not provided): interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts, withHoldTax
     * @summary Submit new recurring deposit application
     * @param {PostRecurringDepositAccountsRequest} postRecurringDepositAccountsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.submitApplication1 = function (postRecurringDepositAccountsRequest, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).submitApplication1(postRecurringDepositAccountsRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  recurringdepositaccounts/template?clientId=1   recurringdepositaccounts/template?clientId=1&productId=1
     * @summary Retrieve recurring Deposit Account Template
     * @param {number} [clientId] clientId
     * @param {number} [groupId] groupId
     * @param {number} [productId] productId
     * @param {boolean} [staffInSelectedOfficeOnly] staffInSelectedOfficeOnly
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.template13 = function (clientId, groupId, productId, staffInSelectedOfficeOnly, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).template13(clientId, groupId, productId, staffInSelectedOfficeOnly, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Recurring deposit application can only be modified when in \'Submitted and pending approval\' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
     * @summary Modify a recurring deposit application
     * @param {number} accountId accountId
     * @param {PutRecurringDepositAccountsAccountIdRequest} putRecurringDepositAccountsAccountIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RecurringDepositAccountApi
     */
    RecurringDepositAccountApi.prototype.update17 = function (accountId, putRecurringDepositAccountsAccountIdRequest, options) {
        var _this = this;
        return exports.RecurringDepositAccountApiFp(this.configuration).update17(accountId, putRecurringDepositAccountsAccountIdRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    return RecurringDepositAccountApi;
}(base_1.BaseAPI));
exports.RecurringDepositAccountApi = RecurringDepositAccountApi;