"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * Fireblocks API
 * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
 *
 * The version of the OpenAPI document: 1.6.2
 * Contact: developers@fireblocks.com
 *
 * 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        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 (g && (g = 0, op[0] && (_ = 0)), _) 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 };
    }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InternalWalletsApi = exports.InternalWalletsApiFactory = exports.InternalWalletsApiFp = exports.InternalWalletsApiAxiosParamCreator = void 0;
var axios_1 = __importDefault(require("axios"));
var fireblocksResponse_1 = require("../response/fireblocksResponse");
// URLSearchParams not necessarily used
// @ts-ignore
var url_1 = require("url");
// Some imports not used depending on template conditions
// @ts-ignore
var common_1 = require("../common");
var validation_utils_1 = require("../utils/validation_utils");
// @ts-ignore
var base_1 = require("../base");
/**
 * InternalWalletsApi - axios parameter creator
 * @export
 */
var InternalWalletsApiAxiosParamCreator = function (configuration) {
    var _this = this;
    return {
        /**
         * Creates a new internal wallet with the requested name. Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets)
         * @summary Create an internal wallet
         * @param {CreateWalletRequest} [createWalletRequest]
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWallet: function (createWalletRequest, idempotencyKey, 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) {
                    localVarPath = "/internal_wallets";
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (idempotencyKey != null) {
                        localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
                    }
                    localVarHeaderParameter['Content-Type'] = 'application/json';
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWalletRequest, localVarRequestOptions, configuration);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Adds an asset to an existing internal wallet.
         * @summary Add an asset to an internal wallet
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to add
         * @param {CreateInternalWalletAssetRequest} [createInternalWalletAssetRequest]
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWalletAsset: function (walletId, assetId, createInternalWalletAssetRequest, idempotencyKey, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('createInternalWalletAsset', 'walletId', walletId);
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('createInternalWalletAsset', 'assetId', assetId);
                    localVarPath = "/internal_wallets/{walletId}/{assetId}"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)))
                        .replace("{".concat("assetId", "}"), encodeURIComponent(String(assetId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (idempotencyKey != null) {
                        localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
                    }
                    localVarHeaderParameter['Content-Type'] = 'application/json';
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createInternalWalletAssetRequest, localVarRequestOptions, configuration);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Deletes an internal wallet by ID.
         * @summary Delete an internal wallet
         * @param {string} walletId The ID of the wallet to delete
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWallet: function (walletId, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('deleteInternalWallet', 'walletId', walletId);
                    localVarPath = "/internal_wallets/{walletId}"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Deletes a whitelisted address (for an asset) from an internal wallet.
         * @summary Delete a whitelisted address
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to delete
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWalletAsset: function (walletId, assetId, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('deleteInternalWalletAsset', 'walletId', walletId);
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('deleteInternalWalletAsset', 'assetId', assetId);
                    localVarPath = "/internal_wallets/{walletId}/{assetId}"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)))
                        .replace("{".concat("assetId", "}"), encodeURIComponent(String(assetId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Returns information for an internal wallet.
         * @summary Get assets for internal wallet
         * @param {string} walletId The ID of the wallet to return
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallet: function (walletId, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('getInternalWallet', 'walletId', walletId);
                    localVarPath = "/internal_wallets/{walletId}"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Returns information for an asset in an internal wallet.
         * @summary Get an asset from an internal wallet
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to return
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAsset: function (walletId, assetId, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('getInternalWalletAsset', 'walletId', walletId);
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('getInternalWalletAsset', 'assetId', assetId);
                    localVarPath = "/internal_wallets/{walletId}/{assetId}"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)))
                        .replace("{".concat("assetId", "}"), encodeURIComponent(String(assetId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Returns a paginated response of assets in an internal wallet.
         * @summary List assets in an internal wallet (Paginated)
         * @param {string} walletId The ID of the internal wallet to return assets for
         * @param {number} [pageSize]
         * @param {string} [pageCursor]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAssetsPaginated: function (walletId, pageSize, pageCursor, 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) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('getInternalWalletAssetsPaginated', 'walletId', walletId);
                    localVarPath = "/internal_wallets/{walletId}/assets"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (pageSize !== undefined) {
                        localVarQueryParameter['pageSize'] = pageSize;
                    }
                    if (pageCursor !== undefined) {
                        localVarQueryParameter['pageCursor'] = pageCursor;
                    }
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Gets a list of internal wallets.
         * @summary List internal wallets
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallets: function (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) {
                    localVarPath = "/internal_wallets";
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Sets an AML/KYT customer reference ID for the specific internal wallet.
         * @summary Set an AML/KYT customer reference ID for internal wallet
         * @param {SetCustomerRefIdRequest} setCustomerRefIdRequest
         * @param {string} walletId The wallet ID
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setCustomerRefIdForInternalWallet: function (setCustomerRefIdRequest, walletId, idempotencyKey, 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) {
                    (0, common_1.assertParamExists)('setCustomerRefIdForInternalWallet', 'setCustomerRefIdRequest', setCustomerRefIdRequest);
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('setCustomerRefIdForInternalWallet', 'walletId', walletId);
                    localVarPath = "/internal_wallets/{walletId}/set_customer_ref_id"
                        .replace("{".concat("walletId", "}"), encodeURIComponent(String(walletId)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (idempotencyKey != null) {
                        localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
                    }
                    localVarHeaderParameter['Content-Type'] = 'application/json';
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(setCustomerRefIdRequest, localVarRequestOptions, configuration);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
    };
};
exports.InternalWalletsApiAxiosParamCreator = InternalWalletsApiAxiosParamCreator;
/**
 * InternalWalletsApi - functional programming interface
 * @export
 */
var InternalWalletsApiFp = function (configuration) {
    var localVarAxiosParamCreator = (0, exports.InternalWalletsApiAxiosParamCreator)(configuration);
    return {
        /**
         * Creates a new internal wallet with the requested name. Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets)
         * @summary Create an internal wallet
         * @param {CreateWalletRequest} [createWalletRequest]
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWallet: function (createWalletRequest, idempotencyKey, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.createInternalWallet(createWalletRequest, idempotencyKey, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.createInternalWallet']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Adds an asset to an existing internal wallet.
         * @summary Add an asset to an internal wallet
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to add
         * @param {CreateInternalWalletAssetRequest} [createInternalWalletAssetRequest]
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWalletAsset: function (walletId, assetId, createInternalWalletAssetRequest, idempotencyKey, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.createInternalWalletAsset(walletId, assetId, createInternalWalletAssetRequest, idempotencyKey, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.createInternalWalletAsset']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Deletes an internal wallet by ID.
         * @summary Delete an internal wallet
         * @param {string} walletId The ID of the wallet to delete
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWallet: function (walletId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteInternalWallet(walletId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.deleteInternalWallet']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Deletes a whitelisted address (for an asset) from an internal wallet.
         * @summary Delete a whitelisted address
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to delete
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWalletAsset: function (walletId, assetId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteInternalWalletAsset(walletId, assetId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.deleteInternalWalletAsset']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Returns information for an internal wallet.
         * @summary Get assets for internal wallet
         * @param {string} walletId The ID of the wallet to return
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallet: function (walletId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getInternalWallet(walletId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.getInternalWallet']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Returns information for an asset in an internal wallet.
         * @summary Get an asset from an internal wallet
         * @param {string} walletId The ID of the wallet
         * @param {string} assetId The ID of the asset to return
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAsset: function (walletId, assetId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getInternalWalletAsset(walletId, assetId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.getInternalWalletAsset']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Returns a paginated response of assets in an internal wallet.
         * @summary List assets in an internal wallet (Paginated)
         * @param {string} walletId The ID of the internal wallet to return assets for
         * @param {number} [pageSize]
         * @param {string} [pageCursor]
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAssetsPaginated: function (walletId, pageSize, pageCursor, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getInternalWalletAssetsPaginated(walletId, pageSize, pageCursor, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.getInternalWalletAssetsPaginated']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Gets a list of internal wallets.
         * @summary List internal wallets
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallets: function (options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.getInternalWallets(options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.getInternalWallets']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Sets an AML/KYT customer reference ID for the specific internal wallet.
         * @summary Set an AML/KYT customer reference ID for internal wallet
         * @param {SetCustomerRefIdRequest} setCustomerRefIdRequest
         * @param {string} walletId The wallet ID
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setCustomerRefIdForInternalWallet: function (setCustomerRefIdRequest, walletId, idempotencyKey, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCustomerRefIdForInternalWallet(setCustomerRefIdRequest, walletId, idempotencyKey, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['InternalWalletsApi.setCustomerRefIdForInternalWallet']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
    };
};
exports.InternalWalletsApiFp = InternalWalletsApiFp;
/**
 * InternalWalletsApi - factory interface
 * @export
 */
var InternalWalletsApiFactory = function (configuration, basePath, axios) {
    var localVarFp = (0, exports.InternalWalletsApiFp)(configuration);
    return {
        /**
         * Creates a new internal wallet with the requested name. Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets)
         * @summary Create an internal wallet
         * @param {InternalWalletsApiCreateInternalWalletRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWallet: function (requestParameters, options) {
            if (requestParameters === void 0) { requestParameters = {}; }
            return localVarFp.createInternalWallet(requestParameters.createWalletRequest, requestParameters.idempotencyKey, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Adds an asset to an existing internal wallet.
         * @summary Add an asset to an internal wallet
         * @param {InternalWalletsApiCreateInternalWalletAssetRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInternalWalletAsset: function (requestParameters, options) {
            return localVarFp.createInternalWalletAsset(requestParameters.walletId, requestParameters.assetId, requestParameters.createInternalWalletAssetRequest, requestParameters.idempotencyKey, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Deletes an internal wallet by ID.
         * @summary Delete an internal wallet
         * @param {InternalWalletsApiDeleteInternalWalletRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWallet: function (requestParameters, options) {
            return localVarFp.deleteInternalWallet(requestParameters.walletId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Deletes a whitelisted address (for an asset) from an internal wallet.
         * @summary Delete a whitelisted address
         * @param {InternalWalletsApiDeleteInternalWalletAssetRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteInternalWalletAsset: function (requestParameters, options) {
            return localVarFp.deleteInternalWalletAsset(requestParameters.walletId, requestParameters.assetId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Returns information for an internal wallet.
         * @summary Get assets for internal wallet
         * @param {InternalWalletsApiGetInternalWalletRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallet: function (requestParameters, options) {
            return localVarFp.getInternalWallet(requestParameters.walletId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Returns information for an asset in an internal wallet.
         * @summary Get an asset from an internal wallet
         * @param {InternalWalletsApiGetInternalWalletAssetRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAsset: function (requestParameters, options) {
            return localVarFp.getInternalWalletAsset(requestParameters.walletId, requestParameters.assetId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Returns a paginated response of assets in an internal wallet.
         * @summary List assets in an internal wallet (Paginated)
         * @param {InternalWalletsApiGetInternalWalletAssetsPaginatedRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWalletAssetsPaginated: function (requestParameters, options) {
            return localVarFp.getInternalWalletAssetsPaginated(requestParameters.walletId, requestParameters.pageSize, requestParameters.pageCursor, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Gets a list of internal wallets.
         * @summary List internal wallets
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInternalWallets: function (options) {
            return localVarFp.getInternalWallets(options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Sets an AML/KYT customer reference ID for the specific internal wallet.
         * @summary Set an AML/KYT customer reference ID for internal wallet
         * @param {InternalWalletsApiSetCustomerRefIdForInternalWalletRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setCustomerRefIdForInternalWallet: function (requestParameters, options) {
            return localVarFp.setCustomerRefIdForInternalWallet(requestParameters.setCustomerRefIdRequest, requestParameters.walletId, requestParameters.idempotencyKey, options).then(function (request) { return request(axios, basePath); });
        },
    };
};
exports.InternalWalletsApiFactory = InternalWalletsApiFactory;
/**
 * InternalWalletsApi - object-oriented interface
 * @export
 * @class InternalWalletsApi
 * @extends {BaseAPI}
 */
var InternalWalletsApi = /** @class */ (function (_super) {
    __extends(InternalWalletsApi, _super);
    function InternalWalletsApi() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     * Creates a new internal wallet with the requested name. Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets)
     * @summary Create an internal wallet
     * @param {InternalWalletsApiCreateInternalWalletRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.createInternalWallet = function (requestParameters) {
        var _this = this;
        if (requestParameters === void 0) { requestParameters = {}; }
        return (0, exports.InternalWalletsApiFp)(this.configuration).createInternalWallet(requestParameters.createWalletRequest, requestParameters.idempotencyKey).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Adds an asset to an existing internal wallet.
     * @summary Add an asset to an internal wallet
     * @param {InternalWalletsApiCreateInternalWalletAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.createInternalWalletAsset = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).createInternalWalletAsset(requestParameters.walletId, requestParameters.assetId, requestParameters.createInternalWalletAssetRequest, requestParameters.idempotencyKey).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Deletes an internal wallet by ID.
     * @summary Delete an internal wallet
     * @param {InternalWalletsApiDeleteInternalWalletRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.deleteInternalWallet = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).deleteInternalWallet(requestParameters.walletId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Deletes a whitelisted address (for an asset) from an internal wallet.
     * @summary Delete a whitelisted address
     * @param {InternalWalletsApiDeleteInternalWalletAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.deleteInternalWalletAsset = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).deleteInternalWalletAsset(requestParameters.walletId, requestParameters.assetId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Returns information for an internal wallet.
     * @summary Get assets for internal wallet
     * @param {InternalWalletsApiGetInternalWalletRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.getInternalWallet = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).getInternalWallet(requestParameters.walletId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Returns information for an asset in an internal wallet.
     * @summary Get an asset from an internal wallet
     * @param {InternalWalletsApiGetInternalWalletAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.getInternalWalletAsset = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).getInternalWalletAsset(requestParameters.walletId, requestParameters.assetId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Returns a paginated response of assets in an internal wallet.
     * @summary List assets in an internal wallet (Paginated)
     * @param {InternalWalletsApiGetInternalWalletAssetsPaginatedRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.getInternalWalletAssetsPaginated = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).getInternalWalletAssetsPaginated(requestParameters.walletId, requestParameters.pageSize, requestParameters.pageCursor).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Gets a list of internal wallets.
     * @summary List internal wallets
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.getInternalWallets = function () {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).getInternalWallets().then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Sets an AML/KYT customer reference ID for the specific internal wallet.
     * @summary Set an AML/KYT customer reference ID for internal wallet
     * @param {InternalWalletsApiSetCustomerRefIdForInternalWalletRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InternalWalletsApi
     */
    InternalWalletsApi.prototype.setCustomerRefIdForInternalWallet = function (requestParameters) {
        var _this = this;
        return (0, exports.InternalWalletsApiFp)(this.configuration).setCustomerRefIdForInternalWallet(requestParameters.setCustomerRefIdRequest, requestParameters.walletId, requestParameters.idempotencyKey).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    return InternalWalletsApi;
}(base_1.BaseAPI));
exports.InternalWalletsApi = InternalWalletsApi;
//# sourceMappingURL=internal-wallets-api.js.map