UNPKG

fineract_sdk

Version:

Wrapper around fineract api.

922 lines 64.8 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.ShareAccountApi = exports.ShareAccountApiFactory = exports.ShareAccountApiFp = exports.ShareAccountApiAxiosParamCreator = 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");
/**
 * ShareAccountApi - axios parameter creator
 * @export
 */
exports.ShareAccountApiAxiosParamCreator = function (configuration) {
    var _this = this;
    return {
        /**
         * Submits new share application  Mandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate  Optional Fields: accountNo, externalId  Inherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType
         * @summary Submit new share application
         * @param {string} type type
         * @param {PostAccountsTypeRequest} postAccountsTypeRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccount: function (type, postAccountsTypeRequest, 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 'type' is not null or undefined
                            common_1.assertParamExists('createAccount', 'type', type);
                            // verify required parameter 'postAccountsTypeRequest' is not null or undefined
                            common_1.assertParamExists('createAccount', 'postAccountsTypeRequest', postAccountsTypeRequest);
                            localVarPath = "/accounts/{type}"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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(postAccountsTypeRequest, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {string} type type
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSharedAccountsTemplate: function (type, 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:
                            // verify required parameter 'type' is not null or undefined
                            common_1.assertParamExists('getSharedAccountsTemplate', 'type', type);
                            localVarPath = "/accounts/{type}/downloadtemplate"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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 share application:  Approves share application so long as its in \'Submitted and pending approval\' state.  Undo approval share application:  Will move \'approved\' share application back to \'Submitted and pending approval\' state.  Reject share application:  Rejects share application so long as its in \'Submitted and pending approval\' state.  Activate a share account:  Results in an approved share application being converted into an \'active\' share account.  Close a share account:  Results in an Activated share application being converted into an \'closed\' share account.  closedDate is closure date of share account  Mandatory Fields: dateFormat,locale,closedDate  Apply additional shares on a share account:  requestedDate is requsted date of share purchase  requestedShares is number of shares to be purchase  Mandatory Fields: dateFormat,locale,requestedDate, requestedShares  Approve additional shares request on a share account  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Reject additional shares request on a share account:  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Redeem shares on a share account:  Results redeem some/all shares from share account.  requestedDate is requsted date of shares redeem  requestedShares is number of shares to be redeemed  Mandatory Fields: dateFormat,locale,requestedDate,requestedShares  Showing request/response for \'Reject additional shares request on a share account\'  For more info visit this link - https://demo.fineract.dev/fineract-provider/api-docs/apiLive.htm#shareaccounts
         * @summary Approve share application | Undo approval share application | Reject share application | Activate a share account | Close a share account | Apply additional shares on a share account | Approve additional shares request on a share account | Reject additional shares request on a share account | Redeem shares on a share account
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PostAccountsTypeAccountIdRequest} postAccountsTypeAccountIdRequest
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands2: function (type, accountId, postAccountsTypeAccountIdRequest, 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 'type' is not null or undefined
                            common_1.assertParamExists('handleCommands2', 'type', type);
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('handleCommands2', 'accountId', accountId);
                            // verify required parameter 'postAccountsTypeAccountIdRequest' is not null or undefined
                            common_1.assertParamExists('handleCommands2', 'postAccountsTypeAccountIdRequest', postAccountsTypeAccountIdRequest);
                            localVarPath = "/accounts/{type}/{accountId}"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)))
                                .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(postAccountsTypeAccountIdRequest, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
        /**
         *
         * @param {string} type type
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postSharedAccountsTemplate: function (type, 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:
                            // verify required parameter 'type' is not null or undefined
                            common_1.assertParamExists('postSharedAccountsTemplate', 'type', type);
                            localVarPath = "/accounts/{type}/uploadtemplate"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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,
                                }];
                    }
                });
            });
        },
        /**
         * Retrieves a share application/account  Example Requests :  shareaccount/1
         * @summary Retrieve a share application/account
         * @param {number} accountId accountId
         * @param {string} type type
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAccount: function (accountId, type, 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('retrieveAccount', 'accountId', accountId);
                            // verify required parameter 'type' is not null or undefined
                            common_1.assertParamExists('retrieveAccount', 'type', type);
                            localVarPath = "/accounts/{type}/{accountId}"
                                .replace("{" + "accountId" + "}", encodeURIComponent(String(accountId)))
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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();
                            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,
                                }];
                    }
                });
            });
        },
        /**
         * Lists share applications/accounts  Example Requests:  shareaccount
         * @summary List share applications/accounts
         * @param {string} type type
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAllAccounts1: function (type, offset, limit, 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 'type' is not null or undefined
                            common_1.assertParamExists('retrieveAllAccounts1', 'type', type);
                            localVarPath = "/accounts/{type}"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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 (offset !== undefined) {
                                localVarQueryParameter['offset'] = offset;
                            }
                            if (limit !== undefined) {
                                localVarQueryParameter['limit'] = limit;
                            }
                            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,
                                }];
                    }
                });
            });
        },
        /**
         * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  accounts/share/template?clientId=1   accounts/share/template?clientId=1&productId=1
         * @summary Retrieve Share Account Template
         * @param {string} type type
         * @param {number} [clientId] clientId
         * @param {number} [productId] productId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template7: function (type, clientId, productId, 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 'type' is not null or undefined
                            common_1.assertParamExists('template7', 'type', type);
                            localVarPath = "/accounts/{type}/template"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)));
                            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 (productId !== undefined) {
                                localVarQueryParameter['productId'] = productId;
                            }
                            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,
                                }];
                    }
                });
            });
        },
        /**
         * Share 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 share application
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PutAccountsTypeAccountIdRequest} putAccountsTypeAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccount: function (type, accountId, putAccountsTypeAccountIdRequest, 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 'type' is not null or undefined
                            common_1.assertParamExists('updateAccount', 'type', type);
                            // verify required parameter 'accountId' is not null or undefined
                            common_1.assertParamExists('updateAccount', 'accountId', accountId);
                            // verify required parameter 'putAccountsTypeAccountIdRequest' is not null or undefined
                            common_1.assertParamExists('updateAccount', 'putAccountsTypeAccountIdRequest', putAccountsTypeAccountIdRequest);
                            localVarPath = "/accounts/{type}/{accountId}"
                                .replace("{" + "type" + "}", encodeURIComponent(String(type)))
                                .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(putAccountsTypeAccountIdRequest, localVarRequestOptions, configuration);
                            return [2 /*return*/, {
                                    url: common_1.toPathString(localVarUrlObj),
                                    options: localVarRequestOptions,
                                }];
                    }
                });
            });
        },
    };
};
/**
 * ShareAccountApi - functional programming interface
 * @export
 */
exports.ShareAccountApiFp = function (configuration) {
    var localVarAxiosParamCreator = exports.ShareAccountApiAxiosParamCreator(configuration);
    return {
        /**
         * Submits new share application  Mandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate  Optional Fields: accountNo, externalId  Inherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType
         * @summary Submit new share application
         * @param {string} type type
         * @param {PostAccountsTypeRequest} postAccountsTypeRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccount: function (type, postAccountsTypeRequest, 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.createAccount(type, postAccountsTypeRequest, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {string} type type
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSharedAccountsTemplate: function (type, 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.getSharedAccountsTemplate(type, officeId, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Approve share application:  Approves share application so long as its in \'Submitted and pending approval\' state.  Undo approval share application:  Will move \'approved\' share application back to \'Submitted and pending approval\' state.  Reject share application:  Rejects share application so long as its in \'Submitted and pending approval\' state.  Activate a share account:  Results in an approved share application being converted into an \'active\' share account.  Close a share account:  Results in an Activated share application being converted into an \'closed\' share account.  closedDate is closure date of share account  Mandatory Fields: dateFormat,locale,closedDate  Apply additional shares on a share account:  requestedDate is requsted date of share purchase  requestedShares is number of shares to be purchase  Mandatory Fields: dateFormat,locale,requestedDate, requestedShares  Approve additional shares request on a share account  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Reject additional shares request on a share account:  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Redeem shares on a share account:  Results redeem some/all shares from share account.  requestedDate is requsted date of shares redeem  requestedShares is number of shares to be redeemed  Mandatory Fields: dateFormat,locale,requestedDate,requestedShares  Showing request/response for \'Reject additional shares request on a share account\'  For more info visit this link - https://demo.fineract.dev/fineract-provider/api-docs/apiLive.htm#shareaccounts
         * @summary Approve share application | Undo approval share application | Reject share application | Activate a share account | Close a share account | Apply additional shares on a share account | Approve additional shares request on a share account | Reject additional shares request on a share account | Redeem shares on a share account
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PostAccountsTypeAccountIdRequest} postAccountsTypeAccountIdRequest
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands2: function (type, accountId, postAccountsTypeAccountIdRequest, 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.handleCommands2(type, accountId, postAccountsTypeAccountIdRequest, command, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         *
         * @param {string} type type
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postSharedAccountsTemplate: function (type, 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.postSharedAccountsTemplate(type, file, locale, dateFormat, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Retrieves a share application/account  Example Requests :  shareaccount/1
         * @summary Retrieve a share application/account
         * @param {number} accountId accountId
         * @param {string} type type
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAccount: function (accountId, type, 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.retrieveAccount(accountId, type, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Lists share applications/accounts  Example Requests:  shareaccount
         * @summary List share applications/accounts
         * @param {string} type type
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAllAccounts1: function (type, offset, limit, 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.retrieveAllAccounts1(type, offset, limit, 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 client applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  accounts/share/template?clientId=1   accounts/share/template?clientId=1&productId=1
         * @summary Retrieve Share Account Template
         * @param {string} type type
         * @param {number} [clientId] clientId
         * @param {number} [productId] productId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template7: function (type, clientId, productId, 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.template7(type, clientId, productId, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
        /**
         * Share 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 share application
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PutAccountsTypeAccountIdRequest} putAccountsTypeAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccount: function (type, accountId, putAccountsTypeAccountIdRequest, 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.updateAccount(type, accountId, putAccountsTypeAccountIdRequest, options)];
                        case 1:
                            localVarAxiosArgs = _a.sent();
                            return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
                    }
                });
            });
        },
    };
};
/**
 * ShareAccountApi - factory interface
 * @export
 */
exports.ShareAccountApiFactory = function (configuration, basePath, axios) {
    var localVarFp = exports.ShareAccountApiFp(configuration);
    return {
        /**
         * Submits new share application  Mandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate  Optional Fields: accountNo, externalId  Inherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType
         * @summary Submit new share application
         * @param {string} type type
         * @param {PostAccountsTypeRequest} postAccountsTypeRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAccount: function (type, postAccountsTypeRequest, options) {
            return localVarFp.createAccount(type, postAccountsTypeRequest, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {string} type type
         * @param {number} [officeId]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getSharedAccountsTemplate: function (type, officeId, dateFormat, options) {
            return localVarFp.getSharedAccountsTemplate(type, officeId, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Approve share application:  Approves share application so long as its in \'Submitted and pending approval\' state.  Undo approval share application:  Will move \'approved\' share application back to \'Submitted and pending approval\' state.  Reject share application:  Rejects share application so long as its in \'Submitted and pending approval\' state.  Activate a share account:  Results in an approved share application being converted into an \'active\' share account.  Close a share account:  Results in an Activated share application being converted into an \'closed\' share account.  closedDate is closure date of share account  Mandatory Fields: dateFormat,locale,closedDate  Apply additional shares on a share account:  requestedDate is requsted date of share purchase  requestedShares is number of shares to be purchase  Mandatory Fields: dateFormat,locale,requestedDate, requestedShares  Approve additional shares request on a share account  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Reject additional shares request on a share account:  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Redeem shares on a share account:  Results redeem some/all shares from share account.  requestedDate is requsted date of shares redeem  requestedShares is number of shares to be redeemed  Mandatory Fields: dateFormat,locale,requestedDate,requestedShares  Showing request/response for \'Reject additional shares request on a share account\'  For more info visit this link - https://demo.fineract.dev/fineract-provider/api-docs/apiLive.htm#shareaccounts
         * @summary Approve share application | Undo approval share application | Reject share application | Activate a share account | Close a share account | Apply additional shares on a share account | Approve additional shares request on a share account | Reject additional shares request on a share account | Redeem shares on a share account
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PostAccountsTypeAccountIdRequest} postAccountsTypeAccountIdRequest
         * @param {string} [command] command
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        handleCommands2: function (type, accountId, postAccountsTypeAccountIdRequest, command, options) {
            return localVarFp.handleCommands2(type, accountId, postAccountsTypeAccountIdRequest, command, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         *
         * @param {string} type type
         * @param {FormDataContentDisposition} [file]
         * @param {string} [locale]
         * @param {string} [dateFormat]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        postSharedAccountsTemplate: function (type, file, locale, dateFormat, options) {
            return localVarFp.postSharedAccountsTemplate(type, file, locale, dateFormat, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Retrieves a share application/account  Example Requests :  shareaccount/1
         * @summary Retrieve a share application/account
         * @param {number} accountId accountId
         * @param {string} type type
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAccount: function (accountId, type, options) {
            return localVarFp.retrieveAccount(accountId, type, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Lists share applications/accounts  Example Requests:  shareaccount
         * @summary List share applications/accounts
         * @param {string} type type
         * @param {number} [offset] offset
         * @param {number} [limit] limit
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        retrieveAllAccounts1: function (type, offset, limit, options) {
            return localVarFp.retrieveAllAccounts1(type, offset, limit, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  accounts/share/template?clientId=1   accounts/share/template?clientId=1&productId=1
         * @summary Retrieve Share Account Template
         * @param {string} type type
         * @param {number} [clientId] clientId
         * @param {number} [productId] productId
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        template7: function (type, clientId, productId, options) {
            return localVarFp.template7(type, clientId, productId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Share 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 share application
         * @param {string} type type
         * @param {number} accountId accountId
         * @param {PutAccountsTypeAccountIdRequest} putAccountsTypeAccountIdRequest
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        updateAccount: function (type, accountId, putAccountsTypeAccountIdRequest, options) {
            return localVarFp.updateAccount(type, accountId, putAccountsTypeAccountIdRequest, options).then(function (request) { return request(axios, basePath); });
        },
    };
};
/**
 * ShareAccountApi - object-oriented interface
 * @export
 * @class ShareAccountApi
 * @extends {BaseAPI}
 */
var ShareAccountApi = /** @class */ (function (_super) {
    __extends(ShareAccountApi, _super);
    function ShareAccountApi() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     * Submits new share application  Mandatory Fields: clientId, productId, submittedDate, savingsAccountId, requestedShares, applicationDate  Optional Fields: accountNo, externalId  Inherited from Product (if not provided): minimumActivePeriod, minimumActivePeriodFrequencyType, lockinPeriodFrequency, lockinPeriodFrequencyType
     * @summary Submit new share application
     * @param {string} type type
     * @param {PostAccountsTypeRequest} postAccountsTypeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.createAccount = function (type, postAccountsTypeRequest, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).createAccount(type, postAccountsTypeRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {string} type type
     * @param {number} [officeId]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.getSharedAccountsTemplate = function (type, officeId, dateFormat, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).getSharedAccountsTemplate(type, officeId, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Approve share application:  Approves share application so long as its in \'Submitted and pending approval\' state.  Undo approval share application:  Will move \'approved\' share application back to \'Submitted and pending approval\' state.  Reject share application:  Rejects share application so long as its in \'Submitted and pending approval\' state.  Activate a share account:  Results in an approved share application being converted into an \'active\' share account.  Close a share account:  Results in an Activated share application being converted into an \'closed\' share account.  closedDate is closure date of share account  Mandatory Fields: dateFormat,locale,closedDate  Apply additional shares on a share account:  requestedDate is requsted date of share purchase  requestedShares is number of shares to be purchase  Mandatory Fields: dateFormat,locale,requestedDate, requestedShares  Approve additional shares request on a share account  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Reject additional shares request on a share account:  requestedShares is Share purchase transaction ids  Mandatory Fields: requestedShares  Redeem shares on a share account:  Results redeem some/all shares from share account.  requestedDate is requsted date of shares redeem  requestedShares is number of shares to be redeemed  Mandatory Fields: dateFormat,locale,requestedDate,requestedShares  Showing request/response for \'Reject additional shares request on a share account\'  For more info visit this link - https://demo.fineract.dev/fineract-provider/api-docs/apiLive.htm#shareaccounts
     * @summary Approve share application | Undo approval share application | Reject share application | Activate a share account | Close a share account | Apply additional shares on a share account | Approve additional shares request on a share account | Reject additional shares request on a share account | Redeem shares on a share account
     * @param {string} type type
     * @param {number} accountId accountId
     * @param {PostAccountsTypeAccountIdRequest} postAccountsTypeAccountIdRequest
     * @param {string} [command] command
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.handleCommands2 = function (type, accountId, postAccountsTypeAccountIdRequest, command, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).handleCommands2(type, accountId, postAccountsTypeAccountIdRequest, command, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     *
     * @param {string} type type
     * @param {FormDataContentDisposition} [file]
     * @param {string} [locale]
     * @param {string} [dateFormat]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.postSharedAccountsTemplate = function (type, file, locale, dateFormat, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).postSharedAccountsTemplate(type, file, locale, dateFormat, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Retrieves a share application/account  Example Requests :  shareaccount/1
     * @summary Retrieve a share application/account
     * @param {number} accountId accountId
     * @param {string} type type
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.retrieveAccount = function (accountId, type, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).retrieveAccount(accountId, type, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Lists share applications/accounts  Example Requests:  shareaccount
     * @summary List share applications/accounts
     * @param {string} type type
     * @param {number} [offset] offset
     * @param {number} [limit] limit
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.retrieveAllAccounts1 = function (type, offset, limit, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).retrieveAllAccounts1(type, offset, limit, 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 client applications. The template data returned consists of any or all of:  Field Defaults Allowed Value Lists  Example Requests:  accounts/share/template?clientId=1   accounts/share/template?clientId=1&productId=1
     * @summary Retrieve Share Account Template
     * @param {string} type type
     * @param {number} [clientId] clientId
     * @param {number} [productId] productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.template7 = function (type, clientId, productId, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).template7(type, clientId, productId, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    /**
     * Share 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 share application
     * @param {string} type type
     * @param {number} accountId accountId
     * @param {PutAccountsTypeAccountIdRequest} putAccountsTypeAccountIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShareAccountApi
     */
    ShareAccountApi.prototype.updateAccount = function (type, accountId, putAccountsTypeAccountIdRequest, options) {
        var _this = this;
        return exports.ShareAccountApiFp(this.configuration).updateAccount(type, accountId, putAccountsTypeAccountIdRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
    };
    return ShareAccountApi;
}(base_1.BaseAPI));
exports.ShareAccountApi = ShareAccountApi;