UNPKG

@nikhil-patil/ngx-firefly-iii-api-client

Version:
1 lines 1.99 MB
{"version":3,"file":"nikhil-patil-ngx-firefly-iii-api-client.mjs","sources":["../../../../libs/ngx-firefly-iii-api-client/src/encoder.ts","../../../../libs/ngx-firefly-iii-api-client/src/variables.ts","../../../../libs/ngx-firefly-iii-api-client/src/configuration.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/about.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/accounts.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/attachments.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/autocomplete.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/availableBudgets.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/bills.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/budgets.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/categories.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/charts.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/configuration.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/currencies.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/data.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/insight.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/links.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/objectGroups.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/piggyBanks.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/preferences.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/recurrences.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/ruleGroups.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/rules.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/search.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/summary.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/tags.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/transactions.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/users.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/webhooks.service.ts","../../../../libs/ngx-firefly-iii-api-client/src/api/api.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/accountRoleProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/accountSearchFieldFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/accountTypeFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/accountTypeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/attachableType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/attachmentUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autoBudgetPeriod.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autoBudgetType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteAccount.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteBill.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteBudget.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteCategory.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteCurrency.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteCurrencyCode.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteObjectGroup.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompletePiggy.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompletePiggyBalance.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteRecurrence.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteRule.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteRuleGroup.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteTag.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteTransaction.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteTransactionID.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/autocompleteTransactionType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/badRequestResponse.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/basicSummaryEntry.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/billPaidDatesInner.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/billRepeatFrequency.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/budgetLimit.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/budgetLimitStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/budgetSpent.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/categoryEarned.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/categorySpent.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/categoryUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/chartDataPoint.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/configValueFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/configValueUpdateFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/creditCardTypeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/cronResultRow.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/currency.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/currencyStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/currencyUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/dataDestroyObject.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/exportFileFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/insightGroupEntry.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/insightTotalEntry.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/insightTransferEntry.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/interestPeriodProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/internalExceptionResponse.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/liabilityDirectionProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/liabilityTypeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/linkType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/linkTypeUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/metaPagination.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/notFoundResponse.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/objectGroup.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/objectGroupUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/objectLink0.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/pageLink.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/piggyBank.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/piggyBankEvent.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/piggyBankStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/piggyBankUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/polymorphicProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/recurrenceRepetitionType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/recurrenceTransactionStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/recurrenceTransactionType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/recurrenceTransactionUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleActionKeyword.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleGroup.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleGroupStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleGroupUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleTriggerKeyword.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/ruleTriggerType.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/shortAccountTypeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/systemInfoData.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/tagModel.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/tagModelStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/tagModelUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/transactionLink.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/transactionLinkStore.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/transactionLinkUpdate.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/transactionTypeFilter.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/transactionTypeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/unauthenticatedResponse.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/userBlockedCodeProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/userRoleProperty.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/validationErrorResponseErrors.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/webhookAttempt.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/webhookDelivery.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/webhookMessage.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/webhookResponse.ts","../../../../libs/ngx-firefly-iii-api-client/src/model/webhookTrigger.ts","../../../../libs/ngx-firefly-iii-api-client/src/api.module.ts","../../../../libs/ngx-firefly-iii-api-client/src/nikhil-patil-ngx-firefly-iii-api-client.ts"],"sourcesContent":["import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n    encodeKey(k: string): string {\n        return encodeURIComponent(k);\n    }\n    encodeValue(v: string): string {\n        return encodeURIComponent(v);\n    }\n    decodeKey(k: string): string {\n        return decodeURIComponent(k);\n    }\n    decodeValue(v: string): string {\n        return decodeURIComponent(v);\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n    'csv': ',',\n    'tsv': '   ',\n    'ssv': ' ',\n    'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface HttpConfigurationParameters {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    /**\n     * Takes care of encoding query- and form-parameters.\n     */\n    encoder?: HttpParameterCodec;\n    /**\n     * Override the default method for encoding path parameters in various\n     * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n     * <p>\n     * See {@link README.md} for more details\n     * </p>\n     */\n    encodeParam?: (param: Param) => string;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class HttpConfiguration {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    /**\n     * Takes care of encoding query- and form-parameters.\n     */\n    encoder?: HttpParameterCodec;\n    /**\n     * Encoding of various path parameter\n     * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n     * <p>\n     * See {@link README.md} for more details\n     * </p>\n     */\n    encodeParam: (param: Param) => string;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials: {[ key: string ]: string | (() => string | undefined)};\n\n    constructor(configurationParameters: HttpConfigurationParameters = {}) {\n        this.apiKeys = configurationParameters.apiKeys;\n        this.username = configurationParameters.username;\n        this.password = configurationParameters.password;\n        this.accessToken = configurationParameters.accessToken;\n        this.basePath = configurationParameters.basePath;\n        this.withCredentials = configurationParameters.withCredentials;\n        this.encoder = configurationParameters.encoder;\n        if (configurationParameters.encodeParam) {\n            this.encodeParam = configurationParameters.encodeParam;\n        }\n        else {\n            this.encodeParam = param => this.defaultEncodeParam(param);\n        }\n        if (configurationParameters.credentials) {\n            this.credentials = configurationParameters.credentials;\n        }\n        else {\n            this.credentials = {};\n        }\n\n        // init default firefly_iii_auth credential\n        if (!this.credentials['firefly_iii_auth']) {\n            this.credentials['firefly_iii_auth'] = () => {\n                return typeof this.accessToken === 'function'\n                    ? this.accessToken()\n                    : this.accessToken;\n            };\n        }\n\n        // init default local_bearer_auth credential\n        if (!this.credentials['local_bearer_auth']) {\n            this.credentials['local_bearer_auth'] = () => {\n                return typeof this.accessToken === 'function'\n                    ? this.accessToken()\n                    : this.accessToken;\n            };\n        }\n    }\n\n    /**\n     * Select the correct content-type to use for a request.\n     * Uses {@link HttpConfiguration#isJsonMime} to determine the correct content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param contentTypes - the array of content types that are available for selection\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderContentType (contentTypes: string[]): string | undefined {\n        if (contentTypes.length === 0) {\n            return undefined;\n        }\n\n        const type = contentTypes.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return contentTypes[0];\n        }\n        return type;\n    }\n\n    /**\n     * Select the correct accept content-type to use for a request.\n     * Uses {@link HttpConfiguration#isJsonMime} to determine the correct accept content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param accepts - the array of content types that are available for selection.\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderAccept(accepts: string[]): string | undefined {\n        if (accepts.length === 0) {\n            return undefined;\n        }\n\n        const type = accepts.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return accepts[0];\n        }\n        return type;\n    }\n\n    /**\n     * Check if the given MIME is a JSON MIME.\n     * JSON MIME examples:\n     *   application/json\n     *   application/json; charset=UTF8\n     *   APPLICATION/JSON\n     *   application/vnd.company+json\n     * @param mime - MIME (Multipurpose Internet Mail Extensions)\n     * @return True if the given MIME is JSON, false otherwise.\n     */\n    public isJsonMime(mime: string): boolean {\n        const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n        return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n    }\n\n    public lookupCredential(key: string): string | undefined {\n        const value = this.credentials[key];\n        return typeof value === 'function'\n            ? value()\n            : value;\n    }\n\n    private defaultEncodeParam(param: Param): string {\n        // This implementation exists as fallback for missing configuration\n        // and for backwards compatibility to older typescript-angular generator versions.\n        // It only works for the 'simple' parameter style.\n        // Date-handling only works for the 'date-time' format.\n        // All other styles and Date-formats are probably handled incorrectly.\n        //\n        // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n        const value = param.dataFormat === 'date-time' && param.value instanceof Date\n            ? (param.value as Date).toISOString()\n            : param.value;\n\n        return encodeURIComponent(String(value));\n    }\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { CronResult } from '../model/cronResult';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { SystemInfo } from '../model/systemInfo';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { UserSingle } from '../model/userSingle';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AboutService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * System information end point.\n     * Returns general system information and versions of the (supporting) software. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAbout(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<SystemInfo>;\n    public getAbout(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<SystemInfo>>;\n    public getAbout(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<SystemInfo>>;\n    public getAbout(xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/about`;\n        return this.httpClient.request<SystemInfo>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Cron job endpoint\n     * Firefly III has one endpoint for its various cron related tasks. Send a GET to this endpoint to run the cron. The cron requires the CLI token to be present. The cron job will fire for all users. \n     * @param cliToken The CLI token of any user in Firefly III, required to run the cron job.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param date A date formatted YYYY-MM-DD. This can be used to make the cron job pretend it\\&#39;s running on another day. \n     * @param force Forces the cron job to fire, regardless of whether it has fired before. This may result in double transactions or weird budgets, so be careful. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCron(cliToken: string, xTraceId?: string, date?: string, force?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CronResult>;\n    public getCron(cliToken: string, xTraceId?: string, date?: string, force?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CronResult>>;\n    public getCron(cliToken: string, xTraceId?: string, date?: string, force?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CronResult>>;\n    public getCron(cliToken: string, xTraceId?: string, date?: string, force?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (cliToken === null || cliToken === undefined) {\n            throw new Error('Required parameter cliToken was null or undefined when calling getCron.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (date !== undefined && date !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>date, 'date');\n        }\n        if (force !== undefined && force !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>force, 'force');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/cron/${this.configuration.encodeParam({name: \"cliToken\", value: cliToken, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<CronResult>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Currently authenticated user endpoint.\n     * Returns the currently authenticated user. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCurrentUser(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<UserSingle>;\n    public getCurrentUser(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<UserSingle>>;\n    public getCurrentUser(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<UserSingle>>;\n    public getCurrentUser(xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/about/user`;\n        return this.httpClient.request<UserSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AccountArray } from '../model/accountArray';\n// @ts-ignore\nimport { AccountSingle } from '../model/accountSingle';\n// @ts-ignore\nimport { AccountStore } from '../model/accountStore';\n// @ts-ignore\nimport { AccountTypeFilter } from '../model/accountTypeFilter';\n// @ts-ignore\nimport { AccountUpdate } from '../model/accountUpdate';\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { PiggyBankArray } from '../model/piggyBankArray';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AccountsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Permanently delete account.\n     * Will permanently delete an account. Any associated transactions and piggy banks are ALSO deleted. Cannot be recovered from. \n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteAccount(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteAccount(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteAccount(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteAccount(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteAccount.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get single account.\n     * Returns a single account by its ID. \n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param date A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account\\&#39;s balance on that day. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAccount(id: string, xTraceId?: string, date?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AccountSingle>;\n    public getAccount(id: string, xTraceId?: string, date?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountSingle>>;\n    public getAccount(id: string, xTraceId?: string, date?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountSingle>>;\n    public getAccount(id: string, xTraceId?: string, date?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getAccount.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (date !== undefined && date !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>date, 'date');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<AccountSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all accounts.\n     * This endpoint returns a list of all the accounts owned by the authenticated user. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param date A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account\\&#39;s balance on that day. \n     * @param type Optional filter on the account type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAccount(xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AccountArray>;\n    public listAccount(xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountArray>>;\n    public listAccount(xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountArray>>;\n    public listAccount(xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (date !== undefined && date !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>date, 'date');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts`;\n        return this.httpClient.request<AccountArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments.\n     * Lists all attachments.\n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByAccount.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all piggy banks related to the account.\n     * This endpoint returns a list of all the piggy banks connected to the account. \n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listPiggyBankByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankArray>;\n    public listPiggyBankByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankArray>>;\n    public listPiggyBankByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankArray>>;\n    public listPiggyBankByAccount(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listPiggyBankByAccount.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/piggy-banks`;\n        return this.httpClient.request<PiggyBankArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions related to the account.\n     * This endpoint returns a list of all the transactions connected to the account. \n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param type Optional filter on the transaction type(s) returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByAccount(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByAccount(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByAccount(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByAccount(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByAccount.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create new account.\n     * Creates a new account. The data required can be submitted as a JSON body or as a list of parameters (in key&#x3D;value pairs, like a webform).\n     * @param accountStore JSON array with the necessary account information or key&#x3D;value pairs. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeAccount(accountStore: AccountStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AccountSingle>;\n    public storeAccount(accountStore: AccountStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountSingle>>;\n    public storeAccount(accountStore: AccountStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountSingle>>;\n    public storeAccount(accountStore: AccountStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (accountStore === null || accountStore === undefined) {\n            throw new Error('Required parameter accountStore was null or undefined when calling storeAccount.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts`;\n        return this.httpClient.request<AccountSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: accountStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing account.\n     * Used to update a single account. All fields that are not submitted will be cleared (set to NULL). The model will tell you which fields are mandatory. \n     * @param id The ID of the account.\n     * @param accountUpdate JSON array or formdata with updated account information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateAccount(id: string, accountUpdate: AccountUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AccountSingle>;\n    public updateAccount(id: string, accountUpdate: AccountUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountSingle>>;\n    public updateAccount(id: string, accountUpdate: AccountUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountSingle>>;\n    public updateAccount(id: string, accountUpdate: AccountUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateAccount.');\n        }\n        if (accountUpdate === null || accountUpdate === undefined) {\n            throw new Error('Required parameter accountUpdate was null or undefined when calling updateAccount.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/accounts/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<AccountSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: accountUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { AttachmentSingle } from '../model/attachmentSingle';\n// @ts-ignore\nimport { AttachmentStore } from '../model/attachmentStore';\n// @ts-ignore\nimport { AttachmentUpdate } from '../model/attachmentUpdate';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AttachmentsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete an attachment.\n     * With this endpoint you delete an attachment, including any stored file data. \n     * @param id The ID of the single attachment.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteAttachment(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteAttachment(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteAttachment(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteAttachment(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Download a single attachment.\n     * This endpoint allows you to download the binary content of a transaction. It will be sent to you as a download, using the content type \\&quot;application/octet-stream\\&quot; and content disposition \\&quot;attachment; filename&#x3D;example.pdf\\&quot;. \n     * @param id The ID of the attachment.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public downloadAttachment(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public downloadAttachment(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public downloadAttachment(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public downloadAttachment(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling downloadAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/octet-stream',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/attachments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/download`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single attachment.\n     * Get a single attachment. This endpoint only returns the available metadata for the attachment. Actual file data is handled in two other endpoints (see below). \n     * @param id The ID of the attachment.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAttachment(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentSingle>;\n    public getAttachment(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentSingle>>;\n    public getAttachment(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentSingle>>;\n    public getAttachment(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<AttachmentSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all attachments.\n     * This endpoint lists all attachments. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachment(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachment(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachment(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachment(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new attachment.\n     * Creates a new attachment. The data required can be submitted as a JSON body or as a list of parameters. You cannot use this endpoint to upload the actual file data (see below). This endpoint only creates the attachment object. \n     * @param attachmentStore JSON array or key&#x3D;value pairs with the necessary attachment information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeAttachment(attachmentStore: AttachmentStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentSingle>;\n    public storeAttachment(attachmentStore: AttachmentStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentSingle>>;\n    public storeAttachment(attachmentStore: AttachmentStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentSingle>>;\n    public storeAttachment(attachmentStore: AttachmentStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (attachmentStore === null || attachmentStore === undefined) {\n            throw new Error('Required parameter attachmentStore was null or undefined when calling storeAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments`;\n        return this.httpClient.request<AttachmentSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: attachmentStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing attachment.\n     * Update the meta data for an existing attachment. This endpoint does not allow you to upload or download data. For that, see below. \n     * @param id The ID of the attachment.\n     * @param attachmentUpdate JSON array with updated attachment information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateAttachment(id: string, attachmentUpdate: AttachmentUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentSingle>;\n    public updateAttachment(id: string, attachmentUpdate: AttachmentUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentSingle>>;\n    public updateAttachment(id: string, attachmentUpdate: AttachmentUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentSingle>>;\n    public updateAttachment(id: string, attachmentUpdate: AttachmentUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateAttachment.');\n        }\n        if (attachmentUpdate === null || attachmentUpdate === undefined) {\n            throw new Error('Required parameter attachmentUpdate was null or undefined when calling updateAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<AttachmentSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: attachmentUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Upload an attachment.\n     * Use this endpoint to upload (and possible overwrite) the file contents of an attachment. Simply put the entire file in the body as binary data. \n     * @param id The ID of the attachment.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param body \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public uploadAttachment(id: string, xTraceId?: string, body?: Blob, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public uploadAttachment(id: string, xTraceId?: string, body?: Blob, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public uploadAttachment(id: string, xTraceId?: string, body?: Blob, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public uploadAttachment(id: string, xTraceId?: string, body?: Blob, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling uploadAttachment.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/attachments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/upload`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: body,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AccountTypeFilter } from '../model/accountTypeFilter';\n// @ts-ignore\nimport { AutocompleteAccount } from '../model/autocompleteAccount';\n// @ts-ignore\nimport { AutocompleteBill } from '../model/autocompleteBill';\n// @ts-ignore\nimport { AutocompleteBudget } from '../model/autocompleteBudget';\n// @ts-ignore\nimport { AutocompleteCategory } from '../model/autocompleteCategory';\n// @ts-ignore\nimport { AutocompleteCurrency } from '../model/autocompleteCurrency';\n// @ts-ignore\nimport { AutocompleteCurrencyCode } from '../model/autocompleteCurrencyCode';\n// @ts-ignore\nimport { AutocompleteObjectGroup } from '../model/autocompleteObjectGroup';\n// @ts-ignore\nimport { AutocompletePiggy } from '../model/autocompletePiggy';\n// @ts-ignore\nimport { AutocompletePiggyBalance } from '../model/autocompletePiggyBalance';\n// @ts-ignore\nimport { AutocompleteRecurrence } from '../model/autocompleteRecurrence';\n// @ts-ignore\nimport { AutocompleteRule } from '../model/autocompleteRule';\n// @ts-ignore\nimport { AutocompleteRuleGroup } from '../model/autocompleteRuleGroup';\n// @ts-ignore\nimport { AutocompleteTag } from '../model/autocompleteTag';\n// @ts-ignore\nimport { AutocompleteTransaction } from '../model/autocompleteTransaction';\n// @ts-ignore\nimport { AutocompleteTransactionID } from '../model/autocompleteTransactionID';\n// @ts-ignore\nimport { AutocompleteTransactionType } from '../model/autocompleteTransactionType';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AutocompleteService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns all accounts of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param date If the account is an asset account or a liability, the autocomplete will also return the balance of the account on this date.\n     * @param types Optional filter on the account type(s) used in the autocomplete.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAccountsAC(xTraceId?: string, query?: string, limit?: number, date?: string, types?: Array<AccountTypeFilter>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteAccount>>;\n    public getAccountsAC(xTraceId?: string, query?: string, limit?: number, date?: string, types?: Array<AccountTypeFilter>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteAccount>>>;\n    public getAccountsAC(xTraceId?: string, query?: string, limit?: number, date?: string, types?: Array<AccountTypeFilter>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteAccount>>>;\n    public getAccountsAC(xTraceId?: string, query?: string, limit?: number, date?: string, types?: Array<AccountTypeFilter>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (date !== undefined && date !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>date, 'date');\n        }\n        if (types) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                [...types].join(COLLECTION_FORMATS['csv']), 'types');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/accounts`;\n        return this.httpClient.request<Array<AutocompleteAccount>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all bills of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBillsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteBill>>;\n    public getBillsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteBill>>>;\n    public getBillsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteBill>>>;\n    public getBillsAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/bills`;\n        return this.httpClient.request<Array<AutocompleteBill>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all budgets of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBudgetsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteBudget>>;\n    public getBudgetsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteBudget>>>;\n    public getBudgetsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteBudget>>>;\n    public getBudgetsAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/budgets`;\n        return this.httpClient.request<Array<AutocompleteBudget>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all categories of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCategoriesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteCategory>>;\n    public getCategoriesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteCategory>>>;\n    public getCategoriesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteCategory>>>;\n    public getCategoriesAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/categories`;\n        return this.httpClient.request<Array<AutocompleteCategory>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all currencies of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCurrenciesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteCurrency>>;\n    public getCurrenciesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteCurrency>>>;\n    public getCurrenciesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteCurrency>>>;\n    public getCurrenciesAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/currencies`;\n        return this.httpClient.request<Array<AutocompleteCurrency>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all currencies of the user returned in a basic auto-complete array. This endpoint is DEPRECATED and I suggest you DO NOT use it.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCurrenciesCodeAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteCurrencyCode>>;\n    public getCurrenciesCodeAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteCurrencyCode>>>;\n    public getCurrenciesCodeAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteCurrencyCode>>>;\n    public getCurrenciesCodeAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/currencies-with-code`;\n        return this.httpClient.request<Array<AutocompleteCurrencyCode>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all object groups of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getObjectGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteObjectGroup>>;\n    public getObjectGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteObjectGroup>>>;\n    public getObjectGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteObjectGroup>>>;\n    public getObjectGroupsAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/object-groups`;\n        return this.httpClient.request<Array<AutocompleteObjectGroup>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all piggy banks of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getPiggiesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompletePiggy>>;\n    public getPiggiesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompletePiggy>>>;\n    public getPiggiesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompletePiggy>>>;\n    public getPiggiesAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/piggy-banks`;\n        return this.httpClient.request<Array<AutocompletePiggy>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all piggy banks of the user returned in a basic auto-complete array complemented with balance information.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getPiggiesBalanceAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompletePiggyBalance>>;\n    public getPiggiesBalanceAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompletePiggyBalance>>>;\n    public getPiggiesBalanceAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompletePiggyBalance>>>;\n    public getPiggiesBalanceAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/piggy-banks-with-balance`;\n        return this.httpClient.request<Array<AutocompletePiggyBalance>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all recurring transactions of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRecurringAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteRecurrence>>;\n    public getRecurringAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteRecurrence>>>;\n    public getRecurringAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteRecurrence>>>;\n    public getRecurringAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/recurring`;\n        return this.httpClient.request<Array<AutocompleteRecurrence>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all rule groups of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRuleGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteRuleGroup>>;\n    public getRuleGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteRuleGroup>>>;\n    public getRuleGroupsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteRuleGroup>>>;\n    public getRuleGroupsAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/rule-groups`;\n        return this.httpClient.request<Array<AutocompleteRuleGroup>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all rules of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRulesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteRule>>;\n    public getRulesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteRule>>>;\n    public getRulesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteRule>>>;\n    public getRulesAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/rules`;\n        return this.httpClient.request<Array<AutocompleteRule>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all tags of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTagAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteTag>>;\n    public getTagAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteTag>>>;\n    public getTagAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteTag>>>;\n    public getTagAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/tags`;\n        return this.httpClient.request<Array<AutocompleteTag>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all transaction types returned in a basic auto-complete array. English only.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransactionTypesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteTransactionType>>;\n    public getTransactionTypesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteTransactionType>>>;\n    public getTransactionTypesAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteTransactionType>>>;\n    public getTransactionTypesAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/transaction-types`;\n        return this.httpClient.request<Array<AutocompleteTransactionType>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all transaction descriptions of the user returned in a basic auto-complete array.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransactionsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteTransaction>>;\n    public getTransactionsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteTransaction>>>;\n    public getTransactionsAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteTransaction>>>;\n    public getTransactionsAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/transactions`;\n        return this.httpClient.request<Array<AutocompleteTransaction>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns all transactions, complemented with their ID, of the user returned in a basic auto-complete array. This endpoint is DEPRECATED and I suggest you DO NOT use it.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param query The autocomplete search query.\n     * @param limit The number of items returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransactionsIDAC(xTraceId?: string, query?: string, limit?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<AutocompleteTransactionID>>;\n    public getTransactionsIDAC(xTraceId?: string, query?: string, limit?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<AutocompleteTransactionID>>>;\n    public getTransactionsIDAC(xTraceId?: string, query?: string, limit?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<AutocompleteTransactionID>>>;\n    public getTransactionsIDAC(xTraceId?: string, query?: string, limit?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/autocomplete/transactions-with-id`;\n        return this.httpClient.request<Array<AutocompleteTransactionID>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AvailableBudgetArray } from '../model/availableBudgetArray';\n// @ts-ignore\nimport { AvailableBudgetSingle } from '../model/availableBudgetSingle';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AvailableBudgetsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get a single available budget.\n     * Get a single available budget, by ID.\n     * @param id The ID of the available budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAvailableBudget(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AvailableBudgetSingle>;\n    public getAvailableBudget(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AvailableBudgetSingle>>;\n    public getAvailableBudget(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AvailableBudgetSingle>>;\n    public getAvailableBudget(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getAvailableBudget.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/available-budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<AvailableBudgetSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all available budget amounts.\n     * Firefly III allows users to set the amount that is available to be budgeted in so-called \\&quot;available budgets\\&quot;. For example, the user could have 1200,- available to be divided during the coming month. This amount is used on the /budgets page. This endpoint returns all of these amounts and the periods for which they are set. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAvailableBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AvailableBudgetArray>;\n    public listAvailableBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AvailableBudgetArray>>;\n    public listAvailableBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AvailableBudgetArray>>;\n    public listAvailableBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/available-budgets`;\n        return this.httpClient.request<AvailableBudgetArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { BillArray } from '../model/billArray';\n// @ts-ignore\nimport { BillSingle } from '../model/billSingle';\n// @ts-ignore\nimport { BillStore } from '../model/billStore';\n// @ts-ignore\nimport { BillUpdate } from '../model/billUpdate';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { RuleArray } from '../model/ruleArray';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BillsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a bill.\n     * Delete a bill. This will not delete any associated rules. Will not remove associated transactions. WILL remove all associated attachments.\n     * @param id The ID of the bill.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteBill(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteBill(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteBill(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteBill(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteBill.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single bill.\n     * Get a single bill.\n     * @param id The ID of the bill.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD. If it is are added to the request, Firefly III will calculate the appropriate payment and paid dates. \n     * @param end A date formatted YYYY-MM-DD. If it is added to the request, Firefly III will calculate the appropriate payment and paid dates. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBill(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<BillSingle>;\n    public getBill(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillSingle>>;\n    public getBill(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillSingle>>;\n    public getBill(id: string, xTraceId?: string, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getBill.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<BillSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all attachments uploaded to the bill.\n     * This endpoint will list all attachments linked to the bill.\n     * @param id The ID of the bill.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByBill(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByBill(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByBill(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByBill(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByBill.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all bills.\n     * This endpoint will list all the user\\&#39;s bills.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. If it is are added to the request, Firefly III will calculate the appropriate payment and paid dates. \n     * @param end A date formatted YYYY-MM-DD. If it is added to the request, Firefly III will calculate the appropriate payment and paid dates. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBill(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<BillArray>;\n    public listBill(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillArray>>;\n    public listBill(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillArray>>;\n    public listBill(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills`;\n        return this.httpClient.request<BillArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all rules associated with the bill.\n     * This endpoint will list all rules that have an action to set the bill to this bill.\n     * @param id The ID of the bill.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRuleByBill(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<RuleArray>;\n    public listRuleByBill(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleArray>>;\n    public listRuleByBill(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleArray>>;\n    public listRuleByBill(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listRuleByBill.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/rules`;\n        return this.httpClient.request<RuleArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions associated with the  bill.\n     * This endpoint will list all transactions linked to this bill.\n     * @param id The ID of the bill.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByBill(id: string, xTraceId?: string, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByBill(id: string, xTraceId?: string, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByBill(id: string, xTraceId?: string, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByBill(id: string, xTraceId?: string, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByBill.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new bill\n     * Creates a new bill. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param billStore JSON array or key&#x3D;value pairs with the necessary bill information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeBill(billStore: BillStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<BillSingle>;\n    public storeBill(billStore: BillStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillSingle>>;\n    public storeBill(billStore: BillStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillSingle>>;\n    public storeBill(billStore: BillStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (billStore === null || billStore === undefined) {\n            throw new Error('Required parameter billStore was null or undefined when calling storeBill.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills`;\n        return this.httpClient.request<BillSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: billStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing bill.\n     * Update existing bill.\n     * @param id The ID of the bill.\n     * @param billUpdate JSON array or key&#x3D;value pairs with updated bill information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateBill(id: string, billUpdate: BillUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<BillSingle>;\n    public updateBill(id: string, billUpdate: BillUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillSingle>>;\n    public updateBill(id: string, billUpdate: BillUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillSingle>>;\n    public updateBill(id: string, billUpdate: BillUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateBill.');\n        }\n        if (billUpdate === null || billUpdate === undefined) {\n            throw new Error('Required parameter billUpdate was null or undefined when calling updateBill.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/bills/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<BillSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: billUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { BudgetArray } from '../model/budgetArray';\n// @ts-ignore\nimport { BudgetLimit } from '../model/budgetLimit';\n// @ts-ignore\nimport { BudgetLimitArray } from '../model/budgetLimitArray';\n// @ts-ignore\nimport { BudgetLimitSingle } from '../model/budgetLimitSingle';\n// @ts-ignore\nimport { BudgetLimitStore } from '../model/budgetLimitStore';\n// @ts-ignore\nimport { BudgetSingle } from '../model/budgetSingle';\n// @ts-ignore\nimport { BudgetStore } from '../model/budgetStore';\n// @ts-ignore\nimport { BudgetUpdate } from '../model/budgetUpdate';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BudgetsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a budget.\n     * Delete a budget. Transactions will not be deleted.\n     * @param id The ID of the budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteBudget(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteBudget(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteBudget(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteBudget(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteBudget.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete a budget limit.\n     * Delete a budget limit.\n     * @param id The ID of the budget. The budget limit MUST be associated to the budget ID.\n     * @param limitId The ID of the budget limit. The budget limit MUST be associated to the budget ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteBudgetLimit(id: string, limitId: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteBudgetLimit(id: string, limitId: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteBudgetLimit(id: string, limitId: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteBudgetLimit(id: string, limitId: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteBudgetLimit.');\n        }\n        if (limitId === null || limitId === undefined) {\n            throw new Error('Required parameter limitId was null or undefined when calling deleteBudgetLimit.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits/${this.configuration.encodeParam({name: \"limitId\", value: limitId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single budget.\n     * Get a single budget. If the start date and end date are submitted as well, the \\&quot;spent\\&quot; array will be updated accordingly.\n     * @param id The ID of the requested budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD, to get info on how much the user has spent. \n     * @param end A date formatted YYYY-MM-DD, to get info on how much the user has spent. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetSingle>;\n    public getBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetSingle>>;\n    public getBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetSingle>>;\n    public getBudget(id: string, xTraceId?: string, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<BudgetSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get single budget limit.\n     * @param id The ID of the budget. The budget limit MUST be associated to the budget ID.\n     * @param limitId The ID of the budget limit. The budget limit MUST be associated to the budget ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBudgetLimit(id: string, limitId: number, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitSingle>;\n    public getBudgetLimit(id: string, limitId: number, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitSingle>>;\n    public getBudgetLimit(id: string, limitId: number, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitSingle>>;\n    public getBudgetLimit(id: string, limitId: number, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getBudgetLimit.');\n        }\n        if (limitId === null || limitId === undefined) {\n            throw new Error('Required parameter limitId was null or undefined when calling getBudgetLimit.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits/${this.configuration.encodeParam({name: \"limitId\", value: limitId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}`;\n        return this.httpClient.request<BudgetLimitSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments of a budget.\n     * Lists all attachments.\n     * @param id The ID of the budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByBudget(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByBudget(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByBudget(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByBudget(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all budgets.\n     * List all the budgets the user has made. If the start date and end date are submitted as well, the \\&quot;spent\\&quot; array will be updated accordingly.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end. \n     * @param end A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetArray>;\n    public listBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetArray>>;\n    public listBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetArray>>;\n    public listBudget(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets`;\n        return this.httpClient.request<BudgetArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get list of budget limits by date\n     * Get all budget limits for for this date range. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBudgetLimit(start: string, end: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitArray>;\n    public listBudgetLimit(start: string, end: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitArray>>;\n    public listBudgetLimit(start: string, end: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitArray>>;\n    public listBudgetLimit(start: string, end: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling listBudgetLimit.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling listBudgetLimit.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budget-limits`;\n        return this.httpClient.request<BudgetLimitArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all limits for a budget.\n     * Get all budget limits for this budget and the money spent, and money left. You can limit the list by submitting a date range as well. The \\&quot;spent\\&quot; array for each budget limit is NOT influenced by the start and end date of your query, but by the start and end date of the budget limit itself. \n     * @param id The ID of the requested budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBudgetLimitByBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitArray>;\n    public listBudgetLimitByBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitArray>>;\n    public listBudgetLimitByBudget(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitArray>>;\n    public listBudgetLimitByBudget(id: string, xTraceId?: string, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listBudgetLimitByBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits`;\n        return this.httpClient.request<BudgetLimitArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * All transactions to a budget.\n     * Get all transactions linked to a budget, possibly limited by start and end\n     * @param id The ID of the budget.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByBudget(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByBudget(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByBudget(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByBudget(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions by a budget limit ID.\n     * List all the transactions within one budget limit. The start and end date are dictated by the budget limit.\n     * @param id The ID of the budget. The budget limit MUST be associated to the budget ID.\n     * @param limitId The ID of the budget limit. The budget limit MUST be associated to the budget ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByBudgetLimit(id: string, limitId: string, xTraceId?: string, limit?: number, page?: number, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByBudgetLimit(id: string, limitId: string, xTraceId?: string, limit?: number, page?: number, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByBudgetLimit(id: string, limitId: string, xTraceId?: string, limit?: number, page?: number, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByBudgetLimit(id: string, limitId: string, xTraceId?: string, limit?: number, page?: number, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByBudgetLimit.');\n        }\n        if (limitId === null || limitId === undefined) {\n            throw new Error('Required parameter limitId was null or undefined when calling listTransactionByBudgetLimit.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits/${this.configuration.encodeParam({name: \"limitId\", value: limitId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new budget\n     * Creates a new budget. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param budgetStore JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeBudget(budgetStore: BudgetStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetSingle>;\n    public storeBudget(budgetStore: BudgetStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetSingle>>;\n    public storeBudget(budgetStore: BudgetStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetSingle>>;\n    public storeBudget(budgetStore: BudgetStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (budgetStore === null || budgetStore === undefined) {\n            throw new Error('Required parameter budgetStore was null or undefined when calling storeBudget.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets`;\n        return this.httpClient.request<BudgetSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: budgetStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store new budget limit.\n     * Store a new budget limit under this budget.\n     * @param id The ID of the budget.\n     * @param budgetLimitStore JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeBudgetLimit(id: string, budgetLimitStore: BudgetLimitStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitSingle>;\n    public storeBudgetLimit(id: string, budgetLimitStore: BudgetLimitStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitSingle>>;\n    public storeBudgetLimit(id: string, budgetLimitStore: BudgetLimitStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitSingle>>;\n    public storeBudgetLimit(id: string, budgetLimitStore: BudgetLimitStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling storeBudgetLimit.');\n        }\n        if (budgetLimitStore === null || budgetLimitStore === undefined) {\n            throw new Error('Required parameter budgetLimitStore was null or undefined when calling storeBudgetLimit.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits`;\n        return this.httpClient.request<BudgetLimitSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: budgetLimitStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing budget.\n     * Update existing budget. This endpoint cannot be used to set budget amount limits.\n     * @param id The ID of the budget.\n     * @param budgetUpdate JSON array with updated budget information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateBudget(id: string, budgetUpdate: BudgetUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetSingle>;\n    public updateBudget(id: string, budgetUpdate: BudgetUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetSingle>>;\n    public updateBudget(id: string, budgetUpdate: BudgetUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetSingle>>;\n    public updateBudget(id: string, budgetUpdate: BudgetUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateBudget.');\n        }\n        if (budgetUpdate === null || budgetUpdate === undefined) {\n            throw new Error('Required parameter budgetUpdate was null or undefined when calling updateBudget.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<BudgetSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: budgetUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing budget limit.\n     * Update existing budget limit.\n     * @param id The ID of the budget. The budget limit MUST be associated to the budget ID.\n     * @param limitId The ID of the budget limit. The budget limit MUST be associated to the budget ID.\n     * @param budgetLimit JSON array with updated budget limit information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateBudgetLimit(id: string, limitId: string, budgetLimit: BudgetLimit, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitSingle>;\n    public updateBudgetLimit(id: string, limitId: string, budgetLimit: BudgetLimit, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitSingle>>;\n    public updateBudgetLimit(id: string, limitId: string, budgetLimit: BudgetLimit, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitSingle>>;\n    public updateBudgetLimit(id: string, limitId: string, budgetLimit: BudgetLimit, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateBudgetLimit.');\n        }\n        if (limitId === null || limitId === undefined) {\n            throw new Error('Required parameter limitId was null or undefined when calling updateBudgetLimit.');\n        }\n        if (budgetLimit === null || budgetLimit === undefined) {\n            throw new Error('Required parameter budgetLimit was null or undefined when calling updateBudgetLimit.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/budgets/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/limits/${this.configuration.encodeParam({name: \"limitId\", value: limitId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<BudgetLimitSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: budgetLimit,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { Category } from '../model/category';\n// @ts-ignore\nimport { CategoryArray } from '../model/categoryArray';\n// @ts-ignore\nimport { CategorySingle } from '../model/categorySingle';\n// @ts-ignore\nimport { CategoryUpdate } from '../model/categoryUpdate';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CategoriesService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a category.\n     * Delete a category. Transactions will not be removed.\n     * @param id The ID of the category.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteCategory(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteCategory(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteCategory(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteCategory(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteCategory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single category.\n     * Get a single category.\n     * @param id The ID of the category.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD, to show spent and earned info. \n     * @param end A date formatted YYYY-MM-DD, to show spent and earned info. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCategory(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CategorySingle>;\n    public getCategory(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CategorySingle>>;\n    public getCategory(id: string, xTraceId?: string, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CategorySingle>>;\n    public getCategory(id: string, xTraceId?: string, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CategorySingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments.\n     * Lists all attachments.\n     * @param id The ID of the category.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByCategory(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByCategory(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByCategory(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByCategory(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all categories.\n     * List all categories.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listCategory(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CategoryArray>;\n    public listCategory(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CategoryArray>>;\n    public listCategory(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CategoryArray>>;\n    public listCategory(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories`;\n        return this.httpClient.request<CategoryArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions in a category.\n     * List all transactions in a category, optionally limited to the date ranges specified.\n     * @param id The ID of the category.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD, to limit the result list. \n     * @param end A date formatted YYYY-MM-DD, to limit the result list. \n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByCategory(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByCategory(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByCategory(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByCategory(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new category\n     * Creates a new category. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param category JSON array or key&#x3D;value pairs with the necessary category information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeCategory(category: Category, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CategorySingle>;\n    public storeCategory(category: Category, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CategorySingle>>;\n    public storeCategory(category: Category, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CategorySingle>>;\n    public storeCategory(category: Category, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (category === null || category === undefined) {\n            throw new Error('Required parameter category was null or undefined when calling storeCategory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories`;\n        return this.httpClient.request<CategorySingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: category,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing category.\n     * Update existing category.\n     * @param id The ID of the category.\n     * @param categoryUpdate JSON array with updated category information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateCategory(id: string, categoryUpdate: CategoryUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CategorySingle>;\n    public updateCategory(id: string, categoryUpdate: CategoryUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CategorySingle>>;\n    public updateCategory(id: string, categoryUpdate: CategoryUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CategorySingle>>;\n    public updateCategory(id: string, categoryUpdate: CategoryUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateCategory.');\n        }\n        if (categoryUpdate === null || categoryUpdate === undefined) {\n            throw new Error('Required parameter categoryUpdate was null or undefined when calling updateCategory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/categories/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CategorySingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: categoryUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { ChartDataSet } from '../model/chartDataSet';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ChartsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Dashboard chart with asset account balance information.\n     * This endpoint returns the data required to generate a chart with basic asset account balance information. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getChartAccountOverview(start: string, end: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<ChartDataSet>>;\n    public getChartAccountOverview(start: string, end: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<ChartDataSet>>>;\n    public getChartAccountOverview(start: string, end: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<ChartDataSet>>>;\n    public getChartAccountOverview(start: string, end: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling getChartAccountOverview.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling getChartAccountOverview.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/chart/account/overview`;\n        return this.httpClient.request<Array<ChartDataSet>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { ConfigValueFilter } from '../model/configValueFilter';\n// @ts-ignore\nimport { ConfigValueUpdateFilter } from '../model/configValueUpdateFilter';\n// @ts-ignore\nimport { Configuration } from '../model/configuration';\n// @ts-ignore\nimport { ConfigurationSingle } from '../model/configurationSingle';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { PolymorphicProperty } from '../model/polymorphicProperty';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConfigurationService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (const consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get Firefly III system configuration values.\n     * Returns all editable and not-editable configuration values for this Firefly III installation\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getConfiguration(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/x-www-form-urlencoded', context?: HttpContext, transferCache?: boolean}): Observable<Array<Configuration>>;\n    public getConfiguration(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/x-www-form-urlencoded', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<Configuration>>>;\n    public getConfiguration(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/x-www-form-urlencoded', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<Configuration>>>;\n    public getConfiguration(xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/x-www-form-urlencoded', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/x-www-form-urlencoded'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/configuration`;\n        return this.httpClient.request<Array<Configuration>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single Firefly III system configuration value\n     * Returns one configuration variable for this Firefly III installation\n     * @param name The name of the configuration value you want to know.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getSingleConfiguration(name: ConfigValueFilter, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<ConfigurationSingle>;\n    public getSingleConfiguration(name: ConfigValueFilter, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ConfigurationSingle>>;\n    public getSingleConfiguration(name: ConfigValueFilter, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ConfigurationSingle>>;\n    public getSingleConfiguration(name: ConfigValueFilter, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (name === null || name === undefined) {\n            throw new Error('Required parameter name was null or undefined when calling getSingleConfiguration.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/configuration/${this.configuration.encodeParam({name: \"name\", value: name, in: \"path\", style: \"simple\", explode: false, dataType: \"ConfigValueFilter\", dataFormat: undefined})}`;\n        return this.httpClient.request<ConfigurationSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update configuration value\n     * Set a single configuration value. Not all configuration values can be updated so the list of accepted configuration variables is small.\n     * @param name The name of the configuration value you want to update.\n     * @param value \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public setConfiguration(name: ConfigValueUpdateFilter, value: PolymorphicProperty, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<ConfigurationSingle>;\n    public setConfiguration(name: ConfigValueUpdateFilter, value: PolymorphicProperty, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ConfigurationSingle>>;\n    public setConfiguration(name: ConfigValueUpdateFilter, value: PolymorphicProperty, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ConfigurationSingle>>;\n    public setConfiguration(name: ConfigValueUpdateFilter, value: PolymorphicProperty, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (name === null || name === undefined) {\n            throw new Error('Required parameter name was null or undefined when calling setConfiguration.');\n        }\n        if (value === null || value === undefined) {\n            throw new Error('Required parameter value was null or undefined when calling setConfiguration.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/x-www-form-urlencoded',\n            'application/json'\n        ];\n\n        const canConsumeForm = this.canConsumeForm(consumes);\n\n        let localVarFormParams: { append(param: string, value: any): any; };\n        let localVarUseForm = false;\n        let localVarConvertFormParamsToString = false;\n        if (localVarUseForm) {\n            localVarFormParams = new FormData();\n        } else {\n            localVarFormParams = new HttpParams({encoder: this.encoder});\n        }\n\n        if (value !== undefined) {\n            localVarFormParams = localVarFormParams.append('value', localVarUseForm ? new Blob([JSON.stringify(value)], {type: 'application/json'}) : <any>value) as any || localVarFormParams;\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/configuration/${this.configuration.encodeParam({name: \"name\", value: name, in: \"path\", style: \"simple\", explode: false, dataType: \"ConfigValueUpdateFilter\", dataFormat: undefined})}`;\n        return this.httpClient.request<ConfigurationSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AccountArray } from '../model/accountArray';\n// @ts-ignore\nimport { AccountTypeFilter } from '../model/accountTypeFilter';\n// @ts-ignore\nimport { AvailableBudgetArray } from '../model/availableBudgetArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { BillArray } from '../model/billArray';\n// @ts-ignore\nimport { BudgetLimitArray } from '../model/budgetLimitArray';\n// @ts-ignore\nimport { CurrencyArray } from '../model/currencyArray';\n// @ts-ignore\nimport { CurrencySingle } from '../model/currencySingle';\n// @ts-ignore\nimport { CurrencyStore } from '../model/currencyStore';\n// @ts-ignore\nimport { CurrencyUpdate } from '../model/currencyUpdate';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { RecurrenceArray } from '../model/recurrenceArray';\n// @ts-ignore\nimport { RuleArray } from '../model/ruleArray';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CurrenciesService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Make currency default currency.\n     * Make this currency the default currency for the user. If the currency is not enabled, it will be enabled as well.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public defaultCurrency(code: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public defaultCurrency(code: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public defaultCurrency(code: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public defaultCurrency(code: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling defaultCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/default`;\n        return this.httpClient.request<CurrencySingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete a currency.\n     * Delete a currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteCurrency(code: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteCurrency(code: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteCurrency(code: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteCurrency(code: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling deleteCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Disable a currency.\n     * Disable a currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public disableCurrency(code: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public disableCurrency(code: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public disableCurrency(code: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public disableCurrency(code: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling disableCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/disable`;\n        return this.httpClient.request<CurrencySingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Enable a single currency.\n     * Enable a single currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public enableCurrency(code: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public enableCurrency(code: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public enableCurrency(code: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public enableCurrency(code: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling enableCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/enable`;\n        return this.httpClient.request<CurrencySingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single currency.\n     * Get a single currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCurrency(code: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public getCurrency(code: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public getCurrency(code: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public getCurrency(code: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling getCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<CurrencySingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get the user\\&#39;s default currency.\n     * Get the user\\&#39;s default currency.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getDefaultCurrency(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public getDefaultCurrency(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public getDefaultCurrency(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public getDefaultCurrency(xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/default`;\n        return this.httpClient.request<CurrencySingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all accounts with this currency.\n     * List all accounts with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param date A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account\\&#39;s balance on that day. \n     * @param type Optional filter on the account type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAccountByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AccountArray>;\n    public listAccountByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountArray>>;\n    public listAccountByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountArray>>;\n    public listAccountByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, date?: string, type?: AccountTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listAccountByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (date !== undefined && date !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>date, 'date');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/accounts`;\n        return this.httpClient.request<AccountArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all available budgets with this currency.\n     * List all available budgets with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAvailableBudgetByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AvailableBudgetArray>;\n    public listAvailableBudgetByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AvailableBudgetArray>>;\n    public listAvailableBudgetByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AvailableBudgetArray>>;\n    public listAvailableBudgetByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listAvailableBudgetByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/available-budgets`;\n        return this.httpClient.request<AvailableBudgetArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all bills with this currency.\n     * List all bills with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBillByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BillArray>;\n    public listBillByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillArray>>;\n    public listBillByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillArray>>;\n    public listBillByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listBillByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/bills`;\n        return this.httpClient.request<BillArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all budget limits with this currency\n     * List all budget limits with this currency\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start Start date for the budget limit list.\n     * @param end End date for the budget limit list.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBudgetLimitByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BudgetLimitArray>;\n    public listBudgetLimitByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BudgetLimitArray>>;\n    public listBudgetLimitByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BudgetLimitArray>>;\n    public listBudgetLimitByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listBudgetLimitByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/budget_limits`;\n        return this.httpClient.request<BudgetLimitArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all currencies.\n     * List all currencies.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listCurrency(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencyArray>;\n    public listCurrency(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencyArray>>;\n    public listCurrency(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencyArray>>;\n    public listCurrency(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies`;\n        return this.httpClient.request<CurrencyArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all recurring transactions with this currency.\n     * List all recurring transactions with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRecurrenceByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RecurrenceArray>;\n    public listRecurrenceByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RecurrenceArray>>;\n    public listRecurrenceByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RecurrenceArray>>;\n    public listRecurrenceByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listRecurrenceByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/recurrences`;\n        return this.httpClient.request<RecurrenceArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all rules with this currency.\n     * List all rules with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRuleByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleArray>;\n    public listRuleByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleArray>>;\n    public listRuleByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleArray>>;\n    public listRuleByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listRuleByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/rules`;\n        return this.httpClient.request<RuleArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions with this currency.\n     * List all transactions with this currency.\n     * @param code The currency code.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD, to limit the list of transactions. \n     * @param end A date formatted YYYY-MM-DD, to limit the list of transactions. \n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByCurrency(code: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling listTransactionByCurrency.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new currency\n     * Creates a new currency. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param currencyStore JSON array or key&#x3D;value pairs with the necessary currency information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeCurrency(currencyStore: CurrencyStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public storeCurrency(currencyStore: CurrencyStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public storeCurrency(currencyStore: CurrencyStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public storeCurrency(currencyStore: CurrencyStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (currencyStore === null || currencyStore === undefined) {\n            throw new Error('Required parameter currencyStore was null or undefined when calling storeCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies`;\n        return this.httpClient.request<CurrencySingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: currencyStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing currency.\n     * Update existing currency.\n     * @param code The currency code.\n     * @param currencyUpdate JSON array with updated currency information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateCurrency(code: string, currencyUpdate: CurrencyUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<CurrencySingle>;\n    public updateCurrency(code: string, currencyUpdate: CurrencyUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<CurrencySingle>>;\n    public updateCurrency(code: string, currencyUpdate: CurrencyUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<CurrencySingle>>;\n    public updateCurrency(code: string, currencyUpdate: CurrencyUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (code === null || code === undefined) {\n            throw new Error('Required parameter code was null or undefined when calling updateCurrency.');\n        }\n        if (currencyUpdate === null || currencyUpdate === undefined) {\n            throw new Error('Required parameter currencyUpdate was null or undefined when calling updateCurrency.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/vnd.api+json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/currencies/${this.configuration.encodeParam({name: \"code\", value: code, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<CurrencySingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: currencyUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { DataDestroyObject } from '../model/dataDestroyObject';\n// @ts-ignore\nimport { ExportFileFilter } from '../model/exportFileFilter';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DataService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Bulk update transaction properties. For more information, see https://docs.firefly-iii.org/references/firefly-iii/api/specials/\n     * Allows you to update transactions in bulk. \n     * @param query The JSON query.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public bulkUpdateTransactions(query: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public bulkUpdateTransactions(query: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public bulkUpdateTransactions(query: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public bulkUpdateTransactions(query: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (query === null || query === undefined) {\n            throw new Error('Required parameter query was null or undefined when calling bulkUpdateTransactions.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/data/bulk/transactions`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Endpoint to destroy user data\n     * A call to this endpoint deletes the requested data type. Use it with care and always with user permission. The demo user is incapable of using this endpoint. \n     * @param objects The type of data that you wish to destroy. You can only use one at a time.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public destroyData(objects: DataDestroyObject, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (objects === null || objects === undefined) {\n            throw new Error('Required parameter objects was null or undefined when calling destroyData.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (objects !== undefined && objects !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>objects, 'objects');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/data/destroy`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export account data from Firefly III\n     * This endpoint allows you to export your accounts from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/accounts`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export bills from Firefly III\n     * This endpoint allows you to export your bills from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportBills(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/bills`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export budgets and budget amount data from Firefly III\n     * This endpoint allows you to export your budgets and associated budget data from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/budgets`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export category data from Firefly III\n     * This endpoint allows you to export your categories from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportCategories(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/categories`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export piggy banks from Firefly III\n     * This endpoint allows you to export your piggy banks from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/piggy-banks`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export recurring transaction data from Firefly III\n     * This endpoint allows you to export your recurring transactions from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/recurring`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export rule groups and rule data from Firefly III\n     * This endpoint allows you to export your rules and rule groups from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportRules(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/rules`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export tag data from Firefly III\n     * This endpoint allows you to export your tags from Firefly III into a file. Currently supports CSV exports only. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportTags(xTraceId?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/tags`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Export transaction data from Firefly III\n     * This endpoint allows you to export transactions from Firefly III into a file. Currently supports CSV exports only. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts Limit the export of transactions to these accounts only. Only asset accounts will be accepted. Other types will be silently dropped. \n     * @param type The file type the export file (CSV is currently the only option).\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<Blob>;\n    public exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Blob>>;\n    public exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Blob>>;\n    public exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/octet-stream', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling exportTransactions.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling exportTransactions.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts !== undefined && accounts !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>accounts, 'accounts');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/octet-stream'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let localVarPath = `/v1/data/export/transactions`;\n        return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Endpoint to purge user data\n     * A call to this endpoint purges all previously deleted data. Use it with care and always with user permission. The demo user is incapable of using this endpoint. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public purgeData(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public purgeData(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public purgeData(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public purgeData(xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/data/purge`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InsightGroupEntry } from '../model/insightGroupEntry';\n// @ts-ignore\nimport { InsightTotalEntry } from '../model/insightTotalEntry';\n// @ts-ignore\nimport { InsightTransferEntry } from '../model/insightTransferEntry';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class InsightService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Insight into expenses, grouped by asset account.\n     * This endpoint gives a summary of the expenses made by the user, grouped by asset account. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseAsset.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseAsset.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/asset`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, grouped by bill.\n     * This endpoint gives a summary of the expenses made by the user, grouped by (any) bill. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param bills The bills to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseBill(start: string, end: string, xTraceId?: string, bills?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseBill(start: string, end: string, xTraceId?: string, bills?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseBill(start: string, end: string, xTraceId?: string, bills?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseBill(start: string, end: string, xTraceId?: string, bills?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseBill.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseBill.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (bills) {\n            bills.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'bills[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/bill`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, grouped by budget.\n     * This endpoint gives a summary of the expenses made by the user, grouped by (any) budget. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param budgets The budgets to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseBudget(start: string, end: string, xTraceId?: string, budgets?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseBudget(start: string, end: string, xTraceId?: string, budgets?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseBudget(start: string, end: string, xTraceId?: string, budgets?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseBudget(start: string, end: string, xTraceId?: string, budgets?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseBudget.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (budgets) {\n            budgets.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'budgets[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/budget`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, grouped by category.\n     * This endpoint gives a summary of the expenses made by the user, grouped by (any) category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param categories The categories to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (categories) {\n            categories.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'categories[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/category`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, grouped by expense account.\n     * This endpoint gives a summary of the expenses made by the user, grouped by expense account. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you add the accounts ID\\&#39;s of expense accounts, only those accounts are included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. You can combine both asset / liability and expense account ID\\&#39;s. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseExpense(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseExpense(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseExpense(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseExpense(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseExpense.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseExpense.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/expense`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, without bill.\n     * This endpoint gives a summary of the expenses made by the user, including only expenses with no bill. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseNoBill(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightExpenseNoBill(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightExpenseNoBill(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightExpenseNoBill(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseNoBill.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseNoBill.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/no-bill`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, without budget.\n     * This endpoint gives a summary of the expenses made by the user, including only expenses with no budget. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseNoBudget(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightExpenseNoBudget(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightExpenseNoBudget(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightExpenseNoBudget(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseNoBudget.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseNoBudget.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/no-budget`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, without category.\n     * This endpoint gives a summary of the expenses made by the user, including only expenses with no category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightExpenseNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightExpenseNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightExpenseNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseNoCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseNoCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/no-category`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, without tag.\n     * This endpoint gives a summary of the expenses made by the user, including only expenses with no tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightExpenseNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightExpenseNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightExpenseNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseNoTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseNoTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/no-tag`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, grouped by tag.\n     * This endpoint gives a summary of the expenses made by the user, grouped by (any) tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param tags The tags to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightExpenseTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightExpenseTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightExpenseTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (tags) {\n            tags.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'tags[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/tag`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into total expenses.\n     * This endpoint gives a sum of the total expenses made by the user. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightExpenseTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightExpenseTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightExpenseTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightExpenseTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightExpenseTotal.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightExpenseTotal.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/expense/total`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, grouped by asset account.\n     * This endpoint gives a summary of the income received by the user, grouped by asset account. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightIncomeAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightIncomeAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightIncomeAsset(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeAsset.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeAsset.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/asset`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, grouped by category.\n     * This endpoint gives a summary of the income received by the user, grouped by (any) category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param categories The categories to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightIncomeCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightIncomeCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightIncomeCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (categories) {\n            categories.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'categories[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/category`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, without category.\n     * This endpoint gives a summary of the income received by the user, including only income with no category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightIncomeNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightIncomeNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightIncomeNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeNoCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeNoCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/no-category`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, without tag.\n     * This endpoint gives a summary of the income received by the user, including only income with no tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightIncomeNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightIncomeNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightIncomeNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeNoTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeNoTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/no-tag`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, grouped by revenue account.\n     * This endpoint gives a summary of the income received by the user, grouped by revenue account. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you add the accounts ID\\&#39;s of revenue accounts, only those accounts are included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. You can combine both asset / liability and deposit account ID\\&#39;s. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeRevenue(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightIncomeRevenue(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightIncomeRevenue(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightIncomeRevenue(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeRevenue.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeRevenue.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/revenue`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into income, grouped by tag.\n     * This endpoint gives a summary of the income received by the user, grouped by (any) tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param tags The tags to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightIncomeTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightIncomeTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightIncomeTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (tags) {\n            tags.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'tags[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/tag`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into total income.\n     * This endpoint gives a sum of the total income received by the user. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightIncomeTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightIncomeTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightIncomeTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightIncomeTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightIncomeTotal.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightIncomeTotal.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/income/total`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into transfers, grouped by category.\n     * This endpoint gives a summary of the transfers made by the user, grouped by (any) category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param categories The categories to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransferCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightTransferCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightTransferCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightTransferCategory(start: string, end: string, xTraceId?: string, categories?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransferCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransferCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (categories) {\n            categories.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'categories[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/category`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into transfers, without category.\n     * This endpoint gives a summary of the transfers made by the user, including only transfers with no category. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransferNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightTransferNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightTransferNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightTransferNoCategory(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransferNoCategory.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransferNoCategory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/no-category`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into expenses, without tag.\n     * This endpoint gives a summary of the transfers made by the user, including only transfers with no tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers from those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransferNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightTransferNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightTransferNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightTransferNoTag(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransferNoTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransferNoTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/no-tag`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into transfers, grouped by tag.\n     * This endpoint gives a summary of the transfers created by the user, grouped by (any) tag. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param tags The tags to be included in the results. \n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransferTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightGroupEntry>>;\n    public insightTransferTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightGroupEntry>>>;\n    public insightTransferTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightGroupEntry>>>;\n    public insightTransferTag(start: string, end: string, xTraceId?: string, tags?: Array<number>, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransferTag.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransferTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (tags) {\n            tags.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'tags[]');\n            })\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/tag`;\n        return this.httpClient.request<Array<InsightGroupEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into total transfers.\n     * This endpoint gives a sum of the total amount transfers made by the user. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransferTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTotalEntry>>;\n    public insightTransferTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTotalEntry>>>;\n    public insightTransferTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTotalEntry>>>;\n    public insightTransferTotal(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransferTotal.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransferTotal.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/total`;\n        return this.httpClient.request<Array<InsightTotalEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insight into transfers, grouped by account.\n     * This endpoint gives a summary of the transfers made by the user, grouped by asset account or lability. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param accounts The accounts to be included in the results. If you include ID\\&#39;s of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID\\&#39;s will be ignored. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public insightTransfers(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<InsightTransferEntry>>;\n    public insightTransfers(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<InsightTransferEntry>>>;\n    public insightTransfers(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<InsightTransferEntry>>>;\n    public insightTransfers(start: string, end: string, xTraceId?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling insightTransfers.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling insightTransfers.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/insight/transfer/asset`;\n        return this.httpClient.request<Array<InsightTransferEntry>>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { LinkType } from '../model/linkType';\n// @ts-ignore\nimport { LinkTypeArray } from '../model/linkTypeArray';\n// @ts-ignore\nimport { LinkTypeSingle } from '../model/linkTypeSingle';\n// @ts-ignore\nimport { LinkTypeUpdate } from '../model/linkTypeUpdate';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionLinkArray } from '../model/transactionLinkArray';\n// @ts-ignore\nimport { TransactionLinkSingle } from '../model/transactionLinkSingle';\n// @ts-ignore\nimport { TransactionLinkStore } from '../model/transactionLinkStore';\n// @ts-ignore\nimport { TransactionLinkUpdate } from '../model/transactionLinkUpdate';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LinksService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Permanently delete link type.\n     * Will permanently delete a link type. The links between transactions will be removed. The transactions themselves remain. You cannot delete some of the system provided link types, indicated by the editable&#x3D;false flag when you list it. \n     * @param id The ID of the link type.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteLinkType(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteLinkType(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteLinkType(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteLinkType(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteLinkType.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Permanently delete link between transactions.\n     * Will permanently delete link. Transactions remain. \n     * @param id The ID of the transaction link.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTransactionLink(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteTransactionLink(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteTransactionLink(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteTransactionLink(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteTransactionLink.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-links/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get single a link type.\n     * Returns a single link type by its ID. \n     * @param id The ID of the link type.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getLinkType(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<LinkTypeSingle>;\n    public getLinkType(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<LinkTypeSingle>>;\n    public getLinkType(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<LinkTypeSingle>>;\n    public getLinkType(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getLinkType.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<LinkTypeSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single link.\n     * Returns a single link by its ID. \n     * @param id The ID of the transaction link.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransactionLink(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionLinkSingle>;\n    public getTransactionLink(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionLinkSingle>>;\n    public getTransactionLink(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionLinkSingle>>;\n    public getTransactionLink(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getTransactionLink.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-links/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TransactionLinkSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all types of links.\n     * List all the link types the system has. These include the default ones as well as any new ones. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listLinkType(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<LinkTypeArray>;\n    public listLinkType(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<LinkTypeArray>>;\n    public listLinkType(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<LinkTypeArray>>;\n    public listLinkType(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types`;\n        return this.httpClient.request<LinkTypeArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions under this link type.\n     * List all transactions under this link type, both the inward and outward transactions. \n     * @param id The ID of the link type.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD, to limit the results. \n     * @param end A date formatted YYYY-MM-DD, to limit the results. \n     * @param type Optional filter on the transaction type(s) returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByLinkType(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByLinkType(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByLinkType(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByLinkType(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByLinkType.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transaction links.\n     * List all the transaction links. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionLink(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionLinkArray>;\n    public listTransactionLink(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionLinkArray>>;\n    public listTransactionLink(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionLinkArray>>;\n    public listTransactionLink(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-links`;\n        return this.httpClient.request<TransactionLinkArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a new link type\n     * Creates a new link type. The data required can be submitted as a JSON body or as a list of parameters (in key&#x3D;value pairs, like a webform).\n     * @param linkType JSON array with the necessary link type information or key&#x3D;value pairs. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeLinkType(linkType: LinkType, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<LinkTypeSingle>;\n    public storeLinkType(linkType: LinkType, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<LinkTypeSingle>>;\n    public storeLinkType(linkType: LinkType, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<LinkTypeSingle>>;\n    public storeLinkType(linkType: LinkType, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (linkType === null || linkType === undefined) {\n            throw new Error('Required parameter linkType was null or undefined when calling storeLinkType.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types`;\n        return this.httpClient.request<LinkTypeSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: linkType,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a new link between transactions\n     * Store a new link between two transactions. For this end point you need the journal_id from a transaction.\n     * @param transactionLinkStore JSON array with the necessary link type information or key&#x3D;value pairs. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeTransactionLink(transactionLinkStore: TransactionLinkStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionLinkSingle>;\n    public storeTransactionLink(transactionLinkStore: TransactionLinkStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionLinkSingle>>;\n    public storeTransactionLink(transactionLinkStore: TransactionLinkStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionLinkSingle>>;\n    public storeTransactionLink(transactionLinkStore: TransactionLinkStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (transactionLinkStore === null || transactionLinkStore === undefined) {\n            throw new Error('Required parameter transactionLinkStore was null or undefined when calling storeTransactionLink.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-links`;\n        return this.httpClient.request<TransactionLinkSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: transactionLinkStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing link type.\n     * Used to update a single link type. All fields that are not submitted will be cleared (set to NULL). The model will tell you which fields are mandatory. You cannot update some of the system provided link types, indicated by the editable&#x3D;false flag when you list it. \n     * @param id The ID of the link type.\n     * @param linkTypeUpdate JSON array or formdata with updated link type information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateLinkType(id: string, linkTypeUpdate: LinkTypeUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<LinkTypeSingle>;\n    public updateLinkType(id: string, linkTypeUpdate: LinkTypeUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<LinkTypeSingle>>;\n    public updateLinkType(id: string, linkTypeUpdate: LinkTypeUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<LinkTypeSingle>>;\n    public updateLinkType(id: string, linkTypeUpdate: LinkTypeUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateLinkType.');\n        }\n        if (linkTypeUpdate === null || linkTypeUpdate === undefined) {\n            throw new Error('Required parameter linkTypeUpdate was null or undefined when calling updateLinkType.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/link-types/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<LinkTypeSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: linkTypeUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update an existing link between transactions.\n     * Used to update a single existing link. \n     * @param id The ID of the transaction link.\n     * @param transactionLinkUpdate JSON array or formdata with updated link type information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateTransactionLink(id: string, transactionLinkUpdate: TransactionLinkUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionLinkSingle>;\n    public updateTransactionLink(id: string, transactionLinkUpdate: TransactionLinkUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionLinkSingle>>;\n    public updateTransactionLink(id: string, transactionLinkUpdate: TransactionLinkUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionLinkSingle>>;\n    public updateTransactionLink(id: string, transactionLinkUpdate: TransactionLinkUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateTransactionLink.');\n        }\n        if (transactionLinkUpdate === null || transactionLinkUpdate === undefined) {\n            throw new Error('Required parameter transactionLinkUpdate was null or undefined when calling updateTransactionLink.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-links/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TransactionLinkSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: transactionLinkUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { BillArray } from '../model/billArray';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { ObjectGroupArray } from '../model/objectGroupArray';\n// @ts-ignore\nimport { ObjectGroupSingle } from '../model/objectGroupSingle';\n// @ts-ignore\nimport { ObjectGroupUpdate } from '../model/objectGroupUpdate';\n// @ts-ignore\nimport { PiggyBankArray } from '../model/piggyBankArray';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ObjectGroupsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a object group.\n     * Delete a object group.\n     * @param id The ID of the object group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteObjectGroup(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteObjectGroup(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteObjectGroup(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteObjectGroup(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteObjectGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single object group.\n     * Get a single object group.\n     * @param id The ID of the object group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getObjectGroup(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<ObjectGroupSingle>;\n    public getObjectGroup(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ObjectGroupSingle>>;\n    public getObjectGroup(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ObjectGroupSingle>>;\n    public getObjectGroup(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getObjectGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<ObjectGroupSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all bills with this object group.\n     * List all bills with this object group.\n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listBillByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<BillArray>;\n    public listBillByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<BillArray>>;\n    public listBillByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<BillArray>>;\n    public listBillByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listBillByObjectGroup.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/bills`;\n        return this.httpClient.request<BillArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all oject groups.\n     * List all oject groups.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listObjectGroups(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<ObjectGroupArray>;\n    public listObjectGroups(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ObjectGroupArray>>;\n    public listObjectGroups(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ObjectGroupArray>>;\n    public listObjectGroups(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups`;\n        return this.httpClient.request<ObjectGroupArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all piggy banks related to the object group.\n     * This endpoint returns a list of all the piggy banks connected to the object group. \n     * @param id The ID of the account.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listPiggyBankByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankArray>;\n    public listPiggyBankByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankArray>>;\n    public listPiggyBankByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankArray>>;\n    public listPiggyBankByObjectGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listPiggyBankByObjectGroup.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/piggy-banks`;\n        return this.httpClient.request<PiggyBankArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing object group.\n     * Update existing object group.\n     * @param id The ID of the object group\n     * @param objectGroupUpdate JSON array with updated piggy bank information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateObjectGroup(id: string, objectGroupUpdate: ObjectGroupUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<ObjectGroupSingle>;\n    public updateObjectGroup(id: string, objectGroupUpdate: ObjectGroupUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<ObjectGroupSingle>>;\n    public updateObjectGroup(id: string, objectGroupUpdate: ObjectGroupUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<ObjectGroupSingle>>;\n    public updateObjectGroup(id: string, objectGroupUpdate: ObjectGroupUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateObjectGroup.');\n        }\n        if (objectGroupUpdate === null || objectGroupUpdate === undefined) {\n            throw new Error('Required parameter objectGroupUpdate was null or undefined when calling updateObjectGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/object-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<ObjectGroupSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: objectGroupUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { PiggyBankArray } from '../model/piggyBankArray';\n// @ts-ignore\nimport { PiggyBankEventArray } from '../model/piggyBankEventArray';\n// @ts-ignore\nimport { PiggyBankSingle } from '../model/piggyBankSingle';\n// @ts-ignore\nimport { PiggyBankStore } from '../model/piggyBankStore';\n// @ts-ignore\nimport { PiggyBankUpdate } from '../model/piggyBankUpdate';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PiggyBanksService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a piggy bank.\n     * Delete a piggy bank.\n     * @param id The ID of the piggy bank.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deletePiggyBank(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deletePiggyBank(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deletePiggyBank(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deletePiggyBank(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deletePiggyBank.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single piggy bank.\n     * Get a single piggy bank.\n     * @param id The ID of the piggy bank.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getPiggyBank(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankSingle>;\n    public getPiggyBank(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankSingle>>;\n    public getPiggyBank(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankSingle>>;\n    public getPiggyBank(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getPiggyBank.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<PiggyBankSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments.\n     * Lists all attachments.\n     * @param id The ID of the piggy bank.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByPiggyBank.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all events linked to a piggy bank.\n     * List all events linked to a piggy bank (adding and removing money).\n     * @param id The ID of the piggy bank\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listEventByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankEventArray>;\n    public listEventByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankEventArray>>;\n    public listEventByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankEventArray>>;\n    public listEventByPiggyBank(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listEventByPiggyBank.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/events`;\n        return this.httpClient.request<PiggyBankEventArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all piggy banks.\n     * List all piggy banks.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listPiggyBank(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankArray>;\n    public listPiggyBank(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankArray>>;\n    public listPiggyBank(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankArray>>;\n    public listPiggyBank(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks`;\n        return this.httpClient.request<PiggyBankArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new piggy bank\n     * Creates a new piggy bank. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param piggyBankStore JSON array or key&#x3D;value pairs with the necessary piggy bank information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storePiggyBank(piggyBankStore: PiggyBankStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankSingle>;\n    public storePiggyBank(piggyBankStore: PiggyBankStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankSingle>>;\n    public storePiggyBank(piggyBankStore: PiggyBankStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankSingle>>;\n    public storePiggyBank(piggyBankStore: PiggyBankStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (piggyBankStore === null || piggyBankStore === undefined) {\n            throw new Error('Required parameter piggyBankStore was null or undefined when calling storePiggyBank.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks`;\n        return this.httpClient.request<PiggyBankSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: piggyBankStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing piggy bank.\n     * Update existing piggy bank.\n     * @param id The ID of the piggy bank\n     * @param piggyBankUpdate JSON array with updated piggy bank information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updatePiggyBank(id: string, piggyBankUpdate: PiggyBankUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankSingle>;\n    public updatePiggyBank(id: string, piggyBankUpdate: PiggyBankUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankSingle>>;\n    public updatePiggyBank(id: string, piggyBankUpdate: PiggyBankUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankSingle>>;\n    public updatePiggyBank(id: string, piggyBankUpdate: PiggyBankUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updatePiggyBank.');\n        }\n        if (piggyBankUpdate === null || piggyBankUpdate === undefined) {\n            throw new Error('Required parameter piggyBankUpdate was null or undefined when calling updatePiggyBank.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/piggy-banks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<PiggyBankSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: piggyBankUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { Preference } from '../model/preference';\n// @ts-ignore\nimport { PreferenceArray } from '../model/preferenceArray';\n// @ts-ignore\nimport { PreferenceSingle } from '../model/preferenceSingle';\n// @ts-ignore\nimport { PreferenceUpdate } from '../model/preferenceUpdate';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PreferencesService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Return a single preference.\n     * Return a single preference and the value.\n     * @param name The name of the preference.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getPreference(name: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PreferenceSingle>;\n    public getPreference(name: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PreferenceSingle>>;\n    public getPreference(name: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PreferenceSingle>>;\n    public getPreference(name: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (name === null || name === undefined) {\n            throw new Error('Required parameter name was null or undefined when calling getPreference.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/preferences/${this.configuration.encodeParam({name: \"name\", value: name, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<PreferenceSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all users preferences.\n     * List all of the preferences of the user.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listPreference(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PreferenceArray>;\n    public listPreference(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PreferenceArray>>;\n    public listPreference(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PreferenceArray>>;\n    public listPreference(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/preferences`;\n        return this.httpClient.request<PreferenceArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new preference for this user.\n     * This endpoint creates a new preference. The name and data are free-format, and entirely up to you. If the preference is not used in Firefly III itself it may not be configurable through the user interface, but you can use this endpoint to persist custom data for your own app.\n     * @param preference JSON array with the necessary preference information or key&#x3D;value pairs. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storePreference(preference: Preference, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PreferenceSingle>;\n    public storePreference(preference: Preference, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PreferenceSingle>>;\n    public storePreference(preference: Preference, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PreferenceSingle>>;\n    public storePreference(preference: Preference, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (preference === null || preference === undefined) {\n            throw new Error('Required parameter preference was null or undefined when calling storePreference.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/preferences`;\n        return this.httpClient.request<PreferenceSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: preference,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update preference\n     * Update a user\\&#39;s preference.\n     * @param name The name of the preference. Will always overwrite. Will be created if it does not exist.\n     * @param preferenceUpdate JSON array or key&#x3D;value pairs with the necessary preference information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updatePreference(name: string, preferenceUpdate: PreferenceUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PreferenceSingle>;\n    public updatePreference(name: string, preferenceUpdate: PreferenceUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PreferenceSingle>>;\n    public updatePreference(name: string, preferenceUpdate: PreferenceUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PreferenceSingle>>;\n    public updatePreference(name: string, preferenceUpdate: PreferenceUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (name === null || name === undefined) {\n            throw new Error('Required parameter name was null or undefined when calling updatePreference.');\n        }\n        if (preferenceUpdate === null || preferenceUpdate === undefined) {\n            throw new Error('Required parameter preferenceUpdate was null or undefined when calling updatePreference.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/preferences/${this.configuration.encodeParam({name: \"name\", value: name, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<PreferenceSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: preferenceUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { RecurrenceArray } from '../model/recurrenceArray';\n// @ts-ignore\nimport { RecurrenceSingle } from '../model/recurrenceSingle';\n// @ts-ignore\nimport { RecurrenceStore } from '../model/recurrenceStore';\n// @ts-ignore\nimport { RecurrenceUpdate } from '../model/recurrenceUpdate';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RecurrencesService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a recurring transaction.\n     * Delete a recurring transaction. Transactions created by the recurring transaction will not be deleted.\n     * @param id The ID of the recurring transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteRecurrence(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteRecurrence(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteRecurrence(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteRecurrence(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteRecurrence.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single recurring transaction.\n     * Get a single recurring transaction.\n     * @param id The ID of the recurring transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRecurrence(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RecurrenceSingle>;\n    public getRecurrence(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RecurrenceSingle>>;\n    public getRecurrence(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RecurrenceSingle>>;\n    public getRecurrence(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRecurrence.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RecurrenceSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all recurring transactions.\n     * List all recurring transactions.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRecurrence(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RecurrenceArray>;\n    public listRecurrence(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RecurrenceArray>>;\n    public listRecurrence(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RecurrenceArray>>;\n    public listRecurrence(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences`;\n        return this.httpClient.request<RecurrenceArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions created by a recurring transaction.\n     * List all transactions created by a recurring transaction, optionally limited to the date ranges specified.\n     * @param id The ID of the recurring transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. Both the start and end date must be present. \n     * @param end A date formatted YYYY-MM-DD. Both the start and end date must be present. \n     * @param type Optional filter on the transaction type(s) returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByRecurrence(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByRecurrence(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByRecurrence(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByRecurrence(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listTransactionByRecurrence.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new recurring transaction\n     * Creates a new recurring transaction. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param recurrenceStore JSON array or key&#x3D;value pairs with the necessary recurring transaction information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeRecurrence(recurrenceStore: RecurrenceStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RecurrenceSingle>;\n    public storeRecurrence(recurrenceStore: RecurrenceStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RecurrenceSingle>>;\n    public storeRecurrence(recurrenceStore: RecurrenceStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RecurrenceSingle>>;\n    public storeRecurrence(recurrenceStore: RecurrenceStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (recurrenceStore === null || recurrenceStore === undefined) {\n            throw new Error('Required parameter recurrenceStore was null or undefined when calling storeRecurrence.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences`;\n        return this.httpClient.request<RecurrenceSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: recurrenceStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing recurring transaction.\n     * Update existing recurring transaction.\n     * @param id The ID of the recurring transaction.\n     * @param recurrenceUpdate JSON array with updated recurring transaction information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateRecurrence(id: string, recurrenceUpdate: RecurrenceUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RecurrenceSingle>;\n    public updateRecurrence(id: string, recurrenceUpdate: RecurrenceUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RecurrenceSingle>>;\n    public updateRecurrence(id: string, recurrenceUpdate: RecurrenceUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RecurrenceSingle>>;\n    public updateRecurrence(id: string, recurrenceUpdate: RecurrenceUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateRecurrence.');\n        }\n        if (recurrenceUpdate === null || recurrenceUpdate === undefined) {\n            throw new Error('Required parameter recurrenceUpdate was null or undefined when calling updateRecurrence.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/recurrences/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RecurrenceSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: recurrenceUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { RuleArray } from '../model/ruleArray';\n// @ts-ignore\nimport { RuleGroupArray } from '../model/ruleGroupArray';\n// @ts-ignore\nimport { RuleGroupSingle } from '../model/ruleGroupSingle';\n// @ts-ignore\nimport { RuleGroupStore } from '../model/ruleGroupStore';\n// @ts-ignore\nimport { RuleGroupUpdate } from '../model/ruleGroupUpdate';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RuleGroupsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a rule group.\n     * Delete a rule group.\n     * @param id The ID of the rule group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteRuleGroup(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteRuleGroup(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteRuleGroup(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteRuleGroup(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteRuleGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Fire the rule group on your transactions.\n     * Fire the rule group on your transactions. Changes will be made by the rules in the rule group! Limit the result if you want to.\n     * @param id The ID of the rule group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. Both the start date and the end date must be present. \n     * @param end A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. Both the start date and the end date must be present. \n     * @param accounts Limit the triggering of the rule group to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireRuleGroup(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public fireRuleGroup(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public fireRuleGroup(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public fireRuleGroup(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling fireRuleGroup.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/trigger`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single rule group.\n     * Get a single rule group. This does not include the rules. For that, see below.\n     * @param id The ID of the rule group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRuleGroup(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleGroupSingle>;\n    public getRuleGroup(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleGroupSingle>>;\n    public getRuleGroup(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleGroupSingle>>;\n    public getRuleGroup(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRuleGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RuleGroupSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List rules in this rule group.\n     * List rules in this rule group.\n     * @param id The ID of the rule group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRuleByGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleArray>;\n    public listRuleByGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleArray>>;\n    public listRuleByGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleArray>>;\n    public listRuleByGroup(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listRuleByGroup.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/rules`;\n        return this.httpClient.request<RuleArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all rule groups.\n     * List all rule groups.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRuleGroup(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleGroupArray>;\n    public listRuleGroup(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleGroupArray>>;\n    public listRuleGroup(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleGroupArray>>;\n    public listRuleGroup(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups`;\n        return this.httpClient.request<RuleGroupArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new rule group.\n     * Creates a new rule group. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param ruleGroupStore JSON array or key&#x3D;value pairs with the necessary rule group information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeRuleGroup(ruleGroupStore: RuleGroupStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleGroupSingle>;\n    public storeRuleGroup(ruleGroupStore: RuleGroupStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleGroupSingle>>;\n    public storeRuleGroup(ruleGroupStore: RuleGroupStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleGroupSingle>>;\n    public storeRuleGroup(ruleGroupStore: RuleGroupStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (ruleGroupStore === null || ruleGroupStore === undefined) {\n            throw new Error('Required parameter ruleGroupStore was null or undefined when calling storeRuleGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups`;\n        return this.httpClient.request<RuleGroupSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: ruleGroupStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Test which transactions would be hit by the rule group. No changes will be made.\n     * Test which transactions would be hit by the rule group. No changes will be made. Limit the result if you want to.\n     * @param id The ID of the rule group.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. \n     * @param end A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. \n     * @param searchLimit Maximum number of transactions Firefly III will try. Don\\&#39;t set this too high, or it will take Firefly III very long to run the test. I suggest a max of 200. \n     * @param triggeredLimit Maximum number of transactions the rule group can actually trigger on, before Firefly III stops. I would suggest setting this to 10 or 15. Don\\&#39;t go above the user\\&#39;s page size, because browsing to page 2 or 3 of a test result would fire the test again, making any navigation efforts very slow. \n     * @param accounts Limit the testing of the rule group to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public testRuleGroup(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, searchLimit?: number, triggeredLimit?: number, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public testRuleGroup(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, searchLimit?: number, triggeredLimit?: number, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public testRuleGroup(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, searchLimit?: number, triggeredLimit?: number, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public testRuleGroup(id: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, searchLimit?: number, triggeredLimit?: number, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling testRuleGroup.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (searchLimit !== undefined && searchLimit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>searchLimit, 'search_limit');\n        }\n        if (triggeredLimit !== undefined && triggeredLimit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>triggeredLimit, 'triggered_limit');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/test`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing rule group.\n     * Update existing rule group.\n     * @param id The ID of the rule group.\n     * @param ruleGroupUpdate JSON array with updated rule group information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateRuleGroup(id: string, ruleGroupUpdate: RuleGroupUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleGroupSingle>;\n    public updateRuleGroup(id: string, ruleGroupUpdate: RuleGroupUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleGroupSingle>>;\n    public updateRuleGroup(id: string, ruleGroupUpdate: RuleGroupUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleGroupSingle>>;\n    public updateRuleGroup(id: string, ruleGroupUpdate: RuleGroupUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateRuleGroup.');\n        }\n        if (ruleGroupUpdate === null || ruleGroupUpdate === undefined) {\n            throw new Error('Required parameter ruleGroupUpdate was null or undefined when calling updateRuleGroup.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rule-groups/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RuleGroupSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: ruleGroupUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { RuleArray } from '../model/ruleArray';\n// @ts-ignore\nimport { RuleSingle } from '../model/ruleSingle';\n// @ts-ignore\nimport { RuleStore } from '../model/ruleStore';\n// @ts-ignore\nimport { RuleUpdate } from '../model/ruleUpdate';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RulesService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete an rule.\n     * Delete an rule.\n     * @param id The ID of the rule.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteRule(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteRule(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteRule(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteRule(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteRule.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Fire the rule on your transactions.\n     * Fire the rule group on your transactions. Changes will be made by the rules in the group! Limit the result if you want to.\n     * @param id The ID of the rule.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. If the start date is not present, it will be set to one year ago. If you use this field, both the start date and the end date must be present. \n     * @param end A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. If the end date is not present, it will be set to today. If you use this field, both the start date and the end date must be present. \n     * @param accounts Limit the triggering of the rule to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public fireRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public fireRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public fireRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling fireRule.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/trigger`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single rule.\n     * Get a single rule.\n     * @param id The ID of the object.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getRule(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleSingle>;\n    public getRule(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleSingle>>;\n    public getRule(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleSingle>>;\n    public getRule(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRule.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RuleSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all rules.\n     * List all rules.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listRule(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleArray>;\n    public listRule(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleArray>>;\n    public listRule(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleArray>>;\n    public listRule(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules`;\n        return this.httpClient.request<RuleArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new rule\n     * Creates a new rule. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param ruleStore JSON array or key&#x3D;value pairs with the necessary rule information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeRule(ruleStore: RuleStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleSingle>;\n    public storeRule(ruleStore: RuleStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleSingle>>;\n    public storeRule(ruleStore: RuleStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleSingle>>;\n    public storeRule(ruleStore: RuleStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (ruleStore === null || ruleStore === undefined) {\n            throw new Error('Required parameter ruleStore was null or undefined when calling storeRule.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules`;\n        return this.httpClient.request<RuleSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: ruleStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Test which transactions would be hit by the rule. No changes will be made.\n     * Test which transactions would be hit by the rule. No changes will be made. Limit the result if you want to.\n     * @param id The ID of the rule.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param start A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. \n     * @param end A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. \n     * @param accounts Limit the testing of the rule to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public testRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public testRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public testRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public testRule(id: string, xTraceId?: string, start?: string, end?: string, accounts?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling testRule.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (accounts) {\n            accounts.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'accounts[]');\n            })\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/test`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing rule.\n     * Update existing rule.\n     * @param id The ID of the object.\n     * @param ruleUpdate JSON array with updated rule information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateRule(id: string, ruleUpdate: RuleUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<RuleSingle>;\n    public updateRule(id: string, ruleUpdate: RuleUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<RuleSingle>>;\n    public updateRule(id: string, ruleUpdate: RuleUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<RuleSingle>>;\n    public updateRule(id: string, ruleUpdate: RuleUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateRule.');\n        }\n        if (ruleUpdate === null || ruleUpdate === undefined) {\n            throw new Error('Required parameter ruleUpdate was null or undefined when calling updateRule.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/rules/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<RuleSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: ruleUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AccountArray } from '../model/accountArray';\n// @ts-ignore\nimport { AccountSearchFieldFilter } from '../model/accountSearchFieldFilter';\n// @ts-ignore\nimport { AccountTypeFilter } from '../model/accountTypeFilter';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SearchService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Search for accounts\n     * Search for accounts\n     * @param query The query you wish to search for.\n     * @param field The account field(s) you want to search in.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param type The type of accounts you wish to limit the search to.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public searchAccounts(query: string, field: AccountSearchFieldFilter, xTraceId?: string, limit?: number, page?: number, type?: AccountTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AccountArray>;\n    public searchAccounts(query: string, field: AccountSearchFieldFilter, xTraceId?: string, limit?: number, page?: number, type?: AccountTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AccountArray>>;\n    public searchAccounts(query: string, field: AccountSearchFieldFilter, xTraceId?: string, limit?: number, page?: number, type?: AccountTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AccountArray>>;\n    public searchAccounts(query: string, field: AccountSearchFieldFilter, xTraceId?: string, limit?: number, page?: number, type?: AccountTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (query === null || query === undefined) {\n            throw new Error('Required parameter query was null or undefined when calling searchAccounts.');\n        }\n        if (field === null || field === undefined) {\n            throw new Error('Required parameter field was null or undefined when calling searchAccounts.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n        if (field !== undefined && field !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>field, 'field');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/search/accounts`;\n        return this.httpClient.request<AccountArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Search for transactions\n     * Searches through the users transactions.\n     * @param query The query you wish to search for.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public searchTransactions(query: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public searchTransactions(query: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public searchTransactions(query: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public searchTransactions(query: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (query === null || query === undefined) {\n            throw new Error('Required parameter query was null or undefined when calling searchTransactions.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (query !== undefined && query !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>query, 'query');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/search/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { BasicSummaryEntry } from '../model/basicSummaryEntry';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SummaryService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns basic sums of the users data.\n     * Returns basic sums of the users data, like the net worth, spent and earned amounts. It is multi-currency, and is used in Firefly III to populate the dashboard. \n     * @param start A date formatted YYYY-MM-DD. \n     * @param end A date formatted YYYY-MM-DD. \n     * @param xTraceId Unique identifier associated with this request.\n     * @param currencyCode A currency code like EUR or USD, to filter the result. \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getBasicSummary(start: string, end: string, xTraceId?: string, currencyCode?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<{ [key: string]: BasicSummaryEntry; }>;\n    public getBasicSummary(start: string, end: string, xTraceId?: string, currencyCode?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<{ [key: string]: BasicSummaryEntry; }>>;\n    public getBasicSummary(start: string, end: string, xTraceId?: string, currencyCode?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<{ [key: string]: BasicSummaryEntry; }>>;\n    public getBasicSummary(start: string, end: string, xTraceId?: string, currencyCode?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (start === null || start === undefined) {\n            throw new Error('Required parameter start was null or undefined when calling getBasicSummary.');\n        }\n        if (end === null || end === undefined) {\n            throw new Error('Required parameter end was null or undefined when calling getBasicSummary.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (currencyCode !== undefined && currencyCode !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>currencyCode, 'currency_code');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/summary/basic`;\n        return this.httpClient.request<{ [key: string]: BasicSummaryEntry; }>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { TagArray } from '../model/tagArray';\n// @ts-ignore\nimport { TagModelStore } from '../model/tagModelStore';\n// @ts-ignore\nimport { TagModelUpdate } from '../model/tagModelUpdate';\n// @ts-ignore\nimport { TagSingle } from '../model/tagSingle';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TagsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete an tag.\n     * Delete an tag.\n     * @param tag Either the tag itself or the tag ID. If you use the tag itself, and it contains international (non-ASCII) characters, your milage may vary.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTag(tag: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteTag(tag: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteTag(tag: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteTag(tag: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling deleteTag.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"tag\", value: tag, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single tag.\n     * Get a single tag.\n     * @param tag Either the tag itself or the tag ID. If you use the tag itself, and it contains international (non-ASCII) characters, your milage may vary.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TagSingle>;\n    public getTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TagSingle>>;\n    public getTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TagSingle>>;\n    public getTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling getTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"tag\", value: tag, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<TagSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments.\n     * Lists all attachments.\n     * @param tag Either the tag itself or the tag ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByTag(tag: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling listAttachmentByTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"tag\", value: tag, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all tags.\n     * List all of the user\\&#39;s tags.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTag(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TagArray>;\n    public listTag(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TagArray>>;\n    public listTag(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TagArray>>;\n    public listTag(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags`;\n        return this.httpClient.request<TagArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all transactions with this tag.\n     * List all transactions with this tag.\n     * @param tag Either the tag itself or the tag ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. This is the start date of the selected range (inclusive). \n     * @param end A date formatted YYYY-MM-DD. This is the end date of the selected range (inclusive). \n     * @param type Optional filter on the transaction type(s) returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransactionByTag(tag: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransactionByTag(tag: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransactionByTag(tag: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransactionByTag(tag: string, xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling listTransactionByTag.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"tag\", value: tag, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new tag\n     * Creates a new tag. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param tagModelStore JSON array or key&#x3D;value pairs with the necessary tag information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeTag(tagModelStore: TagModelStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TagSingle>;\n    public storeTag(tagModelStore: TagModelStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TagSingle>>;\n    public storeTag(tagModelStore: TagModelStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TagSingle>>;\n    public storeTag(tagModelStore: TagModelStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tagModelStore === null || tagModelStore === undefined) {\n            throw new Error('Required parameter tagModelStore was null or undefined when calling storeTag.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags`;\n        return this.httpClient.request<TagSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: tagModelStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing tag.\n     * Update existing tag.\n     * @param tag Either the tag itself or the tag ID. If you use the tag itself, and it contains international (non-ASCII) characters, your milage may vary.\n     * @param tagModelUpdate JSON array with updated tag information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateTag(tag: string, tagModelUpdate: TagModelUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TagSingle>;\n    public updateTag(tag: string, tagModelUpdate: TagModelUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TagSingle>>;\n    public updateTag(tag: string, tagModelUpdate: TagModelUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TagSingle>>;\n    public updateTag(tag: string, tagModelUpdate: TagModelUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling updateTag.');\n        }\n        if (tagModelUpdate === null || tagModelUpdate === undefined) {\n            throw new Error('Required parameter tagModelUpdate was null or undefined when calling updateTag.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"tag\", value: tag, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"string\"})}`;\n        return this.httpClient.request<TagSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: tagModelUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AttachmentArray } from '../model/attachmentArray';\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { PiggyBankEventArray } from '../model/piggyBankEventArray';\n// @ts-ignore\nimport { TransactionArray } from '../model/transactionArray';\n// @ts-ignore\nimport { TransactionLinkArray } from '../model/transactionLinkArray';\n// @ts-ignore\nimport { TransactionSingle } from '../model/transactionSingle';\n// @ts-ignore\nimport { TransactionStore } from '../model/transactionStore';\n// @ts-ignore\nimport { TransactionTypeFilter } from '../model/transactionTypeFilter';\n// @ts-ignore\nimport { TransactionUpdate } from '../model/transactionUpdate';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TransactionsService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a transaction.\n     * Delete a transaction.\n     * @param id The ID of the transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTransaction(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteTransaction(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteTransaction(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteTransaction(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteTransaction.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete split from transaction\n     * Delete an individual journal (split) from a transaction.\n     * @param id The ID of the transaction journal (the split) you wish to delete.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTransactionJournal(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteTransactionJournal(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteTransactionJournal(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteTransactionJournal(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteTransactionJournal.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-journals/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single transaction.\n     * Get a single transaction.\n     * @param id The ID of the transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransaction(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionSingle>;\n    public getTransaction(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionSingle>>;\n    public getTransaction(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionSingle>>;\n    public getTransaction(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getTransaction.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TransactionSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single transaction, based on one of the underlying transaction journals (transaction splits).\n     * Get a single transaction by underlying journal (split).\n     * @param id The ID of the transaction journal (split).\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTransactionByJournal(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionSingle>;\n    public getTransactionByJournal(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionSingle>>;\n    public getTransactionByJournal(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionSingle>>;\n    public getTransactionByJournal(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getTransactionByJournal.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-journals/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TransactionSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all attachments.\n     * Lists all attachments.\n     * @param id The ID of the transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listAttachmentByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<AttachmentArray>;\n    public listAttachmentByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<AttachmentArray>>;\n    public listAttachmentByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<AttachmentArray>>;\n    public listAttachmentByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listAttachmentByTransaction.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/attachments`;\n        return this.httpClient.request<AttachmentArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all piggy bank events.\n     * Lists all piggy bank events.\n     * @param id The ID of the transaction.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listEventByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<PiggyBankEventArray>;\n    public listEventByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<PiggyBankEventArray>>;\n    public listEventByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<PiggyBankEventArray>>;\n    public listEventByTransaction(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listEventByTransaction.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/piggy-bank-events`;\n        return this.httpClient.request<PiggyBankEventArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lists all the transaction links for an individual journal (individual split).\n     * Lists all the transaction links for an individual journal (a split). Don\\&#39;t use the group ID, you need the actual underlying journal (the split).\n     * @param id The ID of the transaction journal / the split.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listLinksByJournal(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionLinkArray>;\n    public listLinksByJournal(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionLinkArray>>;\n    public listLinksByJournal(id: string, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionLinkArray>>;\n    public listLinksByJournal(id: string, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling listLinksByJournal.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transaction-journals/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/links`;\n        return this.httpClient.request<TransactionLinkArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all the user\\&#39;s transactions. \n     * List all the user\\&#39;s transactions.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param start A date formatted YYYY-MM-DD. This is the start date of the selected range (inclusive). \n     * @param end A date formatted YYYY-MM-DD. This is the end date of the selected range (inclusive). \n     * @param type Optional filter on the transaction type(s) returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listTransaction(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionArray>;\n    public listTransaction(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionArray>>;\n    public listTransaction(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionArray>>;\n    public listTransaction(xTraceId?: string, limit?: number, page?: number, start?: string, end?: string, type?: TransactionTypeFilter, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions`;\n        return this.httpClient.request<TransactionArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new transaction\n     * Creates a new transaction. The data required can be submitted as a JSON body or as a list of parameters.\n     * @param transactionStore JSON array or key&#x3D;value pairs with the necessary transaction information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeTransaction(transactionStore: TransactionStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionSingle>;\n    public storeTransaction(transactionStore: TransactionStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionSingle>>;\n    public storeTransaction(transactionStore: TransactionStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionSingle>>;\n    public storeTransaction(transactionStore: TransactionStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (transactionStore === null || transactionStore === undefined) {\n            throw new Error('Required parameter transactionStore was null or undefined when calling storeTransaction.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions`;\n        return this.httpClient.request<TransactionSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: transactionStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing transaction. For more information, see https://docs.firefly-iii.org/references/firefly-iii/api/specials/\n     * Update an existing transaction.\n     * @param id The ID of the transaction.\n     * @param transactionUpdate JSON array with updated transaction information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateTransaction(id: string, transactionUpdate: TransactionUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<TransactionSingle>;\n    public updateTransaction(id: string, transactionUpdate: TransactionUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<TransactionSingle>>;\n    public updateTransaction(id: string, transactionUpdate: TransactionUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<TransactionSingle>>;\n    public updateTransaction(id: string, transactionUpdate: TransactionUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateTransaction.');\n        }\n        if (transactionUpdate === null || transactionUpdate === undefined) {\n            throw new Error('Required parameter transactionUpdate was null or undefined when calling updateTransaction.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/transactions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TransactionSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: transactionUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { User } from '../model/user';\n// @ts-ignore\nimport { UserArray } from '../model/userArray';\n// @ts-ignore\nimport { UserSingle } from '../model/userSingle';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UsersService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a user.\n     * Delete a user. You cannot delete the user you\\&#39;re authenticated with. This cannot be undone. Be careful!\n     * @param id The user ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteUser(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteUser(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteUser(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteUser(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single user.\n     * Gets all info of a single user.\n     * @param id The user ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUser(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<UserSingle>;\n    public getUser(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<UserSingle>>;\n    public getUser(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<UserSingle>>;\n    public getUser(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<UserSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all users.\n     * List all the users in this instance of Firefly III.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listUser(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<UserArray>;\n    public listUser(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<UserArray>>;\n    public listUser(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<UserArray>>;\n    public listUser(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users`;\n        return this.httpClient.request<UserArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new user\n     * Creates a new user. The data required can be submitted as a JSON body or as a list of parameters. The user will be given a random password, which they can reset using the \\&quot;forgot password\\&quot; function. \n     * @param user JSON array or key&#x3D;value pairs with the necessary user information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeUser(user: User, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<UserSingle>;\n    public storeUser(user: User, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<UserSingle>>;\n    public storeUser(user: User, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<UserSingle>>;\n    public storeUser(user: User, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json' | 'application/vnd.api+json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (user === null || user === undefined) {\n            throw new Error('Required parameter user was null or undefined when calling storeUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json',\n                'application/vnd.api+json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users`;\n        return this.httpClient.request<UserSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: user,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update an existing user\\&#39;s information.\n     * Update existing user.\n     * @param id The user ID.\n     * @param user JSON array with updated user information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateUser(id: string, user: User, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<UserSingle>;\n    public updateUser(id: string, user: User, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<UserSingle>>;\n    public updateUser(id: string, user: User, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<UserSingle>>;\n    public updateUser(id: string, user: User, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateUser.');\n        }\n        if (user === null || user === undefined) {\n            throw new Error('Required parameter user was null or undefined when calling updateUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<UserSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: user,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { BadRequestResponse } from '../model/badRequestResponse';\n// @ts-ignore\nimport { InternalExceptionResponse } from '../model/internalExceptionResponse';\n// @ts-ignore\nimport { NotFoundResponse } from '../model/notFoundResponse';\n// @ts-ignore\nimport { UnauthenticatedResponse } from '../model/unauthenticatedResponse';\n// @ts-ignore\nimport { ValidationErrorResponse } from '../model/validationErrorResponse';\n// @ts-ignore\nimport { WebhookArray } from '../model/webhookArray';\n// @ts-ignore\nimport { WebhookAttemptArray } from '../model/webhookAttemptArray';\n// @ts-ignore\nimport { WebhookAttemptSingle } from '../model/webhookAttemptSingle';\n// @ts-ignore\nimport { WebhookMessageArray } from '../model/webhookMessageArray';\n// @ts-ignore\nimport { WebhookMessageSingle } from '../model/webhookMessageSingle';\n// @ts-ignore\nimport { WebhookSingle } from '../model/webhookSingle';\n// @ts-ignore\nimport { WebhookStore } from '../model/webhookStore';\n// @ts-ignore\nimport { WebhookUpdate } from '../model/webhookUpdate';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { HttpConfiguration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class WebhooksService {\n\n    protected basePath = 'https://demo.firefly-iii.org/api';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new HttpConfiguration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: HttpConfiguration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;\n            if (firstBasePath != undefined) {\n                basePath = firstBasePath;\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Delete a webhook.\n     * Delete a webhook.\n     * @param id The webhook ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteWebhook(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteWebhook(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteWebhook(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteWebhook(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteWebhook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete a webhook message.\n     * Delete a webhook message. Any time a webhook is triggered the message is stored before it\\&#39;s sent. You can delete them before or after sending.\n     * @param id The webhook ID.\n     * @param messageId The webhook message ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteWebhookMessage(id: string, messageId: number, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteWebhookMessage.');\n        }\n        if (messageId === null || messageId === undefined) {\n            throw new Error('Required parameter messageId was null or undefined when calling deleteWebhookMessage.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages/${this.configuration.encodeParam({name: \"messageId\", value: messageId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete a webhook attempt.\n     * Delete a webhook message attempt. If you delete all attempts for a webhook message, Firefly III will (once again) assume all is well with the webhook message and will try to send it again.\n     * @param id The webhook ID.\n     * @param messageId The webhook message ID.\n     * @param attemptId The webhook message attempt ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public deleteWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public deleteWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public deleteWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteWebhookMessageAttempt.');\n        }\n        if (messageId === null || messageId === undefined) {\n            throw new Error('Required parameter messageId was null or undefined when calling deleteWebhookMessageAttempt.');\n        }\n        if (attemptId === null || attemptId === undefined) {\n            throw new Error('Required parameter attemptId was null or undefined when calling deleteWebhookMessageAttempt.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages/${this.configuration.encodeParam({name: \"messageId\", value: messageId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}/attempts/${this.configuration.encodeParam({name: \"attemptId\", value: attemptId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single message from a webhook.\n     * When a webhook is triggered it will store the actual content of the webhook in a webhook message. You can view and analyse a single one using this endpoint.\n     * @param id The webhook ID.\n     * @param messageId The webhook message ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getSingleWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookMessageSingle>;\n    public getSingleWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookMessageSingle>>;\n    public getSingleWebhookMessage(id: string, messageId: number, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookMessageSingle>>;\n    public getSingleWebhookMessage(id: string, messageId: number, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getSingleWebhookMessage.');\n        }\n        if (messageId === null || messageId === undefined) {\n            throw new Error('Required parameter messageId was null or undefined when calling getSingleWebhookMessage.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages/${this.configuration.encodeParam({name: \"messageId\", value: messageId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}`;\n        return this.httpClient.request<WebhookMessageSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single failed attempt from a single webhook message.\n     * When a webhook message fails to send it will store the failure in an \\&quot;attempt\\&quot;. You can view and analyse these. Webhooks messages that receive too many attempts (failures) will not be fired. You must first clear out old attempts and try again. This endpoint shows you the details of a single attempt. The ID of the attempt must match the corresponding webhook and webhook message.\n     * @param id The webhook ID.\n     * @param messageId The webhook message ID.\n     * @param attemptId The webhook attempt ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getSingleWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookAttemptSingle>;\n    public getSingleWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookAttemptSingle>>;\n    public getSingleWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookAttemptSingle>>;\n    public getSingleWebhookMessageAttempt(id: string, messageId: number, attemptId: number, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getSingleWebhookMessageAttempt.');\n        }\n        if (messageId === null || messageId === undefined) {\n            throw new Error('Required parameter messageId was null or undefined when calling getSingleWebhookMessageAttempt.');\n        }\n        if (attemptId === null || attemptId === undefined) {\n            throw new Error('Required parameter attemptId was null or undefined when calling getSingleWebhookMessageAttempt.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages/${this.configuration.encodeParam({name: \"messageId\", value: messageId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}/attempts/${this.configuration.encodeParam({name: \"attemptId\", value: attemptId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}`;\n        return this.httpClient.request<WebhookAttemptSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single webhook.\n     * Gets all info of a single webhook.\n     * @param id The webhook ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getWebhook(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookSingle>;\n    public getWebhook(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookSingle>>;\n    public getWebhook(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookSingle>>;\n    public getWebhook(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getWebhook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<WebhookSingle>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all the failed attempts of a single webhook message.\n     * When a webhook message fails to send it will store the failure in an \\&quot;attempt\\&quot;. You can view and analyse these. Webhook messages that receive too many attempts (failures) will not be sent again. You must first clear out old attempts before the message can go out again.\n     * @param id The webhook ID.\n     * @param messageId The webhook message ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getWebhookMessageAttempts(id: string, messageId: number, xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookAttemptArray>;\n    public getWebhookMessageAttempts(id: string, messageId: number, xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookAttemptArray>>;\n    public getWebhookMessageAttempts(id: string, messageId: number, xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookAttemptArray>>;\n    public getWebhookMessageAttempts(id: string, messageId: number, xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getWebhookMessageAttempts.');\n        }\n        if (messageId === null || messageId === undefined) {\n            throw new Error('Required parameter messageId was null or undefined when calling getWebhookMessageAttempts.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages/${this.configuration.encodeParam({name: \"messageId\", value: messageId, in: \"path\", style: \"simple\", explode: false, dataType: \"number\", dataFormat: undefined})}/attempts`;\n        return this.httpClient.request<WebhookAttemptArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all the messages of a single webhook.\n     * When a webhook is triggered the actual message that will be send is stored in a \\&quot;message\\&quot;. You can view and analyse these messages.\n     * @param id The webhook ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getWebhookMessages(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookMessageArray>;\n    public getWebhookMessages(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookMessageArray>>;\n    public getWebhookMessages(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookMessageArray>>;\n    public getWebhookMessages(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getWebhookMessages.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/messages`;\n        return this.httpClient.request<WebhookMessageArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * List all webhooks.\n     * List all the user\\&#39;s webhooks.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param limit Number of items per page. The default pagination is per 50 items.\n     * @param page Page number. The default pagination is per 50 items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public listWebhook(xTraceId?: string, limit?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookArray>;\n    public listWebhook(xTraceId?: string, limit?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookArray>>;\n    public listWebhook(xTraceId?: string, limit?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookArray>>;\n    public listWebhook(xTraceId?: string, limit?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (limit !== undefined && limit !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>limit, 'limit');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks`;\n        return this.httpClient.request<WebhookArray>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Store a new webhook\n     * Creates a new webhook. The data required can be submitted as a JSON body or as a list of parameters. The webhook will be given a random secret. \n     * @param webhookStore JSON array or key&#x3D;value pairs with the necessary webhook information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public storeWebhook(webhookStore: WebhookStore, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookSingle>;\n    public storeWebhook(webhookStore: WebhookStore, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookSingle>>;\n    public storeWebhook(webhookStore: WebhookStore, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookSingle>>;\n    public storeWebhook(webhookStore: WebhookStore, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (webhookStore === null || webhookStore === undefined) {\n            throw new Error('Required parameter webhookStore was null or undefined when calling storeWebhook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks`;\n        return this.httpClient.request<WebhookSingle>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: webhookStore,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Submit messages for a webhook.\n     * This endpoint will submit any open messages for this webhook. This is an asynchronous operation, so you can\\&#39;t see the result. Refresh the webhook message and/or the webhook message attempts to see the results. This may take some time if the webhook receiver is slow.\n     * @param id The webhook ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public submitWebook(id: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public submitWebook(id: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public submitWebook(id: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public submitWebook(id: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling submitWebook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/submit`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger webhook for a given transaction.\n     * This endpoint will execute this webhook for a given transaction ID. This is an asynchronous operation, so you can\\&#39;t see the result. Refresh the webhook message and/or the webhook message attempts to see the results. This may take some time if the webhook receiver is slow.\n     * @param id The webhook ID.\n     * @param transactionId The transaction ID.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerTransactionWebhook(id: string, transactionId: string, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n    public triggerTransactionWebhook(id: string, transactionId: string, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n    public triggerTransactionWebhook(id: string, transactionId: string, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n    public triggerTransactionWebhook(id: string, transactionId: string, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling triggerTransactionWebhook.');\n        }\n        if (transactionId === null || transactionId === undefined) {\n            throw new Error('Required parameter transactionId was null or undefined when calling triggerTransactionWebhook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/trigger-transaction/${this.configuration.encodeParam({name: \"transactionId\", value: transactionId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update existing webhook.\n     * Update an existing webhook\\&#39;s information. If you wish to reset the secret, submit any value as the \\&quot;secret\\&quot;. Firefly III will take this as a hint and reset the secret of the webhook.\n     * @param id The webhook ID.\n     * @param webhookUpdate JSON array with updated webhook information. See the model for the exact specifications.\n     * @param xTraceId Unique identifier associated with this request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateWebhook(id: string, webhookUpdate: WebhookUpdate, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<WebhookSingle>;\n    public updateWebhook(id: string, webhookUpdate: WebhookUpdate, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<WebhookSingle>>;\n    public updateWebhook(id: string, webhookUpdate: WebhookUpdate, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<WebhookSingle>>;\n    public updateWebhook(id: string, webhookUpdate: WebhookUpdate, xTraceId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.api+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateWebhook.');\n        }\n        if (webhookUpdate === null || webhookUpdate === undefined) {\n            throw new Error('Required parameter webhookUpdate was null or undefined when calling updateWebhook.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n        if (xTraceId !== undefined && xTraceId !== null) {\n            localVarHeaders = localVarHeaders.set('X-Trace-Id', String(xTraceId));\n        }\n\n        let localVarCredential: string | undefined;\n        // authentication (firefly_iii_auth) required\n        localVarCredential = this.configuration.lookupCredential('firefly_iii_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        // authentication (local_bearer_auth) required\n        localVarCredential = this.configuration.lookupCredential('local_bearer_auth');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/vnd.api+json',\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        let localVarTransferCache: boolean | undefined = options && options.transferCache;\n        if (localVarTransferCache === undefined) {\n            localVarTransferCache = true;\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json',\n            'application/x-www-form-urlencoded'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/webhooks/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<WebhookSingle>('put', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: webhookUpdate,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                transferCache: localVarTransferCache,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","export * from './about.service';\nimport { AboutService } from './about.service';\nexport * from './accounts.service';\nimport { AccountsService } from './accounts.service';\nexport * from './attachments.service';\nimport { AttachmentsService } from './attachments.service';\nexport * from './autocomplete.service';\nimport { AutocompleteService } from './autocomplete.service';\nexport * from './availableBudgets.service';\nimport { AvailableBudgetsService } from './availableBudgets.service';\nexport * from './bills.service';\nimport { BillsService } from './bills.service';\nexport * from './budgets.service';\nimport { BudgetsService } from './budgets.service';\nexport * from './categories.service';\nimport { CategoriesService } from './categories.service';\nexport * from './charts.service';\nimport { ChartsService } from './charts.service';\nexport * from './configuration.service';\nimport { ConfigurationService } from './configuration.service';\nexport * from './currencies.service';\nimport { CurrenciesService } from './currencies.service';\nexport * from './data.service';\nimport { DataService } from './data.service';\nexport * from './insight.service';\nimport { InsightService } from './insight.service';\nexport * from './links.service';\nimport { LinksService } from './links.service';\nexport * from './objectGroups.service';\nimport { ObjectGroupsService } from './objectGroups.service';\nexport * from './piggyBanks.service';\nimport { PiggyBanksService } from './piggyBanks.service';\nexport * from './preferences.service';\nimport { PreferencesService } from './preferences.service';\nexport * from './recurrences.service';\nimport { RecurrencesService } from './recurrences.service';\nexport * from './ruleGroups.service';\nimport { RuleGroupsService } from './ruleGroups.service';\nexport * from './rules.service';\nimport { RulesService } from './rules.service';\nexport * from './search.service';\nimport { SearchService } from './search.service';\nexport * from './summary.service';\nimport { SummaryService } from './summary.service';\nexport * from './tags.service';\nimport { TagsService } from './tags.service';\nexport * from './transactions.service';\nimport { TransactionsService } from './transactions.service';\nexport * from './users.service';\nimport { UsersService } from './users.service';\nexport * from './webhooks.service';\nimport { WebhooksService } from './webhooks.service';\nexport const APIS = [AboutService, AccountsService, AttachmentsService, AutocompleteService, AvailableBudgetsService, BillsService, BudgetsService, CategoriesService, ChartsService, ConfigurationService, CurrenciesService, DataService, InsightService, LinksService, ObjectGroupsService, PiggyBanksService, PreferencesService, RecurrencesService, RuleGroupsService, RulesService, SearchService, SummaryService, TagsService, TransactionsService, UsersService, WebhooksService];\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Is only mandatory when the type is asset.\n */\nexport type AccountRoleProperty = 'defaultAsset' | 'sharedAsset' | 'savingAsset' | 'ccAsset' | 'cashWalletAsset' | 'null';\n\nexport const AccountRoleProperty = {\n    DefaultAsset: 'defaultAsset' as AccountRoleProperty,\n    SharedAsset: 'sharedAsset' as AccountRoleProperty,\n    SavingAsset: 'savingAsset' as AccountRoleProperty,\n    CcAsset: 'ccAsset' as AccountRoleProperty,\n    CashWalletAsset: 'cashWalletAsset' as AccountRoleProperty,\n    Null: 'null' as AccountRoleProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type AccountSearchFieldFilter = 'all' | 'iban' | 'name' | 'number' | 'id';\n\nexport const AccountSearchFieldFilter = {\n    All: 'all' as AccountSearchFieldFilter,\n    Iban: 'iban' as AccountSearchFieldFilter,\n    Name: 'name' as AccountSearchFieldFilter,\n    Number: 'number' as AccountSearchFieldFilter,\n    Id: 'id' as AccountSearchFieldFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type AccountTypeFilter = 'all' | 'asset' | 'cash' | 'expense' | 'revenue' | 'special' | 'hidden' | 'liability' | 'liabilities' | 'Default account' | 'Cash account' | 'Asset account' | 'Expense account' | 'Revenue account' | 'Initial balance account' | 'Beneficiary account' | 'Import account' | 'Reconciliation account' | 'Loan' | 'Debt' | 'Mortgage';\n\nexport const AccountTypeFilter = {\n    All: 'all' as AccountTypeFilter,\n    Asset: 'asset' as AccountTypeFilter,\n    Cash: 'cash' as AccountTypeFilter,\n    Expense: 'expense' as AccountTypeFilter,\n    Revenue: 'revenue' as AccountTypeFilter,\n    Special: 'special' as AccountTypeFilter,\n    Hidden: 'hidden' as AccountTypeFilter,\n    Liability: 'liability' as AccountTypeFilter,\n    Liabilities: 'liabilities' as AccountTypeFilter,\n    DefaultAccount: 'Default account' as AccountTypeFilter,\n    CashAccount: 'Cash account' as AccountTypeFilter,\n    AssetAccount: 'Asset account' as AccountTypeFilter,\n    ExpenseAccount: 'Expense account' as AccountTypeFilter,\n    RevenueAccount: 'Revenue account' as AccountTypeFilter,\n    InitialBalanceAccount: 'Initial balance account' as AccountTypeFilter,\n    BeneficiaryAccount: 'Beneficiary account' as AccountTypeFilter,\n    ImportAccount: 'Import account' as AccountTypeFilter,\n    ReconciliationAccount: 'Reconciliation account' as AccountTypeFilter,\n    Loan: 'Loan' as AccountTypeFilter,\n    Debt: 'Debt' as AccountTypeFilter,\n    Mortgage: 'Mortgage' as AccountTypeFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type AccountTypeProperty = 'Default account' | 'Cash account' | 'Asset account' | 'Expense account' | 'Revenue account' | 'Initial balance account' | 'Beneficiary account' | 'Import account' | 'Reconciliation account' | 'Loan' | 'Debt' | 'Mortgage';\n\nexport const AccountTypeProperty = {\n    DefaultAccount: 'Default account' as AccountTypeProperty,\n    CashAccount: 'Cash account' as AccountTypeProperty,\n    AssetAccount: 'Asset account' as AccountTypeProperty,\n    ExpenseAccount: 'Expense account' as AccountTypeProperty,\n    RevenueAccount: 'Revenue account' as AccountTypeProperty,\n    InitialBalanceAccount: 'Initial balance account' as AccountTypeProperty,\n    BeneficiaryAccount: 'Beneficiary account' as AccountTypeProperty,\n    ImportAccount: 'Import account' as AccountTypeProperty,\n    ReconciliationAccount: 'Reconciliation account' as AccountTypeProperty,\n    Loan: 'Loan' as AccountTypeProperty,\n    Debt: 'Debt' as AccountTypeProperty,\n    Mortgage: 'Mortgage' as AccountTypeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The object class to which the attachment must be linked.\n */\nexport type AttachableType = 'Account' | 'Budget' | 'Bill' | 'TransactionJournal' | 'PiggyBank' | 'Tag';\n\nexport const AttachableType = {\n    Account: 'Account' as AttachableType,\n    Budget: 'Budget' as AttachableType,\n    Bill: 'Bill' as AttachableType,\n    TransactionJournal: 'TransactionJournal' as AttachableType,\n    PiggyBank: 'PiggyBank' as AttachableType,\n    Tag: 'Tag' as AttachableType\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AttachmentUpdate { \n    filename?: string;\n    title?: string;\n    notes?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Period for the auto budget\n */\nexport type AutoBudgetPeriod = 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly' | 'null';\n\nexport const AutoBudgetPeriod = {\n    Daily: 'daily' as AutoBudgetPeriod,\n    Weekly: 'weekly' as AutoBudgetPeriod,\n    Monthly: 'monthly' as AutoBudgetPeriod,\n    Quarterly: 'quarterly' as AutoBudgetPeriod,\n    HalfYear: 'half-year' as AutoBudgetPeriod,\n    Yearly: 'yearly' as AutoBudgetPeriod,\n    Null: 'null' as AutoBudgetPeriod\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of auto-budget that Firefly III must create.\n */\nexport type AutoBudgetType = 'reset' | 'rollover' | 'none' | 'null';\n\nexport const AutoBudgetType = {\n    Reset: 'reset' as AutoBudgetType,\n    Rollover: 'rollover' as AutoBudgetType,\n    None: 'none' as AutoBudgetType,\n    Null: 'null' as AutoBudgetType\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteAccount { \n    id: string;\n    /**\n     * Name of the account found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Asset accounts and liabilities have a second field with the given date\\'s account balance.\n     */\n    name_with_balance: string;\n    /**\n     * Account type of the account found by the auto-complete search.\n     */\n    type: string;\n    /**\n     * ID for the currency used by this account.\n     */\n    currency_id: string;\n    /**\n     * Currency name for the currency used by this account.\n     */\n    currency_name: string;\n    /**\n     * Currency code for the currency used by this account.\n     */\n    currency_code: string;\n    /**\n     * Currency symbol for the currency used by this account.\n     */\n    currency_symbol: string;\n    /**\n     * Number of decimal places for the currency used by this account.\n     */\n    currency_decimal_places: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteBill { \n    id: string;\n    /**\n     * Name of the bill found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Is the bill active or not?\n     */\n    active?: boolean;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteBudget { \n    id: string;\n    /**\n     * Name of the budget found by an auto-complete search.\n     */\n    name: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteCategory { \n    id: string;\n    /**\n     * Name of the category found by an auto-complete search.\n     */\n    name: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteCurrency { \n    id: string;\n    /**\n     * Currency name.\n     */\n    name: string;\n    /**\n     * Currency code.\n     */\n    code: string;\n    symbol: string;\n    decimal_places: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteCurrencyCode { \n    id: string;\n    /**\n     * Currency name with the code between brackets.\n     */\n    name: string;\n    /**\n     * Currency code.\n     */\n    code: string;\n    symbol: string;\n    decimal_places: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteObjectGroup { \n    id: string;\n    /**\n     * Title of the object group found by an auto-complete search.\n     */\n    title: string;\n    /**\n     * Title of the object group found by an auto-complete search.\n     */\n    name: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompletePiggy { \n    id: string;\n    /**\n     * Name of the piggy bank found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Currency ID for this piggy bank.\n     */\n    currency_id?: string;\n    /**\n     * Currency code for this piggy bank.\n     */\n    currency_code?: string;\n    currency_symbol?: string;\n    /**\n     * Currency name for the currency used by this account.\n     */\n    currency_name?: string;\n    currency_decimal_places?: number;\n    /**\n     * The group ID of the group this object is part of. NULL if no group.\n     */\n    object_group_id?: string | null;\n    /**\n     * The name of the group. NULL if no group.\n     */\n    object_group_title?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompletePiggyBalance { \n    id: string;\n    /**\n     * Name of the piggy bank found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Name of the piggy bank found by an auto-complete search with the current balance formatted nicely.\n     */\n    name_with_balance?: string;\n    /**\n     * Currency ID for this piggy bank.\n     */\n    currency_id?: string;\n    /**\n     * Currency code for this piggy bank.\n     */\n    currency_code?: string;\n    currency_symbol?: string;\n    currency_decimal_places?: number;\n    /**\n     * The group ID of the group this object is part of. NULL if no group.\n     */\n    object_group_id?: string | null;\n    /**\n     * The name of the group. NULL if no group.\n     */\n    object_group_title?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteRecurrence { \n    id: string;\n    /**\n     * Name of the recurrence found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Description of the recurrence found by auto-complete.\n     */\n    description?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteRule { \n    id: string;\n    /**\n     * Name of the rule found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Description of the rule found by auto-complete.\n     */\n    description?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteRuleGroup { \n    id: string;\n    /**\n     * Name of the rule group found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Description of the rule group found by auto-complete.\n     */\n    description?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteTag { \n    id: string;\n    /**\n     * Name of the tag found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Name of the tag found by an auto-complete search.\n     */\n    tag: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteTransaction { \n    /**\n     * The ID of a transaction journal (basically a single split).\n     */\n    id: string;\n    /**\n     * The ID of the underlying transaction group.\n     */\n    transaction_group_id?: string;\n    /**\n     * Transaction description\n     */\n    name: string;\n    /**\n     * Transaction description\n     */\n    description: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteTransactionID { \n    /**\n     * The ID of a transaction journal (basically a single split).\n     */\n    id: string;\n    /**\n     * The ID of the underlying transaction group.\n     */\n    transaction_group_id?: string;\n    /**\n     * Transaction description with ID in the name.\n     */\n    name: string;\n    /**\n     * Transaction description with ID in the name.\n     */\n    description: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AutocompleteTransactionType { \n    id: string;\n    /**\n     * Type of the object found by an auto-complete search.\n     */\n    name: string;\n    /**\n     * Name of the object found by an auto-complete search.\n     */\n    type: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BadRequestResponse { \n    message?: string;\n    exception?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BasicSummaryEntry { \n    /**\n     * This is a reference to the type of info shared, not influenced by translations or user preferences. The EUR value is a reference to the currency code. Possibilities are: balance-in-ABC, spent-in-ABC, earned-in-ABC, bills-paid-in-ABC, bills-unpaid-in-ABC, left-to-spend-in-ABC and net-worth-in-ABC.\n     */\n    key?: string;\n    /**\n     * A translated title for the information shared.\n     */\n    title?: string;\n    /**\n     * The amount as a float.\n     */\n    monetary_value?: number;\n    /**\n     * The currency ID of the associated currency.\n     */\n    currency_id?: string;\n    currency_code?: string;\n    currency_symbol?: string;\n    /**\n     * Number of decimals for the associated currency.\n     */\n    currency_decimal_places?: number;\n    /**\n     * The amount formatted according to the users locale\n     */\n    value_parsed?: string;\n    /**\n     * Reference to a font-awesome icon without the fa- part.\n     */\n    local_icon?: string;\n    /**\n     * A short explanation of the amounts origin. Already formatted according to the locale of the user or translated, if relevant.\n     */\n    sub_title?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BillPaidDatesInner { \n    /**\n     * Transaction group ID of the paid bill.\n     */\n    readonly transaction_group_id?: string;\n    /**\n     * Transaction journal ID of the paid bill.\n     */\n    readonly transaction_journal_id?: string;\n    /**\n     * Date the bill was paid.\n     */\n    readonly date?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * How often the bill must be paid.\n */\nexport type BillRepeatFrequency = 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly';\n\nexport const BillRepeatFrequency = {\n    Weekly: 'weekly' as BillRepeatFrequency,\n    Monthly: 'monthly' as BillRepeatFrequency,\n    Quarterly: 'quarterly' as BillRepeatFrequency,\n    HalfYear: 'half-year' as BillRepeatFrequency,\n    Yearly: 'yearly' as BillRepeatFrequency\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BudgetLimit { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * Start date of the budget limit.\n     */\n    start: string;\n    /**\n     * End date of the budget limit.\n     */\n    end: string;\n    /**\n     * Use either currency_id or currency_code. Defaults to the user\\'s default currency.\n     */\n    currency_id?: string;\n    /**\n     * Use either currency_id or currency_code. Defaults to the user\\'s default currency.\n     */\n    currency_code?: string;\n    readonly currency_name?: string;\n    readonly currency_symbol?: string;\n    readonly currency_decimal_places?: number;\n    /**\n     * The budget ID of the associated budget.\n     */\n    readonly budget_id: string;\n    /**\n     * Period of the budget limit. Only used when auto-generated by auto-budget.\n     */\n    readonly period?: string | null;\n    amount: string;\n    readonly spent?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BudgetLimitStore { \n    /**\n     * Use either currency_id or currency_code. Defaults to the user\\'s default currency.\n     */\n    currency_id?: string;\n    /**\n     * Use either currency_id or currency_code. Defaults to the user\\'s default currency.\n     */\n    currency_code?: string;\n    /**\n     * The budget ID of the associated budget.\n     */\n    readonly budget_id: string;\n    /**\n     * Start date of the budget limit.\n     */\n    start: string;\n    /**\n     * Period of the budget limit. Only used when auto-generated by auto-budget.\n     */\n    readonly period?: string | null;\n    /**\n     * End date of the budget limit.\n     */\n    end: string;\n    amount: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BudgetSpent { \n    /**\n     * The amount spent.\n     */\n    sum?: string;\n    currency_id?: string;\n    currency_code?: string;\n    currency_symbol?: string;\n    /**\n     * Number of decimals supported by the currency\n     */\n    currency_decimal_places?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CategoryEarned { \n    currency_id?: string;\n    currency_code?: string;\n    currency_symbol?: string;\n    /**\n     * Number of decimals supported by the currency\n     */\n    currency_decimal_places?: number;\n    /**\n     * The amount earned.\n     */\n    sum?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CategorySpent { \n    currency_id?: string;\n    currency_code?: string;\n    currency_symbol?: string;\n    /**\n     * Number of decimals supported by the currency\n     */\n    currency_decimal_places?: number;\n    /**\n     * The amount spent.\n     */\n    sum?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CategoryUpdate { \n    name: string;\n    notes?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChartDataPoint { \n    /**\n     * The key is the label of the value, so for example: \\'2018-01-01\\' => 13 or \\'Groceries\\' => -123.\n     */\n    key?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Title of the configuration value.\n */\nexport type ConfigValueFilter = 'configuration.is_demo_site' | 'configuration.permission_update_check' | 'configuration.last_update_check' | 'configuration.single_user_mode' | 'firefly.version' | 'firefly.api_version' | 'firefly.default_location' | 'firefly.account_to_transaction' | 'firefly.allowed_opposing_types' | 'firefly.accountRoles' | 'firefly.valid_liabilities' | 'firefly.interest_periods' | 'firefly.enable_external_map' | 'firefly.expected_source_types' | 'app.timezone' | 'firefly.bill_periods' | 'firefly.credit_card_types' | 'firefly.languages' | 'firefly.valid_view_ranges';\n\nexport const ConfigValueFilter = {\n    ConfigurationIsDemoSite: 'configuration.is_demo_site' as ConfigValueFilter,\n    ConfigurationPermissionUpdateCheck: 'configuration.permission_update_check' as ConfigValueFilter,\n    ConfigurationLastUpdateCheck: 'configuration.last_update_check' as ConfigValueFilter,\n    ConfigurationSingleUserMode: 'configuration.single_user_mode' as ConfigValueFilter,\n    FireflyVersion: 'firefly.version' as ConfigValueFilter,\n    FireflyApiVersion: 'firefly.api_version' as ConfigValueFilter,\n    FireflyDefaultLocation: 'firefly.default_location' as ConfigValueFilter,\n    FireflyAccountToTransaction: 'firefly.account_to_transaction' as ConfigValueFilter,\n    FireflyAllowedOpposingTypes: 'firefly.allowed_opposing_types' as ConfigValueFilter,\n    FireflyAccountRoles: 'firefly.accountRoles' as ConfigValueFilter,\n    FireflyValidLiabilities: 'firefly.valid_liabilities' as ConfigValueFilter,\n    FireflyInterestPeriods: 'firefly.interest_periods' as ConfigValueFilter,\n    FireflyEnableExternalMap: 'firefly.enable_external_map' as ConfigValueFilter,\n    FireflyExpectedSourceTypes: 'firefly.expected_source_types' as ConfigValueFilter,\n    AppTimezone: 'app.timezone' as ConfigValueFilter,\n    FireflyBillPeriods: 'firefly.bill_periods' as ConfigValueFilter,\n    FireflyCreditCardTypes: 'firefly.credit_card_types' as ConfigValueFilter,\n    FireflyLanguages: 'firefly.languages' as ConfigValueFilter,\n    FireflyValidViewRanges: 'firefly.valid_view_ranges' as ConfigValueFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ConfigValueUpdateFilter = 'configuration.is_demo_site' | 'configuration.permission_update_check' | 'configuration.last_update_check' | 'configuration.single_user_mode';\n\nexport const ConfigValueUpdateFilter = {\n    IsDemoSite: 'configuration.is_demo_site' as ConfigValueUpdateFilter,\n    PermissionUpdateCheck: 'configuration.permission_update_check' as ConfigValueUpdateFilter,\n    LastUpdateCheck: 'configuration.last_update_check' as ConfigValueUpdateFilter,\n    SingleUserMode: 'configuration.single_user_mode' as ConfigValueUpdateFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Mandatory when the account_role is ccAsset. Can only be monthlyFull or null.\n */\nexport type CreditCardTypeProperty = 'monthlyFull' | 'null';\n\nexport const CreditCardTypeProperty = {\n    MonthlyFull: 'monthlyFull' as CreditCardTypeProperty,\n    Null: 'null' as CreditCardTypeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CronResultRow { \n    /**\n     * This value tells you if this specific cron job actually fired. It may not fire. Some cron jobs only fire every 24 hours, for example. \n     */\n    job_fired?: boolean | null;\n    /**\n     * This value tells you if this specific cron job actually did something. The job may fire but not change anything. \n     */\n    job_succeeded?: boolean | null;\n    /**\n     * If the cron job ran into some kind of an error, this value will be true.\n     */\n    job_errored?: boolean | null;\n    /**\n     * If the cron job ran into some kind of an error, this value will be the error message. The success message if the job actually ran OK. \n     */\n    message?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Currency { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * Defaults to true\n     */\n    enabled?: boolean;\n    /**\n     * Make this currency the default currency.\n     */\n    _default?: boolean;\n    code: string;\n    name: string;\n    symbol: string;\n    /**\n     * Supports 0-16 decimals.\n     */\n    decimal_places?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CurrencyStore { \n    /**\n     * Defaults to true\n     */\n    enabled?: boolean;\n    /**\n     * Make this currency the default currency. You can set this value to FALSE, in which case nothing will change to the default currency. If you set it to TRUE, the current default currency will no longer be the default currency.\n     */\n    _default?: boolean;\n    code: string;\n    name: string;\n    symbol: string;\n    /**\n     * Supports 0-16 decimals.\n     */\n    decimal_places?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CurrencyUpdate { \n    /**\n     * If the currency is enabled\n     */\n    enabled?: boolean;\n    /**\n     * If the currency must be the default for the user. You can only submit TRUE. Submitting FALSE will not drop this currency as the default currency, because then the system would be without one.\n     */\n    _default?: boolean;\n    /**\n     * The currency code\n     */\n    code?: string;\n    /**\n     * The currency name\n     */\n    name?: string;\n    /**\n     * The currency symbol\n     */\n    symbol?: string;\n    /**\n     * How many decimals to use when displaying this currency. Between 0 and 16.\n     */\n    decimal_places?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DataDestroyObject = 'not_assets_liabilities' | 'budgets' | 'bills' | 'piggy_banks' | 'rules' | 'recurring' | 'categories' | 'tags' | 'object_groups' | 'accounts' | 'asset_accounts' | 'expense_accounts' | 'revenue_accounts' | 'liabilities' | 'transactions' | 'withdrawals' | 'deposits' | 'transfers';\n\nexport const DataDestroyObject = {\n    NotAssetsLiabilities: 'not_assets_liabilities' as DataDestroyObject,\n    Budgets: 'budgets' as DataDestroyObject,\n    Bills: 'bills' as DataDestroyObject,\n    PiggyBanks: 'piggy_banks' as DataDestroyObject,\n    Rules: 'rules' as DataDestroyObject,\n    Recurring: 'recurring' as DataDestroyObject,\n    Categories: 'categories' as DataDestroyObject,\n    Tags: 'tags' as DataDestroyObject,\n    ObjectGroups: 'object_groups' as DataDestroyObject,\n    Accounts: 'accounts' as DataDestroyObject,\n    AssetAccounts: 'asset_accounts' as DataDestroyObject,\n    ExpenseAccounts: 'expense_accounts' as DataDestroyObject,\n    RevenueAccounts: 'revenue_accounts' as DataDestroyObject,\n    Liabilities: 'liabilities' as DataDestroyObject,\n    Transactions: 'transactions' as DataDestroyObject,\n    Withdrawals: 'withdrawals' as DataDestroyObject,\n    Deposits: 'deposits' as DataDestroyObject,\n    Transfers: 'transfers' as DataDestroyObject\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ExportFileFilter = 'csv';\n\nexport const ExportFileFilter = {\n    Csv: 'csv' as ExportFileFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InsightGroupEntry { \n    /**\n     * This ID is a reference to the original object.\n     */\n    id?: string;\n    /**\n     * This is the name of the object.\n     */\n    name?: string;\n    /**\n     * The amount spent or earned between start date and end date, a number defined as a string, for this object and all asset accounts.\n     */\n    difference?: string;\n    /**\n     * The amount spent or earned between start date and end date, a number as a float, for this object and all asset accounts. May have rounding errors.\n     */\n    difference_float?: number;\n    /**\n     * The currency ID of the expenses listed for this account.\n     */\n    currency_id?: string;\n    /**\n     * The currency code of the expenses listed for this account.\n     */\n    currency_code?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InsightTotalEntry { \n    /**\n     * The amount spent between start date and end date, defined as a string, for this expense account and all asset accounts.\n     */\n    difference?: string;\n    /**\n     * The amount spent between start date and end date, defined as a string, for this expense account and all asset accounts. This number is a float (double) and may have rounding errors.\n     */\n    difference_float?: number;\n    /**\n     * The currency ID of the expenses listed for this expense account.\n     */\n    currency_id?: string;\n    /**\n     * The currency code of the expenses listed for this expense account.\n     */\n    currency_code?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InsightTransferEntry { \n    /**\n     * This ID is a reference to the original object.\n     */\n    id?: string;\n    /**\n     * This is the name of the object.\n     */\n    name?: string;\n    /**\n     * The total amount transferred between start date and end date, a number defined as a string, for this asset account.\n     */\n    difference?: string;\n    /**\n     * The total amount transferred between start date and end date, a number as a float, for this asset account. May have rounding errors.\n     */\n    difference_float?: number;\n    /**\n     * The total amount transferred TO this account between start date and end date, a number defined as a string, for this asset account.\n     */\n    _in?: string;\n    /**\n     * The total amount transferred FROM this account between start date and end date, a number as a float, for this asset account. May have rounding errors.\n     */\n    in_float?: number;\n    /**\n     * The total amount transferred FROM this account between start date and end date, a number defined as a string, for this asset account.\n     */\n    out?: string;\n    /**\n     * The total amount transferred TO this account between start date and end date, a number as a float, for this asset account. May have rounding errors.\n     */\n    out_float?: number;\n    /**\n     * The currency ID of the expenses listed for this account.\n     */\n    currency_id?: string;\n    /**\n     * The currency code of the expenses listed for this account.\n     */\n    currency_code?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Mandatory when type is liability. Period over which the interest is calculated.\n */\nexport type InterestPeriodProperty = 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly' | 'null';\n\nexport const InterestPeriodProperty = {\n    Weekly: 'weekly' as InterestPeriodProperty,\n    Monthly: 'monthly' as InterestPeriodProperty,\n    Quarterly: 'quarterly' as InterestPeriodProperty,\n    HalfYear: 'half-year' as InterestPeriodProperty,\n    Yearly: 'yearly' as InterestPeriodProperty,\n    Null: 'null' as InterestPeriodProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InternalExceptionResponse { \n    message?: string;\n    exception?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \\'credit\\' indicates somebody owes you the liability. \\'debit\\' Indicates you owe this debt yourself. Works only for liabiltiies.\n */\nexport type LiabilityDirectionProperty = 'credit' | 'debit' | 'null';\n\nexport const LiabilityDirectionProperty = {\n    Credit: 'credit' as LiabilityDirectionProperty,\n    Debit: 'debit' as LiabilityDirectionProperty,\n    Null: 'null' as LiabilityDirectionProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Mandatory when type is liability. Specifies the exact type.\n */\nexport type LiabilityTypeProperty = 'loan' | 'debt' | 'mortgage' | 'null';\n\nexport const LiabilityTypeProperty = {\n    Loan: 'loan' as LiabilityTypeProperty,\n    Debt: 'debt' as LiabilityTypeProperty,\n    Mortgage: 'mortgage' as LiabilityTypeProperty,\n    Null: 'null' as LiabilityTypeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LinkType { \n    name: string;\n    inward: string;\n    outward: string;\n    readonly editable?: boolean;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LinkTypeUpdate { \n    name?: string;\n    inward?: string;\n    outward?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MetaPagination { \n    total?: number;\n    count?: number;\n    per_page?: number;\n    current_page?: number;\n    total_pages?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NotFoundResponse { \n    message?: string;\n    exception?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ObjectGroup { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    title: string;\n    /**\n     * Order of the object group\n     */\n    order: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ObjectGroupUpdate { \n    title: string;\n    /**\n     * Order of the object group\n     */\n    order?: number;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ObjectLink0 { \n    rel?: string;\n    uri?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PageLink { \n    self?: string;\n    first?: string;\n    next?: string | null;\n    prev?: string | null;\n    last?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PiggyBank { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * The ID of the asset account this piggy bank is connected to.\n     */\n    account_id: string;\n    /**\n     * The name of the asset account this piggy bank is connected to.\n     */\n    readonly account_name?: string;\n    name: string;\n    readonly currency_id?: string;\n    readonly currency_code?: string;\n    readonly currency_symbol?: string;\n    /**\n     * Number of decimals supported by the currency\n     */\n    readonly currency_decimal_places?: number;\n    target_amount: string | null;\n    readonly percentage?: number | null;\n    current_amount?: string;\n    readonly left_to_save?: string | null;\n    readonly save_per_month?: string | null;\n    /**\n     * The date you started with this piggy bank.\n     */\n    start_date?: string;\n    /**\n     * The date you intend to finish saving money.\n     */\n    target_date?: string | null;\n    order?: number;\n    readonly active?: boolean;\n    notes?: string | null;\n    /**\n     * The group ID of the group this object is part of. NULL if no group.\n     */\n    object_group_id?: string | null;\n    /**\n     * The order of the group. At least 1, for the highest sorting.\n     */\n    readonly object_group_order?: number | null;\n    /**\n     * The name of the group. NULL if no group.\n     */\n    object_group_title?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PiggyBankEvent { \n    created_at?: string;\n    updated_at?: string;\n    currency_id?: string;\n    currency_code?: string;\n    currency_symbol?: string;\n    currency_decimal_places?: number;\n    amount?: string;\n    /**\n     * The journal associated with the event.\n     */\n    transaction_journal_id?: string | null;\n    /**\n     * The transaction group associated with the event.\n     */\n    transaction_group_id?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PiggyBankStore { \n    name: string;\n    /**\n     * The ID of the asset account this piggy bank is connected to.\n     */\n    account_id: string;\n    target_amount: string | null;\n    current_amount?: string;\n    /**\n     * The date you started with this piggy bank.\n     */\n    start_date?: string;\n    /**\n     * The date you intend to finish saving money.\n     */\n    target_date?: string | null;\n    order?: number;\n    readonly active?: boolean;\n    notes?: string | null;\n    /**\n     * The group ID of the group this object is part of. NULL if no group.\n     */\n    object_group_id?: string | null;\n    /**\n     * The name of the group. NULL if no group.\n     */\n    object_group_title?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PiggyBankUpdate { \n    name?: string;\n    /**\n     * The ID of the asset account this piggy bank is connected to.\n     */\n    account_id?: string;\n    readonly currency_id?: string;\n    readonly currency_code?: string;\n    target_amount?: string | null;\n    current_amount?: string;\n    /**\n     * The date you started with this piggy bank.\n     */\n    start_date?: string;\n    /**\n     * The date you intend to finish saving money.\n     */\n    target_date?: string | null;\n    order?: number;\n    readonly active?: boolean;\n    notes?: string | null;\n    /**\n     * The group ID of the group this object is part of. NULL if no group.\n     */\n    object_group_id?: string | null;\n    /**\n     * The name of the group. NULL if no group.\n     */\n    object_group_title?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * @type PolymorphicProperty\n * @export\n */\nexport type PolymorphicProperty = Array<string> | boolean | object | string;\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of the repetition. ndom means: the n-th weekday of the month, where you can also specify which day of the week.\n */\nexport type RecurrenceRepetitionType = 'daily' | 'weekly' | 'ndom' | 'monthly' | 'yearly';\n\nexport const RecurrenceRepetitionType = {\n    Daily: 'daily' as RecurrenceRepetitionType,\n    Weekly: 'weekly' as RecurrenceRepetitionType,\n    Ndom: 'ndom' as RecurrenceRepetitionType,\n    Monthly: 'monthly' as RecurrenceRepetitionType,\n    Yearly: 'yearly' as RecurrenceRepetitionType\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RecurrenceTransactionStore { \n    description: string;\n    /**\n     * Amount of the transaction.\n     */\n    amount: string;\n    /**\n     * Foreign amount of the transaction.\n     */\n    foreign_amount?: string | null;\n    /**\n     * Submit either a currency_id or a currency_code.\n     */\n    currency_id?: string;\n    /**\n     * Submit either a currency_id or a currency_code.\n     */\n    currency_code?: string;\n    /**\n     * Submit either a foreign_currency_id or a foreign_currency_code, or neither.\n     */\n    foreign_currency_id?: string | null;\n    /**\n     * Submit either a foreign_currency_id or a foreign_currency_code, or neither.\n     */\n    foreign_currency_code?: string | null;\n    /**\n     * The budget ID for this transaction.\n     */\n    budget_id?: string;\n    /**\n     * Category ID for this transaction.\n     */\n    category_id?: string;\n    /**\n     * ID of the source account.\n     */\n    source_id: string;\n    /**\n     * ID of the destination account.\n     */\n    destination_id: string;\n    /**\n     * Array of tags.\n     */\n    tags?: Array<string> | null;\n    /**\n     * Optional.\n     */\n    piggy_bank_id?: string | null;\n    /**\n     * Optional.\n     */\n    bill_id?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RecurrenceTransactionType = 'withdrawal' | 'transfer' | 'deposit';\n\nexport const RecurrenceTransactionType = {\n    Withdrawal: 'withdrawal' as RecurrenceTransactionType,\n    Transfer: 'transfer' as RecurrenceTransactionType,\n    Deposit: 'deposit' as RecurrenceTransactionType\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RecurrenceTransactionUpdate { \n    id: string;\n    description?: string;\n    /**\n     * Amount of the transaction.\n     */\n    amount?: string;\n    /**\n     * Foreign amount of the transaction.\n     */\n    foreign_amount?: string | null;\n    /**\n     * Submit either a currency_id or a currency_code.\n     */\n    currency_id?: string;\n    /**\n     * Submit either a currency_id or a currency_code.\n     */\n    currency_code?: string;\n    /**\n     * Submit either a foreign_currency_id or a foreign_currency_code, or neither.\n     */\n    foreign_currency_id?: string | null;\n    /**\n     * The budget ID for this transaction.\n     */\n    budget_id?: string;\n    /**\n     * Category ID for this transaction.\n     */\n    category_id?: string;\n    /**\n     * ID of the source account. Submit either this or source_name.\n     */\n    source_id?: string;\n    /**\n     * ID of the destination account. Submit either this or destination_name.\n     */\n    destination_id?: string;\n    /**\n     * Array of tags.\n     */\n    tags?: Array<string> | null;\n    piggy_bank_id?: string | null;\n    /**\n     * Optional.\n     */\n    bill_id?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of thing this action will do. A limited set is possible.\n */\nexport type RuleActionKeyword = 'user_action' | 'set_category' | 'clear_category' | 'set_budget' | 'clear_budget' | 'add_tag' | 'remove_tag' | 'remove_all_tags' | 'set_description' | 'append_description' | 'prepend_description' | 'set_source_account' | 'set_destination_account' | 'set_notes' | 'append_notes' | 'prepend_notes' | 'clear_notes' | 'link_to_bill' | 'convert_withdrawal' | 'convert_deposit' | 'convert_transfer' | 'delete_transaction';\n\nexport const RuleActionKeyword = {\n    UserAction: 'user_action' as RuleActionKeyword,\n    SetCategory: 'set_category' as RuleActionKeyword,\n    ClearCategory: 'clear_category' as RuleActionKeyword,\n    SetBudget: 'set_budget' as RuleActionKeyword,\n    ClearBudget: 'clear_budget' as RuleActionKeyword,\n    AddTag: 'add_tag' as RuleActionKeyword,\n    RemoveTag: 'remove_tag' as RuleActionKeyword,\n    RemoveAllTags: 'remove_all_tags' as RuleActionKeyword,\n    SetDescription: 'set_description' as RuleActionKeyword,\n    AppendDescription: 'append_description' as RuleActionKeyword,\n    PrependDescription: 'prepend_description' as RuleActionKeyword,\n    SetSourceAccount: 'set_source_account' as RuleActionKeyword,\n    SetDestinationAccount: 'set_destination_account' as RuleActionKeyword,\n    SetNotes: 'set_notes' as RuleActionKeyword,\n    AppendNotes: 'append_notes' as RuleActionKeyword,\n    PrependNotes: 'prepend_notes' as RuleActionKeyword,\n    ClearNotes: 'clear_notes' as RuleActionKeyword,\n    LinkToBill: 'link_to_bill' as RuleActionKeyword,\n    ConvertWithdrawal: 'convert_withdrawal' as RuleActionKeyword,\n    ConvertDeposit: 'convert_deposit' as RuleActionKeyword,\n    ConvertTransfer: 'convert_transfer' as RuleActionKeyword,\n    DeleteTransaction: 'delete_transaction' as RuleActionKeyword\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RuleGroup { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    title: string;\n    description?: string | null;\n    readonly order?: number;\n    active?: boolean;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RuleGroupStore { \n    title: string;\n    description?: string | null;\n    order?: number;\n    active?: boolean;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RuleGroupUpdate { \n    title?: string;\n    description?: string | null;\n    order?: number;\n    active?: boolean;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of thing this trigger responds to. A limited set is possible\n */\nexport type RuleTriggerKeyword = 'from_account_starts' | 'from_account_ends' | 'from_account_is' | 'from_account_contains' | 'to_account_starts' | 'to_account_ends' | 'to_account_is' | 'to_account_contains' | 'amount_less' | 'amount_exactly' | 'amount_more' | 'description_starts' | 'description_ends' | 'description_contains' | 'description_is' | 'transaction_type' | 'category_is' | 'budget_is' | 'tag_is' | 'currency_is' | 'has_attachments' | 'has_no_category' | 'has_any_category' | 'has_no_budget' | 'has_any_budget' | 'has_no_tag' | 'has_any_tag' | 'notes_contains' | 'notes_start' | 'notes_end' | 'notes_are' | 'no_notes' | 'any_notes' | 'source_account_is' | 'destination_account_is' | 'source_account_starts';\n\nexport const RuleTriggerKeyword = {\n    FromAccountStarts: 'from_account_starts' as RuleTriggerKeyword,\n    FromAccountEnds: 'from_account_ends' as RuleTriggerKeyword,\n    FromAccountIs: 'from_account_is' as RuleTriggerKeyword,\n    FromAccountContains: 'from_account_contains' as RuleTriggerKeyword,\n    ToAccountStarts: 'to_account_starts' as RuleTriggerKeyword,\n    ToAccountEnds: 'to_account_ends' as RuleTriggerKeyword,\n    ToAccountIs: 'to_account_is' as RuleTriggerKeyword,\n    ToAccountContains: 'to_account_contains' as RuleTriggerKeyword,\n    AmountLess: 'amount_less' as RuleTriggerKeyword,\n    AmountExactly: 'amount_exactly' as RuleTriggerKeyword,\n    AmountMore: 'amount_more' as RuleTriggerKeyword,\n    DescriptionStarts: 'description_starts' as RuleTriggerKeyword,\n    DescriptionEnds: 'description_ends' as RuleTriggerKeyword,\n    DescriptionContains: 'description_contains' as RuleTriggerKeyword,\n    DescriptionIs: 'description_is' as RuleTriggerKeyword,\n    TransactionType: 'transaction_type' as RuleTriggerKeyword,\n    CategoryIs: 'category_is' as RuleTriggerKeyword,\n    BudgetIs: 'budget_is' as RuleTriggerKeyword,\n    TagIs: 'tag_is' as RuleTriggerKeyword,\n    CurrencyIs: 'currency_is' as RuleTriggerKeyword,\n    HasAttachments: 'has_attachments' as RuleTriggerKeyword,\n    HasNoCategory: 'has_no_category' as RuleTriggerKeyword,\n    HasAnyCategory: 'has_any_category' as RuleTriggerKeyword,\n    HasNoBudget: 'has_no_budget' as RuleTriggerKeyword,\n    HasAnyBudget: 'has_any_budget' as RuleTriggerKeyword,\n    HasNoTag: 'has_no_tag' as RuleTriggerKeyword,\n    HasAnyTag: 'has_any_tag' as RuleTriggerKeyword,\n    NotesContains: 'notes_contains' as RuleTriggerKeyword,\n    NotesStart: 'notes_start' as RuleTriggerKeyword,\n    NotesEnd: 'notes_end' as RuleTriggerKeyword,\n    NotesAre: 'notes_are' as RuleTriggerKeyword,\n    NoNotes: 'no_notes' as RuleTriggerKeyword,\n    AnyNotes: 'any_notes' as RuleTriggerKeyword,\n    SourceAccountIs: 'source_account_is' as RuleTriggerKeyword,\n    DestinationAccountIs: 'destination_account_is' as RuleTriggerKeyword,\n    SourceAccountStarts: 'source_account_starts' as RuleTriggerKeyword\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Which action is necessary for the rule to fire? Use either store-journal or update-journal.\n */\nexport type RuleTriggerType = 'store-journal' | 'update-journal';\n\nexport const RuleTriggerType = {\n    StoreJournal: 'store-journal' as RuleTriggerType,\n    UpdateJournal: 'update-journal' as RuleTriggerType\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Can only be one one these account types. import, initial-balance and reconciliation cannot be set manually.\n */\nexport type ShortAccountTypeProperty = 'asset' | 'expense' | 'import' | 'revenue' | 'cash' | 'liability' | 'liabilities' | 'initial-balance' | 'reconciliation';\n\nexport const ShortAccountTypeProperty = {\n    Asset: 'asset' as ShortAccountTypeProperty,\n    Expense: 'expense' as ShortAccountTypeProperty,\n    Import: 'import' as ShortAccountTypeProperty,\n    Revenue: 'revenue' as ShortAccountTypeProperty,\n    Cash: 'cash' as ShortAccountTypeProperty,\n    Liability: 'liability' as ShortAccountTypeProperty,\n    Liabilities: 'liabilities' as ShortAccountTypeProperty,\n    InitialBalance: 'initial-balance' as ShortAccountTypeProperty,\n    Reconciliation: 'reconciliation' as ShortAccountTypeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SystemInfoData { \n    version?: string;\n    api_version?: string;\n    php_version?: string;\n    os?: string;\n    driver?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TagModel { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * The tag\n     */\n    tag: string;\n    /**\n     * The date to which the tag is applicable.\n     */\n    date?: string | null;\n    description?: string | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    latitude?: number | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    longitude?: number | null;\n    /**\n     * Zoom level for the map, if drawn. This to set the box right. Unfortunately this is a proprietary value because each map provider has different zoom levels.\n     */\n    zoom_level?: number | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TagModelStore { \n    /**\n     * The tag\n     */\n    tag: string;\n    /**\n     * The date to which the tag is applicable.\n     */\n    date?: string | null;\n    description?: string | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    latitude?: number | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    longitude?: number | null;\n    /**\n     * Zoom level for the map, if drawn. This to set the box right. Unfortunately this is a proprietary value because each map provider has different zoom levels.\n     */\n    zoom_level?: number | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TagModelUpdate { \n    /**\n     * The tag\n     */\n    tag?: string;\n    /**\n     * The date to which the tag is applicable.\n     */\n    date?: string | null;\n    description?: string | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    latitude?: number | null;\n    /**\n     * Latitude of the tag\\'s location, if applicable. Can be used to draw a map.\n     */\n    longitude?: number | null;\n    /**\n     * Zoom level for the map, if drawn. This to set the box right. Unfortunately this is a proprietary value because each map provider has different zoom levels.\n     */\n    zoom_level?: number | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TransactionLink { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * The link type ID to use. You can also use the link_type_name field.\n     */\n    link_type_id: string;\n    /**\n     * The link type name to use. You can also use the link_type_id field.\n     */\n    link_type_name?: string;\n    /**\n     * The inward transaction transaction_journal_id for the link. This becomes the \\'is paid by\\' transaction of the set.\n     */\n    inward_id: string;\n    /**\n     * The outward transaction transaction_journal_id for the link. This becomes the \\'pays for\\' transaction of the set.\n     */\n    outward_id: string;\n    /**\n     * Optional. Some notes.\n     */\n    notes?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TransactionLinkStore { \n    /**\n     * The link type ID to use. You can also use the link_type_name field.\n     */\n    link_type_id: string;\n    /**\n     * The link type name to use. You can also use the link_type_id field.\n     */\n    link_type_name?: string;\n    /**\n     * The inward transaction transaction_journal_id for the link. This becomes the \\'is paid by\\' transaction of the set.\n     */\n    inward_id: string;\n    /**\n     * The outward transaction transaction_journal_id for the link. This becomes the \\'pays for\\' transaction of the set.\n     */\n    outward_id: string;\n    /**\n     * Optional. Some notes.\n     */\n    notes?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TransactionLinkUpdate { \n    /**\n     * The link type ID to use. Use this field OR use the link_type_name field.\n     */\n    link_type_id?: string;\n    /**\n     * The link type name to use. Use this field OR use the link_type_id field.\n     */\n    link_type_name?: string;\n    /**\n     * The inward transaction transaction_journal_id for the link. This becomes the \\'is paid by\\' transaction of the set.\n     */\n    inward_id?: string;\n    /**\n     * The outward transaction transaction_journal_id for the link. This becomes the \\'pays for\\' transaction of the set.\n     */\n    outward_id?: string;\n    /**\n     * Optional. Some notes. If you submit an empty string the current notes will be removed\n     */\n    notes?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type TransactionTypeFilter = 'all' | 'withdrawal' | 'withdrawals' | 'expense' | 'deposit' | 'deposits' | 'income' | 'transfer' | 'transfers' | 'opening_balance' | 'reconciliation' | 'special' | 'specials' | 'default';\n\nexport const TransactionTypeFilter = {\n    All: 'all' as TransactionTypeFilter,\n    Withdrawal: 'withdrawal' as TransactionTypeFilter,\n    Withdrawals: 'withdrawals' as TransactionTypeFilter,\n    Expense: 'expense' as TransactionTypeFilter,\n    Deposit: 'deposit' as TransactionTypeFilter,\n    Deposits: 'deposits' as TransactionTypeFilter,\n    Income: 'income' as TransactionTypeFilter,\n    Transfer: 'transfer' as TransactionTypeFilter,\n    Transfers: 'transfers' as TransactionTypeFilter,\n    OpeningBalance: 'opening_balance' as TransactionTypeFilter,\n    Reconciliation: 'reconciliation' as TransactionTypeFilter,\n    Special: 'special' as TransactionTypeFilter,\n    Specials: 'specials' as TransactionTypeFilter,\n    Default: 'default' as TransactionTypeFilter\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type TransactionTypeProperty = 'withdrawal' | 'deposit' | 'transfer' | 'reconciliation' | 'opening balance';\n\nexport const TransactionTypeProperty = {\n    Withdrawal: 'withdrawal' as TransactionTypeProperty,\n    Deposit: 'deposit' as TransactionTypeProperty,\n    Transfer: 'transfer' as TransactionTypeProperty,\n    Reconciliation: 'reconciliation' as TransactionTypeProperty,\n    OpeningBalance: 'opening balance' as TransactionTypeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnauthenticatedResponse { \n    message?: string;\n    exception?: string;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If you say the user must be blocked, this will be the reason code.\n */\nexport type UserBlockedCodeProperty = 'email_changed' | 'null';\n\nexport const UserBlockedCodeProperty = {\n    EmailChanged: 'email_changed' as UserBlockedCodeProperty,\n    Null: 'null' as UserBlockedCodeProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Role for the user. Can be empty or omitted.\n */\nexport type UserRoleProperty = 'owner' | 'demo' | 'null';\n\nexport const UserRoleProperty = {\n    Owner: 'owner' as UserRoleProperty,\n    Demo: 'demo' as UserRoleProperty,\n    Null: 'null' as UserRoleProperty\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ValidationErrorResponseErrors { \n    email?: Array<string>;\n    blocked?: Array<string>;\n    role?: Array<string>;\n    blocked_code?: Array<string>;\n    name?: Array<string>;\n    type?: Array<string>;\n    iban?: Array<string>;\n    start?: Array<string>;\n    end?: Array<string>;\n    date?: Array<string>;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WebhookAttempt { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * The ID of the webhook message this attempt belongs to.\n     */\n    webhook_message_id?: string;\n    /**\n     * The HTTP status code of the error, if any.\n     */\n    status_code?: number | null;\n    /**\n     * Internal log for this attempt. May contain sensitive user data.\n     */\n    logs?: string | null;\n    /**\n     * Webhook receiver response for this attempt, if any. May contain sensitive user data.\n     */\n    response?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Format of the delivered response.\n */\nexport type WebhookDelivery = 'JSON';\n\nexport const WebhookDelivery = {\n    Json: 'JSON' as WebhookDelivery\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WebhookMessage { \n    readonly created_at?: string;\n    readonly updated_at?: string;\n    /**\n     * If this message is sent yet.\n     */\n    sent?: boolean;\n    /**\n     * If this message has errored out.\n     */\n    errored?: boolean;\n    /**\n     * The ID of the webhook this message belongs to.\n     */\n    webhook_id?: string;\n    /**\n     * Long UUID string for identification of this webhook message.\n     */\n    uuid?: string;\n    /**\n     * The actual message that is sent or will be sent as JSON string.\n     */\n    message?: string | null;\n}\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicator for what Firefly III will deliver to the webhook URL.\n */\nexport type WebhookResponse = 'TRANSACTIONS' | 'ACCOUNTS' | 'NONE';\n\nexport const WebhookResponse = {\n    Transactions: 'TRANSACTIONS' as WebhookResponse,\n    Accounts: 'ACCOUNTS' as WebhookResponse,\n    None: 'NONE' as WebhookResponse\n};\n\n","/**\n * Firefly III API v2.1.0\n * This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the \\\"Authorize\\\" button to try the API below. This file was last generated on 2024-05-19T04:33:01+00:00  Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. \n *\n * The version of the OpenAPI document: 2.1.0\n * Contact: james@firefly-iii.org\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The trigger for the webhook.\n */\nexport type WebhookTrigger = 'STORE_TRANSACTION' | 'UPDATE_TRANSACTION' | 'DESTROY_TRANSACTION';\n\nexport const WebhookTrigger = {\n    StoreTransaction: 'STORE_TRANSACTION' as WebhookTrigger,\n    UpdateTransaction: 'UPDATE_TRANSACTION' as WebhookTrigger,\n    DestroyTransaction: 'DESTROY_TRANSACTION' as WebhookTrigger\n};\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { HttpConfiguration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: []\n})\nexport class ApiModule {\n    public static forRoot(configurationFactory: () => HttpConfiguration): ModuleWithProviders<ApiModule> {\n        return {\n            ngModule: ApiModule,\n            providers: [ { provide: HttpConfiguration, useFactory: configurationFactory } ]\n        };\n    }\n\n    constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n                 @Optional() http: HttpClient) {\n        if (parentModule) {\n            throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n        }\n        if (!http) {\n            throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n            'See also https://github.com/angular/angular/issues/20575');\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.HttpConfiguration"],"mappings":"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"}