@firela/api-types 0.0.0-canary.8c68ebbe → 0.0.0-canary.8c76fd39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +4712 -3292
- package/dist/index.d.ts +4712 -3292
- package/dist/index.js +36 -6
- package/dist/index.mjs +36 -6
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +2949 -1127
- package/src/generated/services.gen.ts +1301 -756
- package/src/generated/types.gen.ts +8035 -3650
|
@@ -17,6 +17,8 @@ import type {
|
|
|
17
17
|
AccountControllerCloseResponse,
|
|
18
18
|
AccountControllerReopenData,
|
|
19
19
|
AccountControllerReopenResponse,
|
|
20
|
+
AccountControllerAddOpeningBalanceData,
|
|
21
|
+
AccountControllerAddOpeningBalanceResponse,
|
|
20
22
|
AccountStandardsControllerGetTemplatesData,
|
|
21
23
|
AccountStandardsControllerGetTemplatesResponse,
|
|
22
24
|
AccountStandardsControllerGetTemplateMetadataData,
|
|
@@ -97,6 +99,48 @@ import type {
|
|
|
97
99
|
CommodityControllerGetOrCreateResponse,
|
|
98
100
|
CommodityControllerBulkCreateData,
|
|
99
101
|
CommodityControllerBulkCreateResponse,
|
|
102
|
+
ReportingControllerGetPortfolioTrendsData,
|
|
103
|
+
ReportingControllerGetPortfolioTrendsResponse,
|
|
104
|
+
ReportingControllerGetCashFlowTrendsData,
|
|
105
|
+
ReportingControllerGetCashFlowTrendsResponse,
|
|
106
|
+
ReportingControllerGenerateSnapshotData,
|
|
107
|
+
ReportingControllerGenerateSnapshotResponse,
|
|
108
|
+
ReportingControllerBackfillSnapshotsData,
|
|
109
|
+
ReportingControllerBackfillSnapshotsResponse,
|
|
110
|
+
PriceControllerCreateData,
|
|
111
|
+
PriceControllerCreateResponse,
|
|
112
|
+
PriceControllerFindAllData,
|
|
113
|
+
PriceControllerFindAllResponse,
|
|
114
|
+
PriceControllerFindOneData,
|
|
115
|
+
PriceControllerFindOneResponse,
|
|
116
|
+
PriceControllerUpdateData,
|
|
117
|
+
PriceControllerUpdateResponse,
|
|
118
|
+
PriceControllerDeleteData,
|
|
119
|
+
PriceControllerDeleteResponse,
|
|
120
|
+
PriceControllerBulkCreateData,
|
|
121
|
+
PriceControllerBulkCreateResponse,
|
|
122
|
+
UserControllerDeleteOwnUserData,
|
|
123
|
+
UserControllerDeleteOwnUserResponse,
|
|
124
|
+
UserControllerGetUserData,
|
|
125
|
+
UserControllerGetUserResponse,
|
|
126
|
+
UserControllerSignupUserData,
|
|
127
|
+
UserControllerSignupUserResponse,
|
|
128
|
+
UserControllerDeleteUserData,
|
|
129
|
+
UserControllerDeleteUserResponse,
|
|
130
|
+
UserControllerGetUserInfoData,
|
|
131
|
+
UserControllerGetUserInfoResponse,
|
|
132
|
+
UserControllerUpdateUserSettingData,
|
|
133
|
+
UserControllerUpdateUserSettingResponse,
|
|
134
|
+
UserControllerGetAllUserSettingsByPageData,
|
|
135
|
+
UserControllerGetAllUserSettingsByPageResponse,
|
|
136
|
+
UserControllerGetAssetLiabilitySummaryResponse,
|
|
137
|
+
PropertyControllerGetAllResponse,
|
|
138
|
+
PropertyControllerGetByKeyData,
|
|
139
|
+
PropertyControllerGetByKeyResponse,
|
|
140
|
+
PropertyControllerUpdateData,
|
|
141
|
+
PropertyControllerUpdateResponse,
|
|
142
|
+
PropertyControllerDeleteData,
|
|
143
|
+
PropertyControllerDeleteResponse,
|
|
100
144
|
RecurringRuleControllerCreateData,
|
|
101
145
|
RecurringRuleControllerCreateResponse,
|
|
102
146
|
RecurringRuleControllerFindAllData,
|
|
@@ -149,28 +193,8 @@ import type {
|
|
|
149
193
|
TransactionRuleControllerDeleteResponse,
|
|
150
194
|
TransactionRuleControllerTestData,
|
|
151
195
|
TransactionRuleControllerTestResponse,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
UserControllerGetUserData,
|
|
155
|
-
UserControllerGetUserResponse,
|
|
156
|
-
UserControllerSignupUserData,
|
|
157
|
-
UserControllerSignupUserResponse,
|
|
158
|
-
UserControllerDeleteUserData,
|
|
159
|
-
UserControllerDeleteUserResponse,
|
|
160
|
-
UserControllerGetUserInfoData,
|
|
161
|
-
UserControllerGetUserInfoResponse,
|
|
162
|
-
UserControllerUpdateUserSettingData,
|
|
163
|
-
UserControllerUpdateUserSettingResponse,
|
|
164
|
-
UserControllerGetAllUserSettingsByPageData,
|
|
165
|
-
UserControllerGetAllUserSettingsByPageResponse,
|
|
166
|
-
UserControllerGetAssetLiabilitySummaryResponse,
|
|
167
|
-
PropertyControllerGetAllResponse,
|
|
168
|
-
PropertyControllerGetByKeyData,
|
|
169
|
-
PropertyControllerGetByKeyResponse,
|
|
170
|
-
PropertyControllerUpdateData,
|
|
171
|
-
PropertyControllerUpdateResponse,
|
|
172
|
-
PropertyControllerDeleteData,
|
|
173
|
-
PropertyControllerDeleteResponse,
|
|
196
|
+
CategoryCatalogControllerListData,
|
|
197
|
+
CategoryCatalogControllerListResponse,
|
|
174
198
|
EventControllerCreateData,
|
|
175
199
|
EventControllerCreateResponse,
|
|
176
200
|
EventControllerFindAllData,
|
|
@@ -181,6 +205,18 @@ import type {
|
|
|
181
205
|
EventControllerUpdateResponse,
|
|
182
206
|
EventControllerDeleteData,
|
|
183
207
|
EventControllerDeleteResponse,
|
|
208
|
+
EventControllerGetSliceData,
|
|
209
|
+
EventControllerGetSliceResponse,
|
|
210
|
+
OnboardingControllerBootstrapData,
|
|
211
|
+
OnboardingControllerBootstrapResponse,
|
|
212
|
+
ReconciliationControllerComputeData,
|
|
213
|
+
ReconciliationControllerComputeResponse,
|
|
214
|
+
ReconciliationControllerAssertData,
|
|
215
|
+
ReconciliationControllerAssertResponse,
|
|
216
|
+
ReconciliationControllerPadData,
|
|
217
|
+
ReconciliationControllerPadResponse,
|
|
218
|
+
ReconciliationControllerHistoryData,
|
|
219
|
+
ReconciliationControllerHistoryResponse,
|
|
184
220
|
ExportControllerExportBeancountResponse,
|
|
185
221
|
FileImportControllerImportFileData,
|
|
186
222
|
FileImportControllerImportFileResponse,
|
|
@@ -194,22 +230,20 @@ import type {
|
|
|
194
230
|
ImporterConfigControllerUpdateConfigResponse,
|
|
195
231
|
ImporterConfigControllerResetConfigData,
|
|
196
232
|
ImporterConfigControllerResetConfigResponse,
|
|
197
|
-
PlatformControllerFindAllResponse,
|
|
198
|
-
PlatformControllerCreateData,
|
|
199
|
-
PlatformControllerCreateResponse,
|
|
200
|
-
PlatformControllerGetPlatformListResponse,
|
|
201
|
-
PlatformControllerMatchPlatformsData,
|
|
202
|
-
PlatformControllerMatchPlatformsResponse,
|
|
203
|
-
PlatformControllerUpdateData,
|
|
204
|
-
PlatformControllerUpdateResponse,
|
|
205
|
-
PlatformControllerDeleteData,
|
|
206
|
-
PlatformControllerDeleteResponse,
|
|
207
233
|
ProviderSyncControllerSyncData,
|
|
208
234
|
ProviderSyncControllerSyncResponse,
|
|
209
235
|
ProviderSyncControllerGetSupportedProvidersData,
|
|
210
236
|
ProviderSyncControllerGetSupportedProvidersResponse,
|
|
211
237
|
ProviderSyncControllerIsProviderSupportedData,
|
|
212
238
|
ProviderSyncControllerIsProviderSupportedResponse,
|
|
239
|
+
ExternalAccountLinkControllerCreateData,
|
|
240
|
+
ExternalAccountLinkControllerCreateResponse,
|
|
241
|
+
ExternalAccountLinkControllerFindAllData,
|
|
242
|
+
ExternalAccountLinkControllerFindAllResponse,
|
|
243
|
+
ExternalAccountLinkControllerFindOneData,
|
|
244
|
+
ExternalAccountLinkControllerFindOneResponse,
|
|
245
|
+
ExternalAccountLinkControllerRemoveData,
|
|
246
|
+
ExternalAccountLinkControllerRemoveResponse,
|
|
213
247
|
TelemetryControllerReportTelemetryData,
|
|
214
248
|
TelemetryControllerReportTelemetryResponse,
|
|
215
249
|
TelemetryControllerReportCoverageMissData,
|
|
@@ -222,35 +256,34 @@ import type {
|
|
|
222
256
|
NlpControllerClearSessionResponse,
|
|
223
257
|
NlpControllerGetSessionData,
|
|
224
258
|
NlpControllerGetSessionResponse,
|
|
259
|
+
PlatformControllerFindAllResponse,
|
|
260
|
+
PlatformControllerCreateData,
|
|
261
|
+
PlatformControllerCreateResponse,
|
|
262
|
+
PlatformControllerGetPlatformListData,
|
|
263
|
+
PlatformControllerGetPlatformListResponse,
|
|
264
|
+
PlatformControllerMatchPlatformsData,
|
|
265
|
+
PlatformControllerMatchPlatformsResponse,
|
|
266
|
+
PlatformControllerGetPlatformStandardsData,
|
|
267
|
+
PlatformControllerGetPlatformStandardsResponse,
|
|
268
|
+
PlatformControllerUpdateData,
|
|
269
|
+
PlatformControllerUpdateResponse,
|
|
270
|
+
PlatformControllerDeleteData,
|
|
271
|
+
PlatformControllerDeleteResponse,
|
|
225
272
|
DashboardControllerGetNetWorthData,
|
|
226
273
|
DashboardControllerGetNetWorthResponse,
|
|
227
274
|
DashboardControllerGetAccountsData,
|
|
228
275
|
DashboardControllerGetAccountsResponse,
|
|
229
276
|
DashboardControllerGetCashFlowData,
|
|
230
277
|
DashboardControllerGetCashFlowResponse,
|
|
278
|
+
DashboardControllerGetExpensesData,
|
|
279
|
+
DashboardControllerGetExpensesResponse,
|
|
231
280
|
HoldingPnlControllerGetHoldingPnlData,
|
|
232
281
|
HoldingPnlControllerGetHoldingPnlResponse,
|
|
233
|
-
PriceControllerCreateData,
|
|
234
|
-
PriceControllerCreateResponse,
|
|
235
|
-
PriceControllerFindAllData,
|
|
236
|
-
PriceControllerFindAllResponse,
|
|
237
|
-
PriceControllerFindOneData,
|
|
238
|
-
PriceControllerFindOneResponse,
|
|
239
|
-
PriceControllerUpdateData,
|
|
240
|
-
PriceControllerUpdateResponse,
|
|
241
|
-
PriceControllerDeleteData,
|
|
242
|
-
PriceControllerDeleteResponse,
|
|
243
|
-
PriceControllerBulkCreateData,
|
|
244
|
-
PriceControllerBulkCreateResponse,
|
|
245
|
-
ReportingControllerGetPortfolioTrendsData,
|
|
246
|
-
ReportingControllerGetPortfolioTrendsResponse,
|
|
247
|
-
ReportingControllerGenerateSnapshotData,
|
|
248
|
-
ReportingControllerGenerateSnapshotResponse,
|
|
249
|
-
ReportingControllerBackfillSnapshotsData,
|
|
250
|
-
ReportingControllerBackfillSnapshotsResponse,
|
|
251
282
|
ApiKeysControllerCreateApiKeyResponse,
|
|
252
283
|
AuthControllerAccessTokenLoginData,
|
|
253
284
|
AuthControllerAccessTokenLoginResponse,
|
|
285
|
+
ParserContributionControllerCreateData,
|
|
286
|
+
ParserContributionControllerCreateResponse,
|
|
254
287
|
CacheControllerFlushCacheResponse,
|
|
255
288
|
ExchangeRateControllerGetExchangeRateData,
|
|
256
289
|
ExchangeRateControllerGetExchangeRateResponse,
|
|
@@ -262,7 +295,11 @@ import type {
|
|
|
262
295
|
HealthControllerResetCircuitBreakerData,
|
|
263
296
|
HealthControllerResetCircuitBreakerResponse,
|
|
264
297
|
HealthControllerGetMetricsResponse,
|
|
265
|
-
InfoControllerGetInfoResponse
|
|
298
|
+
InfoControllerGetInfoResponse,
|
|
299
|
+
SymbolControllerSearchData,
|
|
300
|
+
SymbolControllerSearchResponse,
|
|
301
|
+
SymbolControllerGetQuoteData,
|
|
302
|
+
SymbolControllerGetQuoteResponse
|
|
266
303
|
} from './types.gen';
|
|
267
304
|
|
|
268
305
|
export class BeanAccountsService {
|
|
@@ -300,7 +337,7 @@ export class BeanAccountsService {
|
|
|
300
337
|
* @param data.type Filter by account type
|
|
301
338
|
* @param data.status Filter by status
|
|
302
339
|
* @param data.isCustom Filter by custom (user-created) accounts only
|
|
303
|
-
* @param data.search Search term for path
|
|
340
|
+
* @param data.search Search term for account path
|
|
304
341
|
* @param data.limit Maximum number of results
|
|
305
342
|
* @param data.offset Number of results to skip
|
|
306
343
|
* @returns AccountListResponseDto Accounts retrieved successfully
|
|
@@ -381,7 +418,7 @@ export class BeanAccountsService {
|
|
|
381
418
|
|
|
382
419
|
/**
|
|
383
420
|
* Delete account
|
|
384
|
-
* Deletes an account (only if no transactions)
|
|
421
|
+
* Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
|
|
385
422
|
* @param data The data for the request.
|
|
386
423
|
* @param data.id Account UUID
|
|
387
424
|
* @param data.region Region code for tenant context
|
|
@@ -400,7 +437,7 @@ export class BeanAccountsService {
|
|
|
400
437
|
},
|
|
401
438
|
errors: {
|
|
402
439
|
404: 'Account not found',
|
|
403
|
-
409: 'Account has transactions and cannot be deleted'
|
|
440
|
+
409: 'Account has active transactions and cannot be deleted'
|
|
404
441
|
}
|
|
405
442
|
});
|
|
406
443
|
}
|
|
@@ -462,6 +499,35 @@ export class BeanAccountsService {
|
|
|
462
499
|
}
|
|
463
500
|
});
|
|
464
501
|
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Post an opening-balance transaction
|
|
505
|
+
* Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
|
|
506
|
+
* @param data The data for the request.
|
|
507
|
+
* @param data.id Account UUID
|
|
508
|
+
* @param data.region Region code for tenant context
|
|
509
|
+
* @param data.requestBody
|
|
510
|
+
* @returns OpeningBalanceResultDto Opening-balance transaction created
|
|
511
|
+
* @throws ApiError
|
|
512
|
+
*/
|
|
513
|
+
public static accountControllerAddOpeningBalance(
|
|
514
|
+
data: AccountControllerAddOpeningBalanceData
|
|
515
|
+
): CancelablePromise<AccountControllerAddOpeningBalanceResponse> {
|
|
516
|
+
return __request(OpenAPI, {
|
|
517
|
+
method: 'POST',
|
|
518
|
+
url: '/api/v1/{region}/bean/accounts/{id}/opening-balance',
|
|
519
|
+
path: {
|
|
520
|
+
id: data.id,
|
|
521
|
+
region: data.region
|
|
522
|
+
},
|
|
523
|
+
body: data.requestBody,
|
|
524
|
+
mediaType: 'application/json',
|
|
525
|
+
errors: {
|
|
526
|
+
404: 'Account not found',
|
|
527
|
+
409: 'An opening balance already exists for this account'
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}
|
|
465
531
|
}
|
|
466
532
|
|
|
467
533
|
export class BeanAccountStandardsService {
|
|
@@ -471,7 +537,7 @@ export class BeanAccountStandardsService {
|
|
|
471
537
|
* @param data The data for the request.
|
|
472
538
|
* @param data.region Region code (cn, us, de)
|
|
473
539
|
* @param data.type Filter by account type
|
|
474
|
-
* @param data.search Search term for path or
|
|
540
|
+
* @param data.search Search term for path, description, aliases, or localized display name
|
|
475
541
|
* @returns AccountStandardListResponseDto Account templates retrieved successfully
|
|
476
542
|
* @throws ApiError
|
|
477
543
|
*/
|
|
@@ -493,7 +559,7 @@ export class BeanAccountStandardsService {
|
|
|
493
559
|
|
|
494
560
|
/**
|
|
495
561
|
* Get template metadata for an account path
|
|
496
|
-
* Returns
|
|
562
|
+
* Returns root type for a template path.
|
|
497
563
|
* @param data The data for the request.
|
|
498
564
|
* @param data.region Region code for tenant context
|
|
499
565
|
* @param data.path Account path to check
|
|
@@ -576,9 +642,11 @@ export class BeanTransactionsService {
|
|
|
576
642
|
* @param data.offset Number of items to skip (default: 0)
|
|
577
643
|
* @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
|
|
578
644
|
* @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
|
|
579
|
-
* @param data.status Filter by transaction status
|
|
645
|
+
* @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
|
|
580
646
|
* @param data.search Search in narration and payee fields (max 200 chars)
|
|
581
647
|
* @param data.accountId Filter by account ID (transactions with postings to this account)
|
|
648
|
+
* @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
|
|
649
|
+
* @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
|
|
582
650
|
* @returns TransactionListResponseDto Transaction list
|
|
583
651
|
* @throws ApiError
|
|
584
652
|
*/
|
|
@@ -598,7 +666,9 @@ export class BeanTransactionsService {
|
|
|
598
666
|
dateTo: data.dateTo,
|
|
599
667
|
status: data.status,
|
|
600
668
|
search: data.search,
|
|
601
|
-
accountId: data.accountId
|
|
669
|
+
accountId: data.accountId,
|
|
670
|
+
category: data.category,
|
|
671
|
+
flow: data.flow
|
|
602
672
|
},
|
|
603
673
|
errors: {
|
|
604
674
|
400: 'Validation failed',
|
|
@@ -786,7 +856,7 @@ export class BeanBalancesService {
|
|
|
786
856
|
* Query account balance
|
|
787
857
|
* Calculate account balance at a specific date for a single currency
|
|
788
858
|
* @param data The data for the request.
|
|
789
|
-
* @param data.account Account name (e.g., "Assets:
|
|
859
|
+
* @param data.account Account name (e.g., "Assets:Checking")
|
|
790
860
|
* @param data.region Region code for tenant context
|
|
791
861
|
* @param data.date Date to calculate balance at (ISO 8601 format)
|
|
792
862
|
* @param data.currency Currency to query (e.g., "USD", "CNY")
|
|
@@ -1311,7 +1381,7 @@ export class AdminPayeeProfilesService {
|
|
|
1311
1381
|
* Removes verification status by setting verifiedAt to null.
|
|
1312
1382
|
* @param data The data for the request.
|
|
1313
1383
|
* @param data.id Payee profile ID (UUID)
|
|
1314
|
-
* @returns
|
|
1384
|
+
* @returns void Payee profile unverified successfully
|
|
1315
1385
|
* @throws ApiError
|
|
1316
1386
|
*/
|
|
1317
1387
|
public static payeeProfileAdminControllerUnverify(
|
|
@@ -1507,112 +1577,691 @@ export class BeanCommoditiesService {
|
|
|
1507
1577
|
}
|
|
1508
1578
|
}
|
|
1509
1579
|
|
|
1510
|
-
export class
|
|
1580
|
+
export class ReportingService {
|
|
1511
1581
|
/**
|
|
1512
|
-
*
|
|
1513
|
-
*
|
|
1582
|
+
* Get portfolio value trends
|
|
1583
|
+
*
|
|
1584
|
+
* Returns time series data of portfolio net worth.
|
|
1585
|
+
*
|
|
1586
|
+
* **Multi-currency Support:**
|
|
1587
|
+
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
1588
|
+
* - `byCurrency` - Separate time series grouped by currency
|
|
1589
|
+
* - `warnings` - Exchange rate warnings if conversion failed
|
|
1590
|
+
*
|
|
1591
|
+
* **Parameters:**
|
|
1592
|
+
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
1593
|
+
* - `granularity`: Data granularity (day, week, month)
|
|
1594
|
+
*
|
|
1514
1595
|
* @param data The data for the request.
|
|
1515
1596
|
* @param data.region Region code for tenant context
|
|
1516
|
-
* @param data.
|
|
1517
|
-
* @
|
|
1597
|
+
* @param data.period Time period
|
|
1598
|
+
* @param data.granularity Data granularity
|
|
1599
|
+
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
1518
1600
|
* @throws ApiError
|
|
1519
1601
|
*/
|
|
1520
|
-
public static
|
|
1521
|
-
data:
|
|
1522
|
-
): CancelablePromise<
|
|
1602
|
+
public static reportingControllerGetPortfolioTrends(
|
|
1603
|
+
data: ReportingControllerGetPortfolioTrendsData
|
|
1604
|
+
): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
|
|
1523
1605
|
return __request(OpenAPI, {
|
|
1524
|
-
method: '
|
|
1525
|
-
url: '/api/v1/{region}/
|
|
1606
|
+
method: 'GET',
|
|
1607
|
+
url: '/api/v1/{region}/reporting/portfolio/trends',
|
|
1526
1608
|
path: {
|
|
1527
1609
|
region: data.region
|
|
1528
1610
|
},
|
|
1529
|
-
|
|
1530
|
-
|
|
1611
|
+
query: {
|
|
1612
|
+
period: data.period,
|
|
1613
|
+
granularity: data.granularity
|
|
1614
|
+
},
|
|
1531
1615
|
errors: {
|
|
1532
|
-
|
|
1533
|
-
409: 'Rule with same name already exists'
|
|
1616
|
+
401: 'User not authenticated'
|
|
1534
1617
|
}
|
|
1535
1618
|
});
|
|
1536
1619
|
}
|
|
1537
1620
|
|
|
1538
1621
|
/**
|
|
1539
|
-
*
|
|
1540
|
-
*
|
|
1622
|
+
* Get cash-flow trends
|
|
1623
|
+
*
|
|
1624
|
+
* Monthly income / expense / netSavings over a fixed N-month window
|
|
1625
|
+
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
1626
|
+
*
|
|
1627
|
+
* **Parameters:**
|
|
1628
|
+
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
1629
|
+
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
1630
|
+
*
|
|
1541
1631
|
* @param data The data for the request.
|
|
1542
1632
|
* @param data.region Region code for tenant context
|
|
1543
|
-
* @param data.
|
|
1544
|
-
* @param data.
|
|
1545
|
-
* @
|
|
1546
|
-
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
1633
|
+
* @param data.period Time period
|
|
1634
|
+
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
1635
|
+
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
1547
1636
|
* @throws ApiError
|
|
1548
1637
|
*/
|
|
1549
|
-
public static
|
|
1550
|
-
data:
|
|
1551
|
-
): CancelablePromise<
|
|
1638
|
+
public static reportingControllerGetCashFlowTrends(
|
|
1639
|
+
data: ReportingControllerGetCashFlowTrendsData
|
|
1640
|
+
): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
|
|
1552
1641
|
return __request(OpenAPI, {
|
|
1553
1642
|
method: 'GET',
|
|
1554
|
-
url: '/api/v1/{region}/
|
|
1643
|
+
url: '/api/v1/{region}/reporting/cash-flow/trends',
|
|
1555
1644
|
path: {
|
|
1556
1645
|
region: data.region
|
|
1557
1646
|
},
|
|
1558
1647
|
query: {
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1648
|
+
period: data.period,
|
|
1649
|
+
granularity: data.granularity
|
|
1650
|
+
},
|
|
1651
|
+
errors: {
|
|
1652
|
+
401: 'User not authenticated'
|
|
1562
1653
|
}
|
|
1563
1654
|
});
|
|
1564
1655
|
}
|
|
1565
1656
|
|
|
1566
1657
|
/**
|
|
1567
|
-
*
|
|
1568
|
-
*
|
|
1658
|
+
* Generate portfolio snapshot
|
|
1659
|
+
*
|
|
1660
|
+
* Manually generate a portfolio snapshot for a specific date.
|
|
1661
|
+
*
|
|
1662
|
+
* **Multi-currency Support:**
|
|
1663
|
+
* - Fetches balances grouped by currency
|
|
1664
|
+
* - Uses user's baseCurrency setting for conversion
|
|
1665
|
+
* - Stores exchange rates and warnings
|
|
1666
|
+
*
|
|
1667
|
+
* **Use Cases:**
|
|
1668
|
+
* - Testing snapshot generation
|
|
1669
|
+
* - Force regeneration after data correction
|
|
1670
|
+
* - Initial setup for new users
|
|
1671
|
+
*
|
|
1569
1672
|
* @param data The data for the request.
|
|
1570
|
-
* @param data.transactionId Source transaction ID
|
|
1571
1673
|
* @param data.region Region code for tenant context
|
|
1572
|
-
* @param data.requestBody
|
|
1573
|
-
* @returns
|
|
1674
|
+
* @param data.requestBody Optional date (defaults to today)
|
|
1675
|
+
* @returns GenerateSnapshotResponse Snapshot generated successfully
|
|
1574
1676
|
* @throws ApiError
|
|
1575
1677
|
*/
|
|
1576
|
-
public static
|
|
1577
|
-
data:
|
|
1578
|
-
): CancelablePromise<
|
|
1678
|
+
public static reportingControllerGenerateSnapshot(
|
|
1679
|
+
data: ReportingControllerGenerateSnapshotData
|
|
1680
|
+
): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
|
|
1579
1681
|
return __request(OpenAPI, {
|
|
1580
1682
|
method: 'POST',
|
|
1581
|
-
url: '/api/v1/{region}/
|
|
1683
|
+
url: '/api/v1/{region}/reporting/snapshots/generate',
|
|
1582
1684
|
path: {
|
|
1583
|
-
transactionId: data.transactionId,
|
|
1584
1685
|
region: data.region
|
|
1585
1686
|
},
|
|
1586
1687
|
body: data.requestBody,
|
|
1587
1688
|
mediaType: 'application/json',
|
|
1588
1689
|
errors: {
|
|
1589
|
-
|
|
1590
|
-
|
|
1690
|
+
400: 'Invalid date format',
|
|
1691
|
+
401: 'User not authenticated'
|
|
1591
1692
|
}
|
|
1592
1693
|
});
|
|
1593
1694
|
}
|
|
1594
1695
|
|
|
1595
1696
|
/**
|
|
1596
|
-
*
|
|
1597
|
-
*
|
|
1697
|
+
* Backfill portfolio snapshots
|
|
1698
|
+
*
|
|
1699
|
+
* Generate snapshots for a date range (historical data backfill).
|
|
1700
|
+
*
|
|
1701
|
+
* **Multi-currency Support:**
|
|
1702
|
+
* - Each snapshot includes multi-currency data
|
|
1703
|
+
* - Uses exchange rates available at generation time
|
|
1704
|
+
* - Warnings stored for missing exchange rates
|
|
1705
|
+
*
|
|
1706
|
+
* **Best Practices:**
|
|
1707
|
+
* - Use for initial setup after account configuration
|
|
1708
|
+
* - Run during low-traffic periods for large date ranges
|
|
1709
|
+
* - Existing snapshots are skipped (not regenerated)
|
|
1710
|
+
*
|
|
1598
1711
|
* @param data The data for the request.
|
|
1599
|
-
* @param data.id Rule ID
|
|
1600
1712
|
* @param data.region Region code for tenant context
|
|
1601
|
-
* @
|
|
1713
|
+
* @param data.requestBody
|
|
1714
|
+
* @returns BackfillSnapshotsResponse Backfill completed successfully
|
|
1602
1715
|
* @throws ApiError
|
|
1603
1716
|
*/
|
|
1604
|
-
public static
|
|
1605
|
-
data:
|
|
1606
|
-
): CancelablePromise<
|
|
1717
|
+
public static reportingControllerBackfillSnapshots(
|
|
1718
|
+
data: ReportingControllerBackfillSnapshotsData
|
|
1719
|
+
): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
|
|
1607
1720
|
return __request(OpenAPI, {
|
|
1608
|
-
method: '
|
|
1609
|
-
url: '/api/v1/{region}/
|
|
1721
|
+
method: 'POST',
|
|
1722
|
+
url: '/api/v1/{region}/reporting/snapshots/backfill',
|
|
1610
1723
|
path: {
|
|
1611
|
-
id: data.id,
|
|
1612
1724
|
region: data.region
|
|
1613
1725
|
},
|
|
1726
|
+
body: data.requestBody,
|
|
1727
|
+
mediaType: 'application/json',
|
|
1614
1728
|
errors: {
|
|
1615
|
-
|
|
1729
|
+
400: 'Invalid date format or range',
|
|
1730
|
+
401: 'User not authenticated',
|
|
1731
|
+
409: 'Backfill already in progress for this user'
|
|
1732
|
+
}
|
|
1733
|
+
});
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
|
|
1737
|
+
export class BeanPricesService {
|
|
1738
|
+
/**
|
|
1739
|
+
* Create a new price
|
|
1740
|
+
* Creates a new price entry for the authenticated user
|
|
1741
|
+
* @param data The data for the request.
|
|
1742
|
+
* @param data.region Region code for tenant context
|
|
1743
|
+
* @param data.requestBody
|
|
1744
|
+
* @returns PriceResponseDto Price created successfully
|
|
1745
|
+
* @throws ApiError
|
|
1746
|
+
*/
|
|
1747
|
+
public static priceControllerCreate(
|
|
1748
|
+
data: PriceControllerCreateData
|
|
1749
|
+
): CancelablePromise<PriceControllerCreateResponse> {
|
|
1750
|
+
return __request(OpenAPI, {
|
|
1751
|
+
method: 'POST',
|
|
1752
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1753
|
+
path: {
|
|
1754
|
+
region: data.region
|
|
1755
|
+
},
|
|
1756
|
+
body: data.requestBody,
|
|
1757
|
+
mediaType: 'application/json',
|
|
1758
|
+
errors: {
|
|
1759
|
+
404: 'Currency or quoteCurrency commodity not found',
|
|
1760
|
+
409: 'Price already exists for this currency pair and date'
|
|
1761
|
+
}
|
|
1762
|
+
});
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
/**
|
|
1766
|
+
* List user prices
|
|
1767
|
+
* Returns all price entries for the authenticated user with optional filtering
|
|
1768
|
+
* @param data The data for the request.
|
|
1769
|
+
* @param data.region Region code for tenant context
|
|
1770
|
+
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
1771
|
+
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
1772
|
+
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
1773
|
+
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
1774
|
+
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
1775
|
+
* @param data.page Page number for pagination (default: 1)
|
|
1776
|
+
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
1777
|
+
* @returns PriceListResponseDto Prices retrieved successfully
|
|
1778
|
+
* @throws ApiError
|
|
1779
|
+
*/
|
|
1780
|
+
public static priceControllerFindAll(
|
|
1781
|
+
data: PriceControllerFindAllData
|
|
1782
|
+
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
1783
|
+
return __request(OpenAPI, {
|
|
1784
|
+
method: 'GET',
|
|
1785
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1786
|
+
path: {
|
|
1787
|
+
region: data.region
|
|
1788
|
+
},
|
|
1789
|
+
query: {
|
|
1790
|
+
currency: data.currency,
|
|
1791
|
+
quoteCurrency: data.quoteCurrency,
|
|
1792
|
+
dateFrom: data.dateFrom,
|
|
1793
|
+
dateTo: data.dateTo,
|
|
1794
|
+
search: data.search,
|
|
1795
|
+
page: data.page,
|
|
1796
|
+
limit: data.limit
|
|
1797
|
+
}
|
|
1798
|
+
});
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
/**
|
|
1802
|
+
* Get price by ID
|
|
1803
|
+
* Returns a single price entry by its ID
|
|
1804
|
+
* @param data The data for the request.
|
|
1805
|
+
* @param data.id Price ID
|
|
1806
|
+
* @param data.region Region code for tenant context
|
|
1807
|
+
* @returns PriceResponseDto Price retrieved successfully
|
|
1808
|
+
* @throws ApiError
|
|
1809
|
+
*/
|
|
1810
|
+
public static priceControllerFindOne(
|
|
1811
|
+
data: PriceControllerFindOneData
|
|
1812
|
+
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
1813
|
+
return __request(OpenAPI, {
|
|
1814
|
+
method: 'GET',
|
|
1815
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1816
|
+
path: {
|
|
1817
|
+
id: data.id,
|
|
1818
|
+
region: data.region
|
|
1819
|
+
},
|
|
1820
|
+
errors: {
|
|
1821
|
+
404: 'Price not found'
|
|
1822
|
+
}
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
/**
|
|
1827
|
+
* Update a price
|
|
1828
|
+
* Updates an existing price entry
|
|
1829
|
+
* @param data The data for the request.
|
|
1830
|
+
* @param data.id Price ID
|
|
1831
|
+
* @param data.region Region code for tenant context
|
|
1832
|
+
* @param data.requestBody
|
|
1833
|
+
* @returns PriceResponseDto Price updated successfully
|
|
1834
|
+
* @throws ApiError
|
|
1835
|
+
*/
|
|
1836
|
+
public static priceControllerUpdate(
|
|
1837
|
+
data: PriceControllerUpdateData
|
|
1838
|
+
): CancelablePromise<PriceControllerUpdateResponse> {
|
|
1839
|
+
return __request(OpenAPI, {
|
|
1840
|
+
method: 'PUT',
|
|
1841
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1842
|
+
path: {
|
|
1843
|
+
id: data.id,
|
|
1844
|
+
region: data.region
|
|
1845
|
+
},
|
|
1846
|
+
body: data.requestBody,
|
|
1847
|
+
mediaType: 'application/json',
|
|
1848
|
+
errors: {
|
|
1849
|
+
404: 'Price not found',
|
|
1850
|
+
409: 'Updated price conflicts with existing price'
|
|
1851
|
+
}
|
|
1852
|
+
});
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
/**
|
|
1856
|
+
* Delete a price
|
|
1857
|
+
* Deletes a price entry (hard delete)
|
|
1858
|
+
* @param data The data for the request.
|
|
1859
|
+
* @param data.id Price ID
|
|
1860
|
+
* @param data.region Region code for tenant context
|
|
1861
|
+
* @returns void Price deleted successfully
|
|
1862
|
+
* @throws ApiError
|
|
1863
|
+
*/
|
|
1864
|
+
public static priceControllerDelete(
|
|
1865
|
+
data: PriceControllerDeleteData
|
|
1866
|
+
): CancelablePromise<PriceControllerDeleteResponse> {
|
|
1867
|
+
return __request(OpenAPI, {
|
|
1868
|
+
method: 'DELETE',
|
|
1869
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1870
|
+
path: {
|
|
1871
|
+
id: data.id,
|
|
1872
|
+
region: data.region
|
|
1873
|
+
},
|
|
1874
|
+
errors: {
|
|
1875
|
+
404: 'Price not found'
|
|
1876
|
+
}
|
|
1877
|
+
});
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
/**
|
|
1881
|
+
* Bulk create prices
|
|
1882
|
+
* Creates multiple price entries at once (skips duplicates)
|
|
1883
|
+
* @param data The data for the request.
|
|
1884
|
+
* @param data.region Region code for tenant context
|
|
1885
|
+
* @param data.requestBody
|
|
1886
|
+
* @returns PriceResponseDto Prices created successfully
|
|
1887
|
+
* @throws ApiError
|
|
1888
|
+
*/
|
|
1889
|
+
public static priceControllerBulkCreate(
|
|
1890
|
+
data: PriceControllerBulkCreateData
|
|
1891
|
+
): CancelablePromise<PriceControllerBulkCreateResponse> {
|
|
1892
|
+
return __request(OpenAPI, {
|
|
1893
|
+
method: 'POST',
|
|
1894
|
+
url: '/api/v1/{region}/bean/prices/bulk',
|
|
1895
|
+
path: {
|
|
1896
|
+
region: data.region
|
|
1897
|
+
},
|
|
1898
|
+
body: data.requestBody,
|
|
1899
|
+
mediaType: 'application/json'
|
|
1900
|
+
});
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
|
|
1904
|
+
export class UsersService {
|
|
1905
|
+
/**
|
|
1906
|
+
* Delete own user account
|
|
1907
|
+
* @param data The data for the request.
|
|
1908
|
+
* @param data.requestBody
|
|
1909
|
+
* @returns void User deleted successfully
|
|
1910
|
+
* @throws ApiError
|
|
1911
|
+
*/
|
|
1912
|
+
public static userControllerDeleteOwnUser(
|
|
1913
|
+
data: UserControllerDeleteOwnUserData
|
|
1914
|
+
): CancelablePromise<UserControllerDeleteOwnUserResponse> {
|
|
1915
|
+
return __request(OpenAPI, {
|
|
1916
|
+
method: 'DELETE',
|
|
1917
|
+
url: '/api/v1/users',
|
|
1918
|
+
body: data.requestBody,
|
|
1919
|
+
mediaType: 'application/json',
|
|
1920
|
+
errors: {
|
|
1921
|
+
403: 'Invalid access token'
|
|
1922
|
+
}
|
|
1923
|
+
});
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
/**
|
|
1927
|
+
* Get current authenticated user
|
|
1928
|
+
* @param data The data for the request.
|
|
1929
|
+
* @param data.acceptLanguage
|
|
1930
|
+
* @returns UserResponseDto User retrieved successfully
|
|
1931
|
+
* @throws ApiError
|
|
1932
|
+
*/
|
|
1933
|
+
public static userControllerGetUser(
|
|
1934
|
+
data: UserControllerGetUserData
|
|
1935
|
+
): CancelablePromise<UserControllerGetUserResponse> {
|
|
1936
|
+
return __request(OpenAPI, {
|
|
1937
|
+
method: 'GET',
|
|
1938
|
+
url: '/api/v1/users',
|
|
1939
|
+
headers: {
|
|
1940
|
+
'accept-language': data.acceptLanguage
|
|
1941
|
+
}
|
|
1942
|
+
});
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
/**
|
|
1946
|
+
* Sign up new user
|
|
1947
|
+
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
1948
|
+
* @param data The data for the request.
|
|
1949
|
+
* @param data.requestBody
|
|
1950
|
+
* @returns SignupResponseDto User created successfully
|
|
1951
|
+
* @throws ApiError
|
|
1952
|
+
*/
|
|
1953
|
+
public static userControllerSignupUser(
|
|
1954
|
+
data: UserControllerSignupUserData
|
|
1955
|
+
): CancelablePromise<UserControllerSignupUserResponse> {
|
|
1956
|
+
return __request(OpenAPI, {
|
|
1957
|
+
method: 'POST',
|
|
1958
|
+
url: '/api/v1/users',
|
|
1959
|
+
body: data.requestBody,
|
|
1960
|
+
mediaType: 'application/json',
|
|
1961
|
+
errors: {
|
|
1962
|
+
400: 'Invalid Turnstile token (when Turnstile is enabled)',
|
|
1963
|
+
403: 'User signup is disabled'
|
|
1964
|
+
}
|
|
1965
|
+
});
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
/**
|
|
1969
|
+
* Delete user by ID (admin only)
|
|
1970
|
+
* @param data The data for the request.
|
|
1971
|
+
* @param data.id User ID to delete
|
|
1972
|
+
* @returns void User deleted successfully
|
|
1973
|
+
* @throws ApiError
|
|
1974
|
+
*/
|
|
1975
|
+
public static userControllerDeleteUser(
|
|
1976
|
+
data: UserControllerDeleteUserData
|
|
1977
|
+
): CancelablePromise<UserControllerDeleteUserResponse> {
|
|
1978
|
+
return __request(OpenAPI, {
|
|
1979
|
+
method: 'DELETE',
|
|
1980
|
+
url: '/api/v1/users/{id}',
|
|
1981
|
+
path: {
|
|
1982
|
+
id: data.id
|
|
1983
|
+
},
|
|
1984
|
+
errors: {
|
|
1985
|
+
403: 'Cannot delete own account or insufficient permissions'
|
|
1986
|
+
}
|
|
1987
|
+
});
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1990
|
+
/**
|
|
1991
|
+
* Get user info by user ID
|
|
1992
|
+
* @param data The data for the request.
|
|
1993
|
+
* @param data.id User ID
|
|
1994
|
+
* @returns unknown User info retrieved successfully
|
|
1995
|
+
* @throws ApiError
|
|
1996
|
+
*/
|
|
1997
|
+
public static userControllerGetUserInfo(
|
|
1998
|
+
data: UserControllerGetUserInfoData
|
|
1999
|
+
): CancelablePromise<UserControllerGetUserInfoResponse> {
|
|
2000
|
+
return __request(OpenAPI, {
|
|
2001
|
+
method: 'GET',
|
|
2002
|
+
url: '/api/v1/users/{id}/info',
|
|
2003
|
+
path: {
|
|
2004
|
+
id: data.id
|
|
2005
|
+
},
|
|
2006
|
+
errors: {
|
|
2007
|
+
403: 'Cannot access other user info without admin permission'
|
|
2008
|
+
}
|
|
2009
|
+
});
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
/**
|
|
2013
|
+
* Update user settings
|
|
2014
|
+
* @param data The data for the request.
|
|
2015
|
+
* @param data.requestBody
|
|
2016
|
+
* @returns unknown Settings updated successfully
|
|
2017
|
+
* @throws ApiError
|
|
2018
|
+
*/
|
|
2019
|
+
public static userControllerUpdateUserSetting(
|
|
2020
|
+
data: UserControllerUpdateUserSettingData
|
|
2021
|
+
): CancelablePromise<UserControllerUpdateUserSettingResponse> {
|
|
2022
|
+
return __request(OpenAPI, {
|
|
2023
|
+
method: 'PUT',
|
|
2024
|
+
url: '/api/v1/users/setting',
|
|
2025
|
+
body: data.requestBody,
|
|
2026
|
+
mediaType: 'application/json',
|
|
2027
|
+
errors: {
|
|
2028
|
+
403: 'Insufficient permissions'
|
|
2029
|
+
}
|
|
2030
|
+
});
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/**
|
|
2034
|
+
* Get all user settings paginated (admin only)
|
|
2035
|
+
* @param data The data for the request.
|
|
2036
|
+
* @param data.pageNo Page number
|
|
2037
|
+
* @param data.pageSize Page size
|
|
2038
|
+
* @returns unknown Settings list retrieved successfully
|
|
2039
|
+
* @throws ApiError
|
|
2040
|
+
*/
|
|
2041
|
+
public static userControllerGetAllUserSettingsByPage(
|
|
2042
|
+
data: UserControllerGetAllUserSettingsByPageData
|
|
2043
|
+
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
2044
|
+
return __request(OpenAPI, {
|
|
2045
|
+
method: 'GET',
|
|
2046
|
+
url: '/api/v1/users/settings-by-page',
|
|
2047
|
+
query: {
|
|
2048
|
+
pageNo: data.pageNo,
|
|
2049
|
+
pageSize: data.pageSize
|
|
2050
|
+
}
|
|
2051
|
+
});
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
/**
|
|
2055
|
+
* Get asset and liability summary for current user
|
|
2056
|
+
* @returns unknown Summary retrieved successfully
|
|
2057
|
+
* @throws ApiError
|
|
2058
|
+
*/
|
|
2059
|
+
public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
|
|
2060
|
+
return __request(OpenAPI, {
|
|
2061
|
+
method: 'GET',
|
|
2062
|
+
url: '/api/v1/users/asset-liability-summary'
|
|
2063
|
+
});
|
|
2064
|
+
}
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
export class PropertiesService {
|
|
2068
|
+
/**
|
|
2069
|
+
* Get all system properties
|
|
2070
|
+
* @returns unknown Properties retrieved successfully
|
|
2071
|
+
* @throws ApiError
|
|
2072
|
+
*/
|
|
2073
|
+
public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
|
|
2074
|
+
return __request(OpenAPI, {
|
|
2075
|
+
method: 'GET',
|
|
2076
|
+
url: '/api/v1/admin/properties',
|
|
2077
|
+
errors: {
|
|
2078
|
+
401: 'Unauthorized',
|
|
2079
|
+
403: 'Forbidden - insufficient permissions'
|
|
2080
|
+
}
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
/**
|
|
2085
|
+
* Get property by key
|
|
2086
|
+
* @param data The data for the request.
|
|
2087
|
+
* @param data.key Property key
|
|
2088
|
+
* @returns unknown Property retrieved successfully
|
|
2089
|
+
* @throws ApiError
|
|
2090
|
+
*/
|
|
2091
|
+
public static propertyControllerGetByKey(
|
|
2092
|
+
data: PropertyControllerGetByKeyData
|
|
2093
|
+
): CancelablePromise<PropertyControllerGetByKeyResponse> {
|
|
2094
|
+
return __request(OpenAPI, {
|
|
2095
|
+
method: 'GET',
|
|
2096
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2097
|
+
path: {
|
|
2098
|
+
key: data.key
|
|
2099
|
+
},
|
|
2100
|
+
errors: {
|
|
2101
|
+
401: 'Unauthorized',
|
|
2102
|
+
403: 'Forbidden - insufficient permissions',
|
|
2103
|
+
404: 'Property not found'
|
|
2104
|
+
}
|
|
2105
|
+
});
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
/**
|
|
2109
|
+
* Update a system property
|
|
2110
|
+
* @param data The data for the request.
|
|
2111
|
+
* @param data.key Property key
|
|
2112
|
+
* @param data.requestBody
|
|
2113
|
+
* @returns unknown Property updated successfully
|
|
2114
|
+
* @throws ApiError
|
|
2115
|
+
*/
|
|
2116
|
+
public static propertyControllerUpdate(
|
|
2117
|
+
data: PropertyControllerUpdateData
|
|
2118
|
+
): CancelablePromise<PropertyControllerUpdateResponse> {
|
|
2119
|
+
return __request(OpenAPI, {
|
|
2120
|
+
method: 'PUT',
|
|
2121
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2122
|
+
path: {
|
|
2123
|
+
key: data.key
|
|
2124
|
+
},
|
|
2125
|
+
body: data.requestBody,
|
|
2126
|
+
mediaType: 'application/json',
|
|
2127
|
+
errors: {
|
|
2128
|
+
401: 'Unauthorized',
|
|
2129
|
+
403: 'Forbidden - insufficient permissions'
|
|
2130
|
+
}
|
|
2131
|
+
});
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
/**
|
|
2135
|
+
* Delete a system property
|
|
2136
|
+
* @param data The data for the request.
|
|
2137
|
+
* @param data.key Property key
|
|
2138
|
+
* @returns void Property deleted successfully
|
|
2139
|
+
* @throws ApiError
|
|
2140
|
+
*/
|
|
2141
|
+
public static propertyControllerDelete(
|
|
2142
|
+
data: PropertyControllerDeleteData
|
|
2143
|
+
): CancelablePromise<PropertyControllerDeleteResponse> {
|
|
2144
|
+
return __request(OpenAPI, {
|
|
2145
|
+
method: 'DELETE',
|
|
2146
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2147
|
+
path: {
|
|
2148
|
+
key: data.key
|
|
2149
|
+
},
|
|
2150
|
+
errors: {
|
|
2151
|
+
401: 'Unauthorized',
|
|
2152
|
+
403: 'Forbidden - insufficient permissions',
|
|
2153
|
+
404: 'Property not found'
|
|
2154
|
+
}
|
|
2155
|
+
});
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
export class RecurringRulesService {
|
|
2160
|
+
/**
|
|
2161
|
+
* Create a new recurring rule
|
|
2162
|
+
* Creates a new recurring transaction rule for the authenticated user
|
|
2163
|
+
* @param data The data for the request.
|
|
2164
|
+
* @param data.region Region code for tenant context
|
|
2165
|
+
* @param data.requestBody
|
|
2166
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2167
|
+
* @throws ApiError
|
|
2168
|
+
*/
|
|
2169
|
+
public static recurringRuleControllerCreate(
|
|
2170
|
+
data: RecurringRuleControllerCreateData
|
|
2171
|
+
): CancelablePromise<RecurringRuleControllerCreateResponse> {
|
|
2172
|
+
return __request(OpenAPI, {
|
|
2173
|
+
method: 'POST',
|
|
2174
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2175
|
+
path: {
|
|
2176
|
+
region: data.region
|
|
2177
|
+
},
|
|
2178
|
+
body: data.requestBody,
|
|
2179
|
+
mediaType: 'application/json',
|
|
2180
|
+
errors: {
|
|
2181
|
+
400: 'Invalid input data (e.g., autoCreate without accounts)',
|
|
2182
|
+
409: 'Rule with same name already exists'
|
|
2183
|
+
}
|
|
2184
|
+
});
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
/**
|
|
2188
|
+
* List recurring rules
|
|
2189
|
+
* Returns all recurring rules for the authenticated user with optional filtering
|
|
2190
|
+
* @param data The data for the request.
|
|
2191
|
+
* @param data.region Region code for tenant context
|
|
2192
|
+
* @param data.isActive Filter by active status
|
|
2193
|
+
* @param data.frequency Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
2194
|
+
* @param data.hasAutoCreate Filter by autoCreate enabled
|
|
2195
|
+
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
2196
|
+
* @throws ApiError
|
|
2197
|
+
*/
|
|
2198
|
+
public static recurringRuleControllerFindAll(
|
|
2199
|
+
data: RecurringRuleControllerFindAllData
|
|
2200
|
+
): CancelablePromise<RecurringRuleControllerFindAllResponse> {
|
|
2201
|
+
return __request(OpenAPI, {
|
|
2202
|
+
method: 'GET',
|
|
2203
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2204
|
+
path: {
|
|
2205
|
+
region: data.region
|
|
2206
|
+
},
|
|
2207
|
+
query: {
|
|
2208
|
+
isActive: data.isActive,
|
|
2209
|
+
frequency: data.frequency,
|
|
2210
|
+
hasAutoCreate: data.hasAutoCreate
|
|
2211
|
+
}
|
|
2212
|
+
});
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
/**
|
|
2216
|
+
* Create recurring rule from transaction
|
|
2217
|
+
* Auto-creates a recurring rule using transaction data. User only confirms frequency.
|
|
2218
|
+
* @param data The data for the request.
|
|
2219
|
+
* @param data.transactionId Source transaction ID
|
|
2220
|
+
* @param data.region Region code for tenant context
|
|
2221
|
+
* @param data.requestBody
|
|
2222
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2223
|
+
* @throws ApiError
|
|
2224
|
+
*/
|
|
2225
|
+
public static recurringRuleControllerCreateFromTransaction(
|
|
2226
|
+
data: RecurringRuleControllerCreateFromTransactionData
|
|
2227
|
+
): CancelablePromise<RecurringRuleControllerCreateFromTransactionResponse> {
|
|
2228
|
+
return __request(OpenAPI, {
|
|
2229
|
+
method: 'POST',
|
|
2230
|
+
url: '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}',
|
|
2231
|
+
path: {
|
|
2232
|
+
transactionId: data.transactionId,
|
|
2233
|
+
region: data.region
|
|
2234
|
+
},
|
|
2235
|
+
body: data.requestBody,
|
|
2236
|
+
mediaType: 'application/json',
|
|
2237
|
+
errors: {
|
|
2238
|
+
404: 'Transaction not found',
|
|
2239
|
+
409: 'Rule with same name already exists or transaction already linked'
|
|
2240
|
+
}
|
|
2241
|
+
});
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
/**
|
|
2245
|
+
* Get recurring rule by ID
|
|
2246
|
+
* Returns a specific recurring rule with its details
|
|
2247
|
+
* @param data The data for the request.
|
|
2248
|
+
* @param data.id Rule ID
|
|
2249
|
+
* @param data.region Region code for tenant context
|
|
2250
|
+
* @returns RecurringRuleResponseDto Rule retrieved successfully
|
|
2251
|
+
* @throws ApiError
|
|
2252
|
+
*/
|
|
2253
|
+
public static recurringRuleControllerFindOne(
|
|
2254
|
+
data: RecurringRuleControllerFindOneData
|
|
2255
|
+
): CancelablePromise<RecurringRuleControllerFindOneResponse> {
|
|
2256
|
+
return __request(OpenAPI, {
|
|
2257
|
+
method: 'GET',
|
|
2258
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
2259
|
+
path: {
|
|
2260
|
+
id: data.id,
|
|
2261
|
+
region: data.region
|
|
2262
|
+
},
|
|
2263
|
+
errors: {
|
|
2264
|
+
404: 'Rule not found'
|
|
1616
2265
|
}
|
|
1617
2266
|
});
|
|
1618
2267
|
}
|
|
@@ -1805,7 +2454,7 @@ export class ExpectedTransactionsService {
|
|
|
1805
2454
|
* @param data The data for the request.
|
|
1806
2455
|
* @param data.id Expected transaction ID
|
|
1807
2456
|
* @param data.region Region code for tenant context
|
|
1808
|
-
* @returns
|
|
2457
|
+
* @returns void Skip undone successfully
|
|
1809
2458
|
* @throws ApiError
|
|
1810
2459
|
*/
|
|
1811
2460
|
public static expectedTransactionControllerUndoSkip(
|
|
@@ -1861,7 +2510,7 @@ export class ExpectedTransactionsService {
|
|
|
1861
2510
|
* @param data The data for the request.
|
|
1862
2511
|
* @param data.id Expected transaction ID
|
|
1863
2512
|
* @param data.region Region code for tenant context
|
|
1864
|
-
* @returns
|
|
2513
|
+
* @returns void Match removed successfully
|
|
1865
2514
|
* @throws ApiError
|
|
1866
2515
|
*/
|
|
1867
2516
|
public static expectedTransactionControllerUnmatch(
|
|
@@ -2193,278 +2842,51 @@ export class BeanTransactionRulesService {
|
|
|
2193
2842
|
* @param data.requestBody
|
|
2194
2843
|
* @returns TestRuleResponseDto Test result
|
|
2195
2844
|
* @throws ApiError
|
|
2196
|
-
*/
|
|
2197
|
-
public static transactionRuleControllerTest(
|
|
2198
|
-
data: TransactionRuleControllerTestData
|
|
2199
|
-
): CancelablePromise<TransactionRuleControllerTestResponse> {
|
|
2200
|
-
return __request(OpenAPI, {
|
|
2201
|
-
method: 'POST',
|
|
2202
|
-
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
|
|
2203
|
-
path: {
|
|
2204
|
-
ruleId: data.ruleId,
|
|
2205
|
-
region: data.region
|
|
2206
|
-
},
|
|
2207
|
-
body: data.requestBody,
|
|
2208
|
-
mediaType: 'application/json',
|
|
2209
|
-
errors: {
|
|
2210
|
-
401: 'Unauthorized',
|
|
2211
|
-
403: 'Forbidden - not owner of rule',
|
|
2212
|
-
404: 'Rule not found'
|
|
2213
|
-
}
|
|
2214
|
-
});
|
|
2215
|
-
}
|
|
2216
|
-
}
|
|
2217
|
-
|
|
2218
|
-
export class UsersService {
|
|
2219
|
-
/**
|
|
2220
|
-
* Delete own user account
|
|
2221
|
-
* @param data The data for the request.
|
|
2222
|
-
* @param data.requestBody
|
|
2223
|
-
* @returns void User deleted successfully
|
|
2224
|
-
* @throws ApiError
|
|
2225
|
-
*/
|
|
2226
|
-
public static userControllerDeleteOwnUser(
|
|
2227
|
-
data: UserControllerDeleteOwnUserData
|
|
2228
|
-
): CancelablePromise<UserControllerDeleteOwnUserResponse> {
|
|
2229
|
-
return __request(OpenAPI, {
|
|
2230
|
-
method: 'DELETE',
|
|
2231
|
-
url: '/api/v1/users',
|
|
2232
|
-
body: data.requestBody,
|
|
2233
|
-
mediaType: 'application/json',
|
|
2234
|
-
errors: {
|
|
2235
|
-
403: 'Invalid access token'
|
|
2236
|
-
}
|
|
2237
|
-
});
|
|
2238
|
-
}
|
|
2239
|
-
|
|
2240
|
-
/**
|
|
2241
|
-
* Get current authenticated user
|
|
2242
|
-
* @param data The data for the request.
|
|
2243
|
-
* @param data.acceptLanguage
|
|
2244
|
-
* @returns unknown User retrieved successfully
|
|
2245
|
-
* @throws ApiError
|
|
2246
|
-
*/
|
|
2247
|
-
public static userControllerGetUser(
|
|
2248
|
-
data: UserControllerGetUserData
|
|
2249
|
-
): CancelablePromise<UserControllerGetUserResponse> {
|
|
2250
|
-
return __request(OpenAPI, {
|
|
2251
|
-
method: 'GET',
|
|
2252
|
-
url: '/api/v1/users',
|
|
2253
|
-
headers: {
|
|
2254
|
-
'accept-language': data.acceptLanguage
|
|
2255
|
-
}
|
|
2256
|
-
});
|
|
2257
|
-
}
|
|
2258
|
-
|
|
2259
|
-
/**
|
|
2260
|
-
* Sign up new user
|
|
2261
|
-
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
2262
|
-
* @param data The data for the request.
|
|
2263
|
-
* @param data.requestBody
|
|
2264
|
-
* @returns unknown User created successfully
|
|
2265
|
-
* @throws ApiError
|
|
2266
|
-
*/
|
|
2267
|
-
public static userControllerSignupUser(
|
|
2268
|
-
data: UserControllerSignupUserData
|
|
2269
|
-
): CancelablePromise<UserControllerSignupUserResponse> {
|
|
2270
|
-
return __request(OpenAPI, {
|
|
2271
|
-
method: 'POST',
|
|
2272
|
-
url: '/api/v1/users',
|
|
2273
|
-
body: data.requestBody,
|
|
2274
|
-
mediaType: 'application/json',
|
|
2275
|
-
errors: {
|
|
2276
|
-
400: 'Invalid Turnstile token (when Turnstile is enabled)',
|
|
2277
|
-
403: 'User signup is disabled'
|
|
2278
|
-
}
|
|
2279
|
-
});
|
|
2280
|
-
}
|
|
2281
|
-
|
|
2282
|
-
/**
|
|
2283
|
-
* Delete user by ID (admin only)
|
|
2284
|
-
* @param data The data for the request.
|
|
2285
|
-
* @param data.id User ID to delete
|
|
2286
|
-
* @returns void User deleted successfully
|
|
2287
|
-
* @throws ApiError
|
|
2288
|
-
*/
|
|
2289
|
-
public static userControllerDeleteUser(
|
|
2290
|
-
data: UserControllerDeleteUserData
|
|
2291
|
-
): CancelablePromise<UserControllerDeleteUserResponse> {
|
|
2292
|
-
return __request(OpenAPI, {
|
|
2293
|
-
method: 'DELETE',
|
|
2294
|
-
url: '/api/v1/users/{id}',
|
|
2295
|
-
path: {
|
|
2296
|
-
id: data.id
|
|
2297
|
-
},
|
|
2298
|
-
errors: {
|
|
2299
|
-
403: 'Cannot delete own account or insufficient permissions'
|
|
2300
|
-
}
|
|
2301
|
-
});
|
|
2302
|
-
}
|
|
2303
|
-
|
|
2304
|
-
/**
|
|
2305
|
-
* Get user info by user ID
|
|
2306
|
-
* @param data The data for the request.
|
|
2307
|
-
* @param data.id User ID
|
|
2308
|
-
* @returns unknown User info retrieved successfully
|
|
2309
|
-
* @throws ApiError
|
|
2310
|
-
*/
|
|
2311
|
-
public static userControllerGetUserInfo(
|
|
2312
|
-
data: UserControllerGetUserInfoData
|
|
2313
|
-
): CancelablePromise<UserControllerGetUserInfoResponse> {
|
|
2314
|
-
return __request(OpenAPI, {
|
|
2315
|
-
method: 'GET',
|
|
2316
|
-
url: '/api/v1/users/{id}/info',
|
|
2317
|
-
path: {
|
|
2318
|
-
id: data.id
|
|
2319
|
-
},
|
|
2320
|
-
errors: {
|
|
2321
|
-
403: 'Cannot access other user info without admin permission'
|
|
2322
|
-
}
|
|
2323
|
-
});
|
|
2324
|
-
}
|
|
2325
|
-
|
|
2326
|
-
/**
|
|
2327
|
-
* Update user settings
|
|
2328
|
-
* @param data The data for the request.
|
|
2329
|
-
* @param data.requestBody
|
|
2330
|
-
* @returns unknown Settings updated successfully
|
|
2331
|
-
* @throws ApiError
|
|
2332
|
-
*/
|
|
2333
|
-
public static userControllerUpdateUserSetting(
|
|
2334
|
-
data: UserControllerUpdateUserSettingData
|
|
2335
|
-
): CancelablePromise<UserControllerUpdateUserSettingResponse> {
|
|
2336
|
-
return __request(OpenAPI, {
|
|
2337
|
-
method: 'PUT',
|
|
2338
|
-
url: '/api/v1/users/setting',
|
|
2339
|
-
body: data.requestBody,
|
|
2340
|
-
mediaType: 'application/json',
|
|
2341
|
-
errors: {
|
|
2342
|
-
403: 'Insufficient permissions'
|
|
2343
|
-
}
|
|
2344
|
-
});
|
|
2345
|
-
}
|
|
2346
|
-
|
|
2347
|
-
/**
|
|
2348
|
-
* Get all user settings paginated (admin only)
|
|
2349
|
-
* @param data The data for the request.
|
|
2350
|
-
* @param data.pageNo Page number
|
|
2351
|
-
* @param data.pageSize Page size
|
|
2352
|
-
* @returns unknown Settings list retrieved successfully
|
|
2353
|
-
* @throws ApiError
|
|
2354
|
-
*/
|
|
2355
|
-
public static userControllerGetAllUserSettingsByPage(
|
|
2356
|
-
data: UserControllerGetAllUserSettingsByPageData
|
|
2357
|
-
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
2358
|
-
return __request(OpenAPI, {
|
|
2359
|
-
method: 'GET',
|
|
2360
|
-
url: '/api/v1/users/settings-by-page',
|
|
2361
|
-
query: {
|
|
2362
|
-
pageNo: data.pageNo,
|
|
2363
|
-
pageSize: data.pageSize
|
|
2364
|
-
}
|
|
2365
|
-
});
|
|
2366
|
-
}
|
|
2367
|
-
|
|
2368
|
-
/**
|
|
2369
|
-
* Get asset and liability summary for current user
|
|
2370
|
-
* @returns unknown Summary retrieved successfully
|
|
2371
|
-
* @throws ApiError
|
|
2372
|
-
*/
|
|
2373
|
-
public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
|
|
2374
|
-
return __request(OpenAPI, {
|
|
2375
|
-
method: 'GET',
|
|
2376
|
-
url: '/api/v1/users/asset-liability-summary'
|
|
2377
|
-
});
|
|
2378
|
-
}
|
|
2379
|
-
}
|
|
2380
|
-
|
|
2381
|
-
export class PropertiesService {
|
|
2382
|
-
/**
|
|
2383
|
-
* Get all system properties
|
|
2384
|
-
* @returns unknown Properties retrieved successfully
|
|
2385
|
-
* @throws ApiError
|
|
2386
|
-
*/
|
|
2387
|
-
public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
|
|
2388
|
-
return __request(OpenAPI, {
|
|
2389
|
-
method: 'GET',
|
|
2390
|
-
url: '/api/v1/admin/properties',
|
|
2391
|
-
errors: {
|
|
2392
|
-
401: 'Unauthorized',
|
|
2393
|
-
403: 'Forbidden - insufficient permissions'
|
|
2394
|
-
}
|
|
2395
|
-
});
|
|
2396
|
-
}
|
|
2397
|
-
|
|
2398
|
-
/**
|
|
2399
|
-
* Get property by key
|
|
2400
|
-
* @param data The data for the request.
|
|
2401
|
-
* @param data.key Property key
|
|
2402
|
-
* @returns unknown Property retrieved successfully
|
|
2403
|
-
* @throws ApiError
|
|
2404
|
-
*/
|
|
2405
|
-
public static propertyControllerGetByKey(
|
|
2406
|
-
data: PropertyControllerGetByKeyData
|
|
2407
|
-
): CancelablePromise<PropertyControllerGetByKeyResponse> {
|
|
2408
|
-
return __request(OpenAPI, {
|
|
2409
|
-
method: 'GET',
|
|
2410
|
-
url: '/api/v1/admin/properties/{key}',
|
|
2411
|
-
path: {
|
|
2412
|
-
key: data.key
|
|
2413
|
-
},
|
|
2414
|
-
errors: {
|
|
2415
|
-
401: 'Unauthorized',
|
|
2416
|
-
403: 'Forbidden - insufficient permissions',
|
|
2417
|
-
404: 'Property not found'
|
|
2418
|
-
}
|
|
2419
|
-
});
|
|
2420
|
-
}
|
|
2421
|
-
|
|
2422
|
-
/**
|
|
2423
|
-
* Update a system property
|
|
2424
|
-
* @param data The data for the request.
|
|
2425
|
-
* @param data.key Property key
|
|
2426
|
-
* @param data.requestBody
|
|
2427
|
-
* @returns unknown Property updated successfully
|
|
2428
|
-
* @throws ApiError
|
|
2429
|
-
*/
|
|
2430
|
-
public static propertyControllerUpdate(
|
|
2431
|
-
data: PropertyControllerUpdateData
|
|
2432
|
-
): CancelablePromise<PropertyControllerUpdateResponse> {
|
|
2845
|
+
*/
|
|
2846
|
+
public static transactionRuleControllerTest(
|
|
2847
|
+
data: TransactionRuleControllerTestData
|
|
2848
|
+
): CancelablePromise<TransactionRuleControllerTestResponse> {
|
|
2433
2849
|
return __request(OpenAPI, {
|
|
2434
|
-
method: '
|
|
2435
|
-
url: '/api/v1/
|
|
2850
|
+
method: 'POST',
|
|
2851
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
|
|
2436
2852
|
path: {
|
|
2437
|
-
|
|
2853
|
+
ruleId: data.ruleId,
|
|
2854
|
+
region: data.region
|
|
2438
2855
|
},
|
|
2439
2856
|
body: data.requestBody,
|
|
2440
2857
|
mediaType: 'application/json',
|
|
2441
2858
|
errors: {
|
|
2442
2859
|
401: 'Unauthorized',
|
|
2443
|
-
403: 'Forbidden -
|
|
2860
|
+
403: 'Forbidden - not owner of rule',
|
|
2861
|
+
404: 'Rule not found'
|
|
2444
2862
|
}
|
|
2445
2863
|
});
|
|
2446
2864
|
}
|
|
2865
|
+
}
|
|
2447
2866
|
|
|
2867
|
+
export class BeanCategoryCatalogService {
|
|
2448
2868
|
/**
|
|
2449
|
-
*
|
|
2869
|
+
* List category catalog for a region
|
|
2870
|
+
* Returns the region-scoped category slugs (expense/income/investment/banking/transfer/payment) for the NLP result picker. CN-exclusive payment instruments (huabei/baitiao) appear only under /cn.
|
|
2450
2871
|
* @param data The data for the request.
|
|
2451
|
-
* @param data.
|
|
2452
|
-
* @
|
|
2872
|
+
* @param data.region Region code for tenant context
|
|
2873
|
+
* @param data.scenario Filter by scenario
|
|
2874
|
+
* @param data.routeBearing Filter by routeBearing (entity-router route() consumes it)
|
|
2875
|
+
* @returns CategoryCatalogListResponseDto Category catalog retrieved successfully
|
|
2453
2876
|
* @throws ApiError
|
|
2454
2877
|
*/
|
|
2455
|
-
public static
|
|
2456
|
-
data:
|
|
2457
|
-
): CancelablePromise<
|
|
2878
|
+
public static categoryCatalogControllerList(
|
|
2879
|
+
data: CategoryCatalogControllerListData
|
|
2880
|
+
): CancelablePromise<CategoryCatalogControllerListResponse> {
|
|
2458
2881
|
return __request(OpenAPI, {
|
|
2459
|
-
method: '
|
|
2460
|
-
url: '/api/v1/
|
|
2882
|
+
method: 'GET',
|
|
2883
|
+
url: '/api/v1/{region}/bean/categories',
|
|
2461
2884
|
path: {
|
|
2462
|
-
|
|
2885
|
+
region: data.region
|
|
2463
2886
|
},
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
404: 'Property not found'
|
|
2887
|
+
query: {
|
|
2888
|
+
scenario: data.scenario,
|
|
2889
|
+
routeBearing: data.routeBearing
|
|
2468
2890
|
}
|
|
2469
2891
|
});
|
|
2470
2892
|
}
|
|
@@ -2611,13 +3033,178 @@ export class LifeEventsService {
|
|
|
2611
3033
|
}
|
|
2612
3034
|
});
|
|
2613
3035
|
}
|
|
3036
|
+
|
|
3037
|
+
/**
|
|
3038
|
+
* Slice time-series by a life event (Phase 79)
|
|
3039
|
+
* Returns aggregated time-series for postings matching accountPattern within the half-open date range of the given life event.
|
|
3040
|
+
* @param data The data for the request.
|
|
3041
|
+
* @param data.id Life event ID
|
|
3042
|
+
* @param data.accountPattern
|
|
3043
|
+
* @param data.granularity
|
|
3044
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
3045
|
+
* @returns unknown Time-series sliced by the life event range
|
|
3046
|
+
* @throws ApiError
|
|
3047
|
+
*/
|
|
3048
|
+
public static eventControllerGetSlice(
|
|
3049
|
+
data: EventControllerGetSliceData
|
|
3050
|
+
): CancelablePromise<EventControllerGetSliceResponse> {
|
|
3051
|
+
return __request(OpenAPI, {
|
|
3052
|
+
method: 'GET',
|
|
3053
|
+
url: '/api/v1/{region}/bean/events/{id}/slice',
|
|
3054
|
+
path: {
|
|
3055
|
+
id: data.id,
|
|
3056
|
+
region: data.region
|
|
3057
|
+
},
|
|
3058
|
+
query: {
|
|
3059
|
+
accountPattern: data.accountPattern,
|
|
3060
|
+
granularity: data.granularity
|
|
3061
|
+
},
|
|
3062
|
+
errors: {
|
|
3063
|
+
400: 'accountPattern query param is empty',
|
|
3064
|
+
404: 'Life event not found'
|
|
3065
|
+
}
|
|
3066
|
+
});
|
|
3067
|
+
}
|
|
3068
|
+
}
|
|
3069
|
+
|
|
3070
|
+
export class OnboardingService {
|
|
3071
|
+
/**
|
|
3072
|
+
* Bootstrap core accounts + register asset accounts with opening balances (ADR-0113)
|
|
3073
|
+
* @param data The data for the request.
|
|
3074
|
+
* @param data.region Region code for tenant context
|
|
3075
|
+
* @param data.requestBody
|
|
3076
|
+
* @returns unknown Onboarding bootstrap result.
|
|
3077
|
+
* @throws ApiError
|
|
3078
|
+
*/
|
|
3079
|
+
public static onboardingControllerBootstrap(
|
|
3080
|
+
data: OnboardingControllerBootstrapData
|
|
3081
|
+
): CancelablePromise<OnboardingControllerBootstrapResponse> {
|
|
3082
|
+
return __request(OpenAPI, {
|
|
3083
|
+
method: 'POST',
|
|
3084
|
+
url: '/api/v1/{region}/bean/onboarding',
|
|
3085
|
+
path: {
|
|
3086
|
+
region: data.region
|
|
3087
|
+
},
|
|
3088
|
+
body: data.requestBody,
|
|
3089
|
+
mediaType: 'application/json',
|
|
3090
|
+
errors: {
|
|
3091
|
+
422: 'Invalid region/account path/duplicate paths.'
|
|
3092
|
+
}
|
|
3093
|
+
});
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3096
|
+
|
|
3097
|
+
export class BalanceReconciliationService {
|
|
3098
|
+
/**
|
|
3099
|
+
* Preview reconciliation (book vs actual)
|
|
3100
|
+
* Computes book balance, diff, Beancount-inferred tolerance, and suggested action without persisting.
|
|
3101
|
+
* @param data The data for the request.
|
|
3102
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3103
|
+
* @param data.requestBody
|
|
3104
|
+
* @returns ReconciliationComputeResultDto Reconciliation preview
|
|
3105
|
+
* @throws ApiError
|
|
3106
|
+
*/
|
|
3107
|
+
public static reconciliationControllerCompute(
|
|
3108
|
+
data: ReconciliationControllerComputeData
|
|
3109
|
+
): CancelablePromise<ReconciliationControllerComputeResponse> {
|
|
3110
|
+
return __request(OpenAPI, {
|
|
3111
|
+
method: 'POST',
|
|
3112
|
+
url: '/api/v1/{region}/bean/reconciliations',
|
|
3113
|
+
path: {
|
|
3114
|
+
region: data.region
|
|
3115
|
+
},
|
|
3116
|
+
body: data.requestBody,
|
|
3117
|
+
mediaType: 'application/json',
|
|
3118
|
+
errors: {
|
|
3119
|
+
404: 'Account not found'
|
|
3120
|
+
}
|
|
3121
|
+
});
|
|
3122
|
+
}
|
|
3123
|
+
|
|
3124
|
+
/**
|
|
3125
|
+
* Record a balance assertion
|
|
3126
|
+
* Persists the reconciliation as a BeanBalance assertion (amount = actual, diffAmount = book − actual). Re-reconciling the same day/currency upserts.
|
|
3127
|
+
* @param data The data for the request.
|
|
3128
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3129
|
+
* @param data.requestBody
|
|
3130
|
+
* @returns ReconciliationRecordDto Balance assertion recorded
|
|
3131
|
+
* @throws ApiError
|
|
3132
|
+
*/
|
|
3133
|
+
public static reconciliationControllerAssert(
|
|
3134
|
+
data: ReconciliationControllerAssertData
|
|
3135
|
+
): CancelablePromise<ReconciliationControllerAssertResponse> {
|
|
3136
|
+
return __request(OpenAPI, {
|
|
3137
|
+
method: 'POST',
|
|
3138
|
+
url: '/api/v1/{region}/bean/reconciliations/assert',
|
|
3139
|
+
path: {
|
|
3140
|
+
region: data.region
|
|
3141
|
+
},
|
|
3142
|
+
body: data.requestBody,
|
|
3143
|
+
mediaType: 'application/json',
|
|
3144
|
+
errors: {
|
|
3145
|
+
404: 'Account not found'
|
|
3146
|
+
}
|
|
3147
|
+
});
|
|
3148
|
+
}
|
|
3149
|
+
|
|
3150
|
+
/**
|
|
3151
|
+
* Generate a pad adjusting entry
|
|
3152
|
+
* When book is outside tolerance, synthesizes a Beancount pad transaction (flag P) booking the diff from source_account and persists it. Source defaults to Equity:Opening-Balances.
|
|
3153
|
+
* @param data The data for the request.
|
|
3154
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3155
|
+
* @param data.requestBody
|
|
3156
|
+
* @returns PadResultDto Pad adjusting entry generated
|
|
3157
|
+
* @throws ApiError
|
|
3158
|
+
*/
|
|
3159
|
+
public static reconciliationControllerPad(
|
|
3160
|
+
data: ReconciliationControllerPadData
|
|
3161
|
+
): CancelablePromise<ReconciliationControllerPadResponse> {
|
|
3162
|
+
return __request(OpenAPI, {
|
|
3163
|
+
method: 'POST',
|
|
3164
|
+
url: '/api/v1/{region}/bean/reconciliations/pad',
|
|
3165
|
+
path: {
|
|
3166
|
+
region: data.region
|
|
3167
|
+
},
|
|
3168
|
+
body: data.requestBody,
|
|
3169
|
+
mediaType: 'application/json',
|
|
3170
|
+
errors: {
|
|
3171
|
+
400: 'Book already within tolerance — no pad needed',
|
|
3172
|
+
404: 'Account not found'
|
|
3173
|
+
}
|
|
3174
|
+
});
|
|
3175
|
+
}
|
|
3176
|
+
|
|
3177
|
+
/**
|
|
3178
|
+
* List reconciliation history for an account
|
|
3179
|
+
* Returns recorded balance assertions (most recent first). The latest drives the account-detail "Last <date>" badge.
|
|
3180
|
+
* @param data The data for the request.
|
|
3181
|
+
* @param data.accountId BeanAccount id
|
|
3182
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3183
|
+
* @returns ReconciliationRecordDto Reconciliation history
|
|
3184
|
+
* @throws ApiError
|
|
3185
|
+
*/
|
|
3186
|
+
public static reconciliationControllerHistory(
|
|
3187
|
+
data: ReconciliationControllerHistoryData
|
|
3188
|
+
): CancelablePromise<ReconciliationControllerHistoryResponse> {
|
|
3189
|
+
return __request(OpenAPI, {
|
|
3190
|
+
method: 'GET',
|
|
3191
|
+
url: '/api/v1/{region}/bean/accounts/{accountId}/reconciliations',
|
|
3192
|
+
path: {
|
|
3193
|
+
accountId: data.accountId,
|
|
3194
|
+
region: data.region
|
|
3195
|
+
},
|
|
3196
|
+
errors: {
|
|
3197
|
+
404: 'Account not found'
|
|
3198
|
+
}
|
|
3199
|
+
});
|
|
3200
|
+
}
|
|
2614
3201
|
}
|
|
2615
3202
|
|
|
2616
3203
|
export class BeanExportService {
|
|
2617
3204
|
/**
|
|
2618
3205
|
* Export Beancount ledger as ZIP
|
|
2619
3206
|
* Export all user Beancount data as a ZIP file containing ledger.beancount and yearly files in community format.
|
|
2620
|
-
* @returns
|
|
3207
|
+
* @returns binary ZIP archive (application/zip) streamed as an attachment
|
|
2621
3208
|
* @throws ApiError
|
|
2622
3209
|
*/
|
|
2623
3210
|
public static exportControllerExportBeancount(): CancelablePromise<ExportControllerExportBeancountResponse> {
|
|
@@ -2767,140 +3354,25 @@ export class BeanImportService {
|
|
|
2767
3354
|
|
|
2768
3355
|
/**
|
|
2769
3356
|
* Reset configuration to default
|
|
2770
|
-
* Resets the configuration for the specified importer to default values. This operation overwrites all existing configuration.
|
|
2771
|
-
* @param data The data for the request.
|
|
2772
|
-
* @param data.importerId Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
|
|
2773
|
-
* @param data.region Region code for tenant context
|
|
2774
|
-
* @returns ImporterConfigDto Configuration reset successfully
|
|
2775
|
-
* @throws ApiError
|
|
2776
|
-
*/
|
|
2777
|
-
public static importerConfigControllerResetConfig(
|
|
2778
|
-
data: ImporterConfigControllerResetConfigData
|
|
2779
|
-
): CancelablePromise<ImporterConfigControllerResetConfigResponse> {
|
|
2780
|
-
return __request(OpenAPI, {
|
|
2781
|
-
method: 'POST',
|
|
2782
|
-
url: '/api/v1/{region}/bean/import/config/{importerId}/reset',
|
|
2783
|
-
path: {
|
|
2784
|
-
importerId: data.importerId,
|
|
2785
|
-
region: data.region
|
|
2786
|
-
},
|
|
2787
|
-
errors: {
|
|
2788
|
-
400: 'Invalid input - Unsupported importer'
|
|
2789
|
-
}
|
|
2790
|
-
});
|
|
2791
|
-
}
|
|
2792
|
-
}
|
|
2793
|
-
|
|
2794
|
-
export class BeanPlatformsService {
|
|
2795
|
-
/**
|
|
2796
|
-
* Get all platforms with statistics
|
|
2797
|
-
* @returns unknown List of platforms with binding and account counts
|
|
2798
|
-
* @throws ApiError
|
|
2799
|
-
*/
|
|
2800
|
-
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
2801
|
-
return __request(OpenAPI, {
|
|
2802
|
-
method: 'GET',
|
|
2803
|
-
url: '/api/v1/bean/platforms'
|
|
2804
|
-
});
|
|
2805
|
-
}
|
|
2806
|
-
|
|
2807
|
-
/**
|
|
2808
|
-
* Create a new platform
|
|
2809
|
-
* @param data The data for the request.
|
|
2810
|
-
* @param data.requestBody
|
|
2811
|
-
* @returns unknown Platform created successfully
|
|
2812
|
-
* @throws ApiError
|
|
2813
|
-
*/
|
|
2814
|
-
public static platformControllerCreate(
|
|
2815
|
-
data: PlatformControllerCreateData
|
|
2816
|
-
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
2817
|
-
return __request(OpenAPI, {
|
|
2818
|
-
method: 'POST',
|
|
2819
|
-
url: '/api/v1/bean/platforms',
|
|
2820
|
-
body: data.requestBody,
|
|
2821
|
-
mediaType: 'application/json',
|
|
2822
|
-
errors: {
|
|
2823
|
-
409: 'Platform already exists'
|
|
2824
|
-
}
|
|
2825
|
-
});
|
|
2826
|
-
}
|
|
2827
|
-
|
|
2828
|
-
/**
|
|
2829
|
-
* Get platform list for current user
|
|
2830
|
-
* @returns unknown List of platforms with user binding status
|
|
2831
|
-
* @throws ApiError
|
|
2832
|
-
*/
|
|
2833
|
-
public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
2834
|
-
return __request(OpenAPI, {
|
|
2835
|
-
method: 'GET',
|
|
2836
|
-
url: '/api/v1/bean/platforms/list'
|
|
2837
|
-
});
|
|
2838
|
-
}
|
|
2839
|
-
|
|
2840
|
-
/**
|
|
2841
|
-
* Match platforms by name or alias
|
|
2842
|
-
* @param data The data for the request.
|
|
2843
|
-
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
2844
|
-
* @param data.region Region code for category override lookup
|
|
2845
|
-
* @returns unknown List of matching platforms with suggested segment names
|
|
2846
|
-
* @throws ApiError
|
|
2847
|
-
*/
|
|
2848
|
-
public static platformControllerMatchPlatforms(
|
|
2849
|
-
data: PlatformControllerMatchPlatformsData
|
|
2850
|
-
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
2851
|
-
return __request(OpenAPI, {
|
|
2852
|
-
method: 'GET',
|
|
2853
|
-
url: '/api/v1/bean/platforms/match',
|
|
2854
|
-
query: {
|
|
2855
|
-
q: data.q,
|
|
2856
|
-
region: data.region
|
|
2857
|
-
}
|
|
2858
|
-
});
|
|
2859
|
-
}
|
|
2860
|
-
|
|
2861
|
-
/**
|
|
2862
|
-
* Update a platform
|
|
2863
|
-
* @param data The data for the request.
|
|
2864
|
-
* @param data.id Platform ID
|
|
2865
|
-
* @param data.requestBody
|
|
2866
|
-
* @returns unknown Platform updated successfully
|
|
2867
|
-
* @throws ApiError
|
|
2868
|
-
*/
|
|
2869
|
-
public static platformControllerUpdate(
|
|
2870
|
-
data: PlatformControllerUpdateData
|
|
2871
|
-
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
2872
|
-
return __request(OpenAPI, {
|
|
2873
|
-
method: 'PUT',
|
|
2874
|
-
url: '/api/v1/bean/platforms/{id}',
|
|
2875
|
-
path: {
|
|
2876
|
-
id: data.id
|
|
2877
|
-
},
|
|
2878
|
-
body: data.requestBody,
|
|
2879
|
-
mediaType: 'application/json',
|
|
2880
|
-
errors: {
|
|
2881
|
-
404: 'Platform not found'
|
|
2882
|
-
}
|
|
2883
|
-
});
|
|
2884
|
-
}
|
|
2885
|
-
|
|
2886
|
-
/**
|
|
2887
|
-
* Delete a platform
|
|
3357
|
+
* Resets the configuration for the specified importer to default values. This operation overwrites all existing configuration.
|
|
2888
3358
|
* @param data The data for the request.
|
|
2889
|
-
* @param data.
|
|
2890
|
-
* @
|
|
3359
|
+
* @param data.importerId Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
|
|
3360
|
+
* @param data.region Region code for tenant context
|
|
3361
|
+
* @returns ImporterConfigDto Configuration reset successfully
|
|
2891
3362
|
* @throws ApiError
|
|
2892
3363
|
*/
|
|
2893
|
-
public static
|
|
2894
|
-
data:
|
|
2895
|
-
): CancelablePromise<
|
|
3364
|
+
public static importerConfigControllerResetConfig(
|
|
3365
|
+
data: ImporterConfigControllerResetConfigData
|
|
3366
|
+
): CancelablePromise<ImporterConfigControllerResetConfigResponse> {
|
|
2896
3367
|
return __request(OpenAPI, {
|
|
2897
|
-
method: '
|
|
2898
|
-
url: '/api/v1/bean/
|
|
3368
|
+
method: 'POST',
|
|
3369
|
+
url: '/api/v1/{region}/bean/import/config/{importerId}/reset',
|
|
2899
3370
|
path: {
|
|
2900
|
-
|
|
3371
|
+
importerId: data.importerId,
|
|
3372
|
+
region: data.region
|
|
2901
3373
|
},
|
|
2902
3374
|
errors: {
|
|
2903
|
-
|
|
3375
|
+
400: 'Invalid input - Unsupported importer'
|
|
2904
3376
|
}
|
|
2905
3377
|
});
|
|
2906
3378
|
}
|
|
@@ -3006,6 +3478,101 @@ export class ProviderSyncService {
|
|
|
3006
3478
|
}
|
|
3007
3479
|
}
|
|
3008
3480
|
|
|
3481
|
+
export class ExternalAccountLinksService {
|
|
3482
|
+
/**
|
|
3483
|
+
* Create an external account → BeanAccount mapping (ADR-0113)
|
|
3484
|
+
* @param data The data for the request.
|
|
3485
|
+
* @param data.region Region code for tenant context
|
|
3486
|
+
* @param data.requestBody
|
|
3487
|
+
* @returns ExternalAccountLinkResponseDto Link created.
|
|
3488
|
+
* @throws ApiError
|
|
3489
|
+
*/
|
|
3490
|
+
public static externalAccountLinkControllerCreate(
|
|
3491
|
+
data: ExternalAccountLinkControllerCreateData
|
|
3492
|
+
): CancelablePromise<ExternalAccountLinkControllerCreateResponse> {
|
|
3493
|
+
return __request(OpenAPI, {
|
|
3494
|
+
method: 'POST',
|
|
3495
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3496
|
+
path: {
|
|
3497
|
+
region: data.region
|
|
3498
|
+
},
|
|
3499
|
+
body: data.requestBody,
|
|
3500
|
+
mediaType: 'application/json',
|
|
3501
|
+
errors: {
|
|
3502
|
+
422: 'beanAccountId not owned, or an active link already exists.'
|
|
3503
|
+
}
|
|
3504
|
+
});
|
|
3505
|
+
}
|
|
3506
|
+
|
|
3507
|
+
/**
|
|
3508
|
+
* List the user's active external account links
|
|
3509
|
+
* @param data The data for the request.
|
|
3510
|
+
* @param data.provider
|
|
3511
|
+
* @param data.region Region code for tenant context
|
|
3512
|
+
* @returns ExternalAccountLinkListResponseDto Links retrieved.
|
|
3513
|
+
* @throws ApiError
|
|
3514
|
+
*/
|
|
3515
|
+
public static externalAccountLinkControllerFindAll(
|
|
3516
|
+
data: ExternalAccountLinkControllerFindAllData
|
|
3517
|
+
): CancelablePromise<ExternalAccountLinkControllerFindAllResponse> {
|
|
3518
|
+
return __request(OpenAPI, {
|
|
3519
|
+
method: 'GET',
|
|
3520
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3521
|
+
path: {
|
|
3522
|
+
region: data.region
|
|
3523
|
+
},
|
|
3524
|
+
query: {
|
|
3525
|
+
provider: data.provider
|
|
3526
|
+
}
|
|
3527
|
+
});
|
|
3528
|
+
}
|
|
3529
|
+
|
|
3530
|
+
/**
|
|
3531
|
+
* Get a single external account link
|
|
3532
|
+
* @param data The data for the request.
|
|
3533
|
+
* @param data.id
|
|
3534
|
+
* @param data.region Region code for tenant context
|
|
3535
|
+
* @returns ExternalAccountLinkResponseDto Link retrieved.
|
|
3536
|
+
* @throws ApiError
|
|
3537
|
+
*/
|
|
3538
|
+
public static externalAccountLinkControllerFindOne(
|
|
3539
|
+
data: ExternalAccountLinkControllerFindOneData
|
|
3540
|
+
): CancelablePromise<ExternalAccountLinkControllerFindOneResponse> {
|
|
3541
|
+
return __request(OpenAPI, {
|
|
3542
|
+
method: 'GET',
|
|
3543
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3544
|
+
path: {
|
|
3545
|
+
id: data.id,
|
|
3546
|
+
region: data.region
|
|
3547
|
+
},
|
|
3548
|
+
errors: {
|
|
3549
|
+
422: 'Link not found or not owned by the user.'
|
|
3550
|
+
}
|
|
3551
|
+
});
|
|
3552
|
+
}
|
|
3553
|
+
|
|
3554
|
+
/**
|
|
3555
|
+
* Soft-delete (disconnect) an external account link
|
|
3556
|
+
* @param data The data for the request.
|
|
3557
|
+
* @param data.id
|
|
3558
|
+
* @param data.region Region code for tenant context
|
|
3559
|
+
* @returns void Link soft-deleted; historical transactions are unaffected.
|
|
3560
|
+
* @throws ApiError
|
|
3561
|
+
*/
|
|
3562
|
+
public static externalAccountLinkControllerRemove(
|
|
3563
|
+
data: ExternalAccountLinkControllerRemoveData
|
|
3564
|
+
): CancelablePromise<ExternalAccountLinkControllerRemoveResponse> {
|
|
3565
|
+
return __request(OpenAPI, {
|
|
3566
|
+
method: 'DELETE',
|
|
3567
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3568
|
+
path: {
|
|
3569
|
+
id: data.id,
|
|
3570
|
+
region: data.region
|
|
3571
|
+
}
|
|
3572
|
+
});
|
|
3573
|
+
}
|
|
3574
|
+
}
|
|
3575
|
+
|
|
3009
3576
|
export class ImportTelemetryService {
|
|
3010
3577
|
/**
|
|
3011
3578
|
* Receive anonymous parser failure telemetry
|
|
@@ -3164,411 +3731,302 @@ export class BeanNlpService {
|
|
|
3164
3731
|
}
|
|
3165
3732
|
}
|
|
3166
3733
|
|
|
3167
|
-
export class
|
|
3734
|
+
export class BeanPlatformsService {
|
|
3168
3735
|
/**
|
|
3169
|
-
* Get
|
|
3170
|
-
*
|
|
3171
|
-
* @param data The data for the request.
|
|
3172
|
-
* @param data.region Region code for tenant context
|
|
3173
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3174
|
-
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3736
|
+
* Get all platforms with statistics
|
|
3737
|
+
* @returns unknown List of platforms with binding and account counts
|
|
3175
3738
|
* @throws ApiError
|
|
3176
3739
|
*/
|
|
3177
|
-
public static
|
|
3178
|
-
data: DashboardControllerGetNetWorthData
|
|
3179
|
-
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3740
|
+
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
3180
3741
|
return __request(OpenAPI, {
|
|
3181
3742
|
method: 'GET',
|
|
3182
|
-
url: '/api/v1/
|
|
3183
|
-
path: {
|
|
3184
|
-
region: data.region
|
|
3185
|
-
},
|
|
3186
|
-
query: {
|
|
3187
|
-
date: data.date
|
|
3188
|
-
},
|
|
3189
|
-
errors: {
|
|
3190
|
-
401: 'User not authenticated'
|
|
3191
|
-
}
|
|
3743
|
+
url: '/api/v1/bean/platforms'
|
|
3192
3744
|
});
|
|
3193
3745
|
}
|
|
3194
3746
|
|
|
3195
3747
|
/**
|
|
3196
|
-
*
|
|
3197
|
-
* Returns accounts with balances grouped by financial platform
|
|
3748
|
+
* Create a new platform
|
|
3198
3749
|
* @param data The data for the request.
|
|
3199
|
-
* @param data.
|
|
3200
|
-
* @
|
|
3201
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3202
|
-
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3203
|
-
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3750
|
+
* @param data.requestBody
|
|
3751
|
+
* @returns unknown Platform created successfully
|
|
3204
3752
|
* @throws ApiError
|
|
3205
3753
|
*/
|
|
3206
|
-
public static
|
|
3207
|
-
data:
|
|
3208
|
-
): CancelablePromise<
|
|
3754
|
+
public static platformControllerCreate(
|
|
3755
|
+
data: PlatformControllerCreateData
|
|
3756
|
+
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
3209
3757
|
return __request(OpenAPI, {
|
|
3210
|
-
method: '
|
|
3211
|
-
url: '/api/v1/
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
},
|
|
3215
|
-
query: {
|
|
3216
|
-
groupBy: data.groupBy,
|
|
3217
|
-
date: data.date,
|
|
3218
|
-
accountId: data.accountId
|
|
3219
|
-
},
|
|
3758
|
+
method: 'POST',
|
|
3759
|
+
url: '/api/v1/bean/platforms',
|
|
3760
|
+
body: data.requestBody,
|
|
3761
|
+
mediaType: 'application/json',
|
|
3220
3762
|
errors: {
|
|
3221
|
-
|
|
3763
|
+
409: 'Platform already exists'
|
|
3222
3764
|
}
|
|
3223
3765
|
});
|
|
3224
3766
|
}
|
|
3225
3767
|
|
|
3226
3768
|
/**
|
|
3227
|
-
* Get
|
|
3228
|
-
* Returns income, expenses, and savings for a monthly period
|
|
3769
|
+
* Get platform list for current user
|
|
3229
3770
|
* @param data The data for the request.
|
|
3230
|
-
* @param data.
|
|
3231
|
-
* @
|
|
3232
|
-
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3771
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3772
|
+
* @returns PlatformListItemDto List of platforms with user binding status
|
|
3233
3773
|
* @throws ApiError
|
|
3234
3774
|
*/
|
|
3235
|
-
public static
|
|
3236
|
-
data:
|
|
3237
|
-
): CancelablePromise<
|
|
3775
|
+
public static platformControllerGetPlatformList(
|
|
3776
|
+
data: PlatformControllerGetPlatformListData = {}
|
|
3777
|
+
): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
3238
3778
|
return __request(OpenAPI, {
|
|
3239
3779
|
method: 'GET',
|
|
3240
|
-
url: '/api/v1/
|
|
3241
|
-
path: {
|
|
3242
|
-
region: data.region
|
|
3243
|
-
},
|
|
3780
|
+
url: '/api/v1/bean/platforms/list',
|
|
3244
3781
|
query: {
|
|
3245
|
-
|
|
3246
|
-
},
|
|
3247
|
-
errors: {
|
|
3248
|
-
400: 'Invalid period format',
|
|
3249
|
-
401: 'User not authenticated'
|
|
3782
|
+
region: data.region
|
|
3250
3783
|
}
|
|
3251
3784
|
});
|
|
3252
3785
|
}
|
|
3253
|
-
}
|
|
3254
3786
|
|
|
3255
|
-
export class InvestmentService {
|
|
3256
3787
|
/**
|
|
3257
|
-
*
|
|
3258
|
-
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3788
|
+
* Match platforms by name or alias
|
|
3259
3789
|
* @param data The data for the request.
|
|
3260
|
-
* @param data.
|
|
3261
|
-
* @param data.
|
|
3262
|
-
* @
|
|
3263
|
-
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
3264
|
-
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3790
|
+
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
3791
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3792
|
+
* @returns PlatformMatchResponseDto Matching platforms with overall match type and truncation flag
|
|
3265
3793
|
* @throws ApiError
|
|
3266
3794
|
*/
|
|
3267
|
-
public static
|
|
3268
|
-
data:
|
|
3269
|
-
): CancelablePromise<
|
|
3795
|
+
public static platformControllerMatchPlatforms(
|
|
3796
|
+
data: PlatformControllerMatchPlatformsData
|
|
3797
|
+
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
3270
3798
|
return __request(OpenAPI, {
|
|
3271
3799
|
method: 'GET',
|
|
3272
|
-
url: '/api/v1/
|
|
3273
|
-
path: {
|
|
3274
|
-
region: data.region
|
|
3275
|
-
},
|
|
3800
|
+
url: '/api/v1/bean/platforms/match',
|
|
3276
3801
|
query: {
|
|
3277
|
-
|
|
3278
|
-
accountId: data.accountId,
|
|
3279
|
-
method: data.method
|
|
3280
|
-
},
|
|
3281
|
-
errors: {
|
|
3282
|
-
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
3283
|
-
401: 'User not authenticated'
|
|
3284
|
-
}
|
|
3285
|
-
});
|
|
3286
|
-
}
|
|
3287
|
-
}
|
|
3288
|
-
|
|
3289
|
-
export class BeanPricesService {
|
|
3290
|
-
/**
|
|
3291
|
-
* Create a new price
|
|
3292
|
-
* Creates a new price entry for the authenticated user
|
|
3293
|
-
* @param data The data for the request.
|
|
3294
|
-
* @param data.region Region code for tenant context
|
|
3295
|
-
* @param data.requestBody
|
|
3296
|
-
* @returns PriceResponseDto Price created successfully
|
|
3297
|
-
* @throws ApiError
|
|
3298
|
-
*/
|
|
3299
|
-
public static priceControllerCreate(
|
|
3300
|
-
data: PriceControllerCreateData
|
|
3301
|
-
): CancelablePromise<PriceControllerCreateResponse> {
|
|
3302
|
-
return __request(OpenAPI, {
|
|
3303
|
-
method: 'POST',
|
|
3304
|
-
url: '/api/v1/{region}/bean/prices',
|
|
3305
|
-
path: {
|
|
3802
|
+
q: data.q,
|
|
3306
3803
|
region: data.region
|
|
3307
|
-
},
|
|
3308
|
-
body: data.requestBody,
|
|
3309
|
-
mediaType: 'application/json',
|
|
3310
|
-
errors: {
|
|
3311
|
-
404: 'Currency or quoteCurrency commodity not found',
|
|
3312
|
-
409: 'Price already exists for this currency pair and date'
|
|
3313
3804
|
}
|
|
3314
3805
|
});
|
|
3315
3806
|
}
|
|
3316
3807
|
|
|
3317
3808
|
/**
|
|
3318
|
-
*
|
|
3319
|
-
* Returns all price entries for the authenticated user with optional filtering
|
|
3809
|
+
* Get the region and candidate account standards for a platform
|
|
3320
3810
|
* @param data The data for the request.
|
|
3321
|
-
* @param data.
|
|
3322
|
-
* @param data.
|
|
3323
|
-
* @param data.
|
|
3324
|
-
* @
|
|
3325
|
-
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
3326
|
-
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
3327
|
-
* @param data.page Page number for pagination (default: 1)
|
|
3328
|
-
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
3329
|
-
* @returns PriceListResponseDto Prices retrieved successfully
|
|
3811
|
+
* @param data.id Platform ID (from a match result)
|
|
3812
|
+
* @param data.region Region code (ISO 3166-1 alpha-2, case-insensitive). Required for global platforms (countryCode null) — resolved as their template region; ignored when the platform has its own countryCode.
|
|
3813
|
+
* @param data.type Filter templates by account type (path first segment)
|
|
3814
|
+
* @returns PlatformStandardsResponseDto Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
|
|
3330
3815
|
* @throws ApiError
|
|
3331
3816
|
*/
|
|
3332
|
-
public static
|
|
3333
|
-
data:
|
|
3334
|
-
): CancelablePromise<
|
|
3817
|
+
public static platformControllerGetPlatformStandards(
|
|
3818
|
+
data: PlatformControllerGetPlatformStandardsData
|
|
3819
|
+
): CancelablePromise<PlatformControllerGetPlatformStandardsResponse> {
|
|
3335
3820
|
return __request(OpenAPI, {
|
|
3336
3821
|
method: 'GET',
|
|
3337
|
-
url: '/api/v1/{
|
|
3822
|
+
url: '/api/v1/bean/platforms/{id}/standards',
|
|
3338
3823
|
path: {
|
|
3339
|
-
|
|
3824
|
+
id: data.id
|
|
3340
3825
|
},
|
|
3341
3826
|
query: {
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
dateFrom: data.dateFrom,
|
|
3345
|
-
dateTo: data.dateTo,
|
|
3346
|
-
search: data.search,
|
|
3347
|
-
page: data.page,
|
|
3348
|
-
limit: data.limit
|
|
3827
|
+
region: data.region,
|
|
3828
|
+
type: data.type
|
|
3349
3829
|
}
|
|
3350
3830
|
});
|
|
3351
3831
|
}
|
|
3352
3832
|
|
|
3353
3833
|
/**
|
|
3354
|
-
*
|
|
3355
|
-
* Returns a single price entry by its ID
|
|
3834
|
+
* Update a platform
|
|
3356
3835
|
* @param data The data for the request.
|
|
3357
|
-
* @param data.id
|
|
3358
|
-
* @param data.
|
|
3359
|
-
* @returns
|
|
3836
|
+
* @param data.id Platform ID
|
|
3837
|
+
* @param data.requestBody
|
|
3838
|
+
* @returns unknown Platform updated successfully
|
|
3360
3839
|
* @throws ApiError
|
|
3361
3840
|
*/
|
|
3362
|
-
public static
|
|
3363
|
-
data:
|
|
3364
|
-
): CancelablePromise<
|
|
3841
|
+
public static platformControllerUpdate(
|
|
3842
|
+
data: PlatformControllerUpdateData
|
|
3843
|
+
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
3365
3844
|
return __request(OpenAPI, {
|
|
3366
|
-
method: '
|
|
3367
|
-
url: '/api/v1/
|
|
3845
|
+
method: 'PUT',
|
|
3846
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3368
3847
|
path: {
|
|
3369
|
-
id: data.id
|
|
3370
|
-
region: data.region
|
|
3848
|
+
id: data.id
|
|
3371
3849
|
},
|
|
3850
|
+
body: data.requestBody,
|
|
3851
|
+
mediaType: 'application/json',
|
|
3372
3852
|
errors: {
|
|
3373
|
-
404: '
|
|
3853
|
+
404: 'Platform not found'
|
|
3374
3854
|
}
|
|
3375
3855
|
});
|
|
3376
3856
|
}
|
|
3377
3857
|
|
|
3378
3858
|
/**
|
|
3379
|
-
*
|
|
3380
|
-
* Updates an existing price entry
|
|
3859
|
+
* Delete a platform
|
|
3381
3860
|
* @param data The data for the request.
|
|
3382
|
-
* @param data.id
|
|
3383
|
-
* @
|
|
3384
|
-
* @param data.requestBody
|
|
3385
|
-
* @returns PriceResponseDto Price updated successfully
|
|
3861
|
+
* @param data.id Platform ID
|
|
3862
|
+
* @returns void Platform deleted successfully
|
|
3386
3863
|
* @throws ApiError
|
|
3387
3864
|
*/
|
|
3388
|
-
public static
|
|
3389
|
-
data:
|
|
3390
|
-
): CancelablePromise<
|
|
3865
|
+
public static platformControllerDelete(
|
|
3866
|
+
data: PlatformControllerDeleteData
|
|
3867
|
+
): CancelablePromise<PlatformControllerDeleteResponse> {
|
|
3391
3868
|
return __request(OpenAPI, {
|
|
3392
|
-
method: '
|
|
3393
|
-
url: '/api/v1/
|
|
3869
|
+
method: 'DELETE',
|
|
3870
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3394
3871
|
path: {
|
|
3395
|
-
id: data.id
|
|
3396
|
-
region: data.region
|
|
3872
|
+
id: data.id
|
|
3397
3873
|
},
|
|
3398
|
-
body: data.requestBody,
|
|
3399
|
-
mediaType: 'application/json',
|
|
3400
3874
|
errors: {
|
|
3401
|
-
404: '
|
|
3402
|
-
409: 'Updated price conflicts with existing price'
|
|
3875
|
+
404: 'Platform not found'
|
|
3403
3876
|
}
|
|
3404
3877
|
});
|
|
3405
3878
|
}
|
|
3879
|
+
}
|
|
3406
3880
|
|
|
3881
|
+
export class DashboardService {
|
|
3407
3882
|
/**
|
|
3408
|
-
*
|
|
3409
|
-
*
|
|
3883
|
+
* Get net worth overview
|
|
3884
|
+
* Returns total net worth with breakdown of assets and liabilities
|
|
3410
3885
|
* @param data The data for the request.
|
|
3411
|
-
* @param data.id Price ID
|
|
3412
3886
|
* @param data.region Region code for tenant context
|
|
3413
|
-
* @
|
|
3887
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3888
|
+
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3414
3889
|
* @throws ApiError
|
|
3415
3890
|
*/
|
|
3416
|
-
public static
|
|
3417
|
-
data:
|
|
3418
|
-
): CancelablePromise<
|
|
3891
|
+
public static dashboardControllerGetNetWorth(
|
|
3892
|
+
data: DashboardControllerGetNetWorthData
|
|
3893
|
+
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3419
3894
|
return __request(OpenAPI, {
|
|
3420
|
-
method: '
|
|
3421
|
-
url: '/api/v1/{region}/
|
|
3895
|
+
method: 'GET',
|
|
3896
|
+
url: '/api/v1/{region}/dashboard/net-worth',
|
|
3422
3897
|
path: {
|
|
3423
|
-
id: data.id,
|
|
3424
3898
|
region: data.region
|
|
3425
3899
|
},
|
|
3900
|
+
query: {
|
|
3901
|
+
date: data.date
|
|
3902
|
+
},
|
|
3426
3903
|
errors: {
|
|
3427
|
-
|
|
3904
|
+
401: 'User not authenticated'
|
|
3428
3905
|
}
|
|
3429
3906
|
});
|
|
3430
3907
|
}
|
|
3431
3908
|
|
|
3432
3909
|
/**
|
|
3433
|
-
*
|
|
3434
|
-
*
|
|
3910
|
+
* Get accounts grouped by platform
|
|
3911
|
+
* Returns accounts with balances grouped by financial platform
|
|
3435
3912
|
* @param data The data for the request.
|
|
3436
3913
|
* @param data.region Region code for tenant context
|
|
3437
|
-
* @param data.
|
|
3438
|
-
* @
|
|
3914
|
+
* @param data.groupBy Grouping strategy
|
|
3915
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3916
|
+
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3917
|
+
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3439
3918
|
* @throws ApiError
|
|
3440
3919
|
*/
|
|
3441
|
-
public static
|
|
3442
|
-
data:
|
|
3443
|
-
): CancelablePromise<
|
|
3920
|
+
public static dashboardControllerGetAccounts(
|
|
3921
|
+
data: DashboardControllerGetAccountsData
|
|
3922
|
+
): CancelablePromise<DashboardControllerGetAccountsResponse> {
|
|
3444
3923
|
return __request(OpenAPI, {
|
|
3445
|
-
method: '
|
|
3446
|
-
url: '/api/v1/{region}/
|
|
3924
|
+
method: 'GET',
|
|
3925
|
+
url: '/api/v1/{region}/dashboard/accounts',
|
|
3447
3926
|
path: {
|
|
3448
3927
|
region: data.region
|
|
3449
3928
|
},
|
|
3450
|
-
|
|
3451
|
-
|
|
3929
|
+
query: {
|
|
3930
|
+
groupBy: data.groupBy,
|
|
3931
|
+
date: data.date,
|
|
3932
|
+
accountId: data.accountId
|
|
3933
|
+
},
|
|
3934
|
+
errors: {
|
|
3935
|
+
401: 'User not authenticated'
|
|
3936
|
+
}
|
|
3452
3937
|
});
|
|
3453
3938
|
}
|
|
3454
|
-
}
|
|
3455
3939
|
|
|
3456
|
-
export class ReportingService {
|
|
3457
3940
|
/**
|
|
3458
|
-
* Get
|
|
3459
|
-
*
|
|
3460
|
-
* Returns time series data of portfolio net worth.
|
|
3461
|
-
*
|
|
3462
|
-
* **Multi-currency Support:**
|
|
3463
|
-
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
3464
|
-
* - `byCurrency` - Separate time series grouped by currency
|
|
3465
|
-
* - `warnings` - Exchange rate warnings if conversion failed
|
|
3466
|
-
*
|
|
3467
|
-
* **Parameters:**
|
|
3468
|
-
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
3469
|
-
* - `granularity`: Data granularity (day, week, month)
|
|
3470
|
-
*
|
|
3941
|
+
* Get cash flow summary
|
|
3942
|
+
* Returns income, expenses, and savings for a monthly period
|
|
3471
3943
|
* @param data The data for the request.
|
|
3944
|
+
* @param data.period Period in YYYY-MM format
|
|
3472
3945
|
* @param data.region Region code for tenant context
|
|
3473
|
-
* @
|
|
3474
|
-
* @param data.granularity Data granularity
|
|
3475
|
-
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
3946
|
+
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3476
3947
|
* @throws ApiError
|
|
3477
3948
|
*/
|
|
3478
|
-
public static
|
|
3479
|
-
data:
|
|
3480
|
-
): CancelablePromise<
|
|
3949
|
+
public static dashboardControllerGetCashFlow(
|
|
3950
|
+
data: DashboardControllerGetCashFlowData
|
|
3951
|
+
): CancelablePromise<DashboardControllerGetCashFlowResponse> {
|
|
3481
3952
|
return __request(OpenAPI, {
|
|
3482
3953
|
method: 'GET',
|
|
3483
|
-
url: '/api/v1/{region}/
|
|
3954
|
+
url: '/api/v1/{region}/dashboard/cash-flow',
|
|
3484
3955
|
path: {
|
|
3485
3956
|
region: data.region
|
|
3486
3957
|
},
|
|
3487
3958
|
query: {
|
|
3488
|
-
period: data.period
|
|
3489
|
-
granularity: data.granularity
|
|
3959
|
+
period: data.period
|
|
3490
3960
|
},
|
|
3491
3961
|
errors: {
|
|
3962
|
+
400: 'Invalid period format',
|
|
3492
3963
|
401: 'User not authenticated'
|
|
3493
3964
|
}
|
|
3494
3965
|
});
|
|
3495
3966
|
}
|
|
3496
3967
|
|
|
3497
3968
|
/**
|
|
3498
|
-
*
|
|
3499
|
-
*
|
|
3500
|
-
* Manually generate a portfolio snapshot for a specific date.
|
|
3501
|
-
*
|
|
3502
|
-
* **Multi-currency Support:**
|
|
3503
|
-
* - Fetches balances grouped by currency
|
|
3504
|
-
* - Uses user's baseCurrency setting for conversion
|
|
3505
|
-
* - Stores exchange rates and warnings
|
|
3506
|
-
*
|
|
3507
|
-
* **Use Cases:**
|
|
3508
|
-
* - Testing snapshot generation
|
|
3509
|
-
* - Force regeneration after data correction
|
|
3510
|
-
* - Initial setup for new users
|
|
3511
|
-
*
|
|
3969
|
+
* Get expenses/income grouped by functional category
|
|
3970
|
+
* Returns amounts pre-aggregated by functional category (account-path Group segment) with server-side multi-currency conversion. flow=expense (default) aggregates ^Expenses: accounts; flow=income aggregates ^Income: accounts (issue #518)
|
|
3512
3971
|
* @param data The data for the request.
|
|
3513
3972
|
* @param data.region Region code for tenant context
|
|
3514
|
-
* @param data.
|
|
3515
|
-
* @
|
|
3973
|
+
* @param data.groupBy Grouping strategy
|
|
3974
|
+
* @param data.period Time window (1m = current calendar month)
|
|
3975
|
+
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
3976
|
+
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3516
3977
|
* @throws ApiError
|
|
3517
3978
|
*/
|
|
3518
|
-
public static
|
|
3519
|
-
data:
|
|
3520
|
-
): CancelablePromise<
|
|
3979
|
+
public static dashboardControllerGetExpenses(
|
|
3980
|
+
data: DashboardControllerGetExpensesData
|
|
3981
|
+
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3521
3982
|
return __request(OpenAPI, {
|
|
3522
|
-
method: '
|
|
3523
|
-
url: '/api/v1/{region}/
|
|
3983
|
+
method: 'GET',
|
|
3984
|
+
url: '/api/v1/{region}/dashboard/expenses',
|
|
3524
3985
|
path: {
|
|
3525
3986
|
region: data.region
|
|
3526
3987
|
},
|
|
3527
|
-
|
|
3528
|
-
|
|
3988
|
+
query: {
|
|
3989
|
+
groupBy: data.groupBy,
|
|
3990
|
+
period: data.period,
|
|
3991
|
+
flow: data.flow
|
|
3992
|
+
},
|
|
3529
3993
|
errors: {
|
|
3530
|
-
400: 'Invalid
|
|
3994
|
+
400: 'Invalid groupBy or period',
|
|
3531
3995
|
401: 'User not authenticated'
|
|
3532
3996
|
}
|
|
3533
3997
|
});
|
|
3534
3998
|
}
|
|
3999
|
+
}
|
|
3535
4000
|
|
|
4001
|
+
export class InvestmentService {
|
|
3536
4002
|
/**
|
|
3537
|
-
*
|
|
3538
|
-
*
|
|
3539
|
-
* Generate snapshots for a date range (historical data backfill).
|
|
3540
|
-
*
|
|
3541
|
-
* **Multi-currency Support:**
|
|
3542
|
-
* - Each snapshot includes multi-currency data
|
|
3543
|
-
* - Uses exchange rates available at generation time
|
|
3544
|
-
* - Warnings stored for missing exchange rates
|
|
3545
|
-
*
|
|
3546
|
-
* **Best Practices:**
|
|
3547
|
-
* - Use for initial setup after account configuration
|
|
3548
|
-
* - Run during low-traffic periods for large date ranges
|
|
3549
|
-
* - Existing snapshots are skipped (not regenerated)
|
|
3550
|
-
*
|
|
4003
|
+
* Get per-holding unrealized + realized P&L
|
|
4004
|
+
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3551
4005
|
* @param data The data for the request.
|
|
3552
4006
|
* @param data.region Region code for tenant context
|
|
3553
|
-
* @param data.
|
|
3554
|
-
* @
|
|
4007
|
+
* @param data.asOf As-of date (ISO 8601), defaults to today
|
|
4008
|
+
* @param data.accountId Scope to a single account
|
|
4009
|
+
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
4010
|
+
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3555
4011
|
* @throws ApiError
|
|
3556
4012
|
*/
|
|
3557
|
-
public static
|
|
3558
|
-
data:
|
|
3559
|
-
): CancelablePromise<
|
|
4013
|
+
public static holdingPnlControllerGetHoldingPnl(
|
|
4014
|
+
data: HoldingPnlControllerGetHoldingPnlData
|
|
4015
|
+
): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
|
|
3560
4016
|
return __request(OpenAPI, {
|
|
3561
|
-
method: '
|
|
3562
|
-
url: '/api/v1/{region}/
|
|
4017
|
+
method: 'GET',
|
|
4018
|
+
url: '/api/v1/{region}/investment/holdings/pnl',
|
|
3563
4019
|
path: {
|
|
3564
4020
|
region: data.region
|
|
3565
4021
|
},
|
|
3566
|
-
|
|
3567
|
-
|
|
4022
|
+
query: {
|
|
4023
|
+
asOf: data.asOf,
|
|
4024
|
+
accountId: data.accountId,
|
|
4025
|
+
method: data.method
|
|
4026
|
+
},
|
|
3568
4027
|
errors: {
|
|
3569
|
-
400: 'Invalid date format or
|
|
3570
|
-
401: 'User not authenticated'
|
|
3571
|
-
409: 'Backfill already in progress for this user'
|
|
4028
|
+
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
4029
|
+
401: 'User not authenticated'
|
|
3572
4030
|
}
|
|
3573
4031
|
});
|
|
3574
4032
|
}
|
|
@@ -3597,7 +4055,7 @@ export class AuthService {
|
|
|
3597
4055
|
* Anonymous login with access token
|
|
3598
4056
|
* @param data The data for the request.
|
|
3599
4057
|
* @param data.requestBody
|
|
3600
|
-
* @returns
|
|
4058
|
+
* @returns AnonymousLoginResponseDto Login successful
|
|
3601
4059
|
* @throws ApiError
|
|
3602
4060
|
*/
|
|
3603
4061
|
public static authControllerAccessTokenLogin(
|
|
@@ -3615,15 +4073,52 @@ export class AuthService {
|
|
|
3615
4073
|
}
|
|
3616
4074
|
}
|
|
3617
4075
|
|
|
3618
|
-
export class
|
|
4076
|
+
export class CommunityService {
|
|
4077
|
+
/**
|
|
4078
|
+
* Relay a sanitized parser-contribution payload
|
|
4079
|
+
* A server-side bot re-sanitizes the payload and opens an issue on the target repository; the issue URL is returned. The payload is never persisted or logged (forward-and-drop).
|
|
4080
|
+
* @param data The data for the request.
|
|
4081
|
+
* @param data.region Region code for tenant context (routing only; the institution region rides in the payload meta)
|
|
4082
|
+
* @param data.requestBody
|
|
4083
|
+
* @returns ParserContributionRelayResponseDto Issue created by the bot
|
|
4084
|
+
* @throws ApiError
|
|
4085
|
+
*/
|
|
4086
|
+
public static parserContributionControllerCreate(
|
|
4087
|
+
data: ParserContributionControllerCreateData
|
|
4088
|
+
): CancelablePromise<ParserContributionControllerCreateResponse> {
|
|
4089
|
+
return __request(OpenAPI, {
|
|
4090
|
+
method: 'POST',
|
|
4091
|
+
url: '/api/v1/{region}/community/parser-contributions',
|
|
4092
|
+
path: {
|
|
4093
|
+
region: data.region
|
|
4094
|
+
},
|
|
4095
|
+
body: data.requestBody,
|
|
4096
|
+
mediaType: 'application/json',
|
|
4097
|
+
errors: {
|
|
4098
|
+
401: 'Unauthorized',
|
|
4099
|
+
422: 'Validation failed (institution slug, empty samples, row/cell size limits)',
|
|
4100
|
+
429: 'Rate limited (5 submissions per user per hour)',
|
|
4101
|
+
501: 'Relay not configured on this deployment — clients fall back to the clipboard flow',
|
|
4102
|
+
502: 'GitHub bot failure (upstream), safe to retry'
|
|
4103
|
+
}
|
|
4104
|
+
});
|
|
4105
|
+
}
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
export class AdminCacheService {
|
|
3619
4109
|
/**
|
|
3620
|
-
*
|
|
4110
|
+
* Flush entire cache (L1 + L2)
|
|
4111
|
+
* Clears ALL cache entries across ALL namespaces and users. Use only for emergency cache corruption recovery, maintenance-window refresh, or development resets.
|
|
4112
|
+
* @returns unknown Cache flushed successfully
|
|
3621
4113
|
* @throws ApiError
|
|
3622
4114
|
*/
|
|
3623
4115
|
public static cacheControllerFlushCache(): CancelablePromise<CacheControllerFlushCacheResponse> {
|
|
3624
4116
|
return __request(OpenAPI, {
|
|
3625
4117
|
method: 'POST',
|
|
3626
|
-
url: '/api/v1/cache/flush'
|
|
4118
|
+
url: '/api/v1/cache/flush',
|
|
4119
|
+
errors: {
|
|
4120
|
+
403: 'Admin access required'
|
|
4121
|
+
}
|
|
3627
4122
|
});
|
|
3628
4123
|
}
|
|
3629
4124
|
}
|
|
@@ -3784,3 +4279,53 @@ export class InfoService {
|
|
|
3784
4279
|
});
|
|
3785
4280
|
}
|
|
3786
4281
|
}
|
|
4282
|
+
|
|
4283
|
+
export class MarketDataService {
|
|
4284
|
+
/**
|
|
4285
|
+
* Search market symbols by name or code
|
|
4286
|
+
* Ranked search over the openbb catalog. Empty `q` returns [].
|
|
4287
|
+
* @param data The data for the request.
|
|
4288
|
+
* @param data.q Search term — matched against symbol and instrument name. Empty string returns [].
|
|
4289
|
+
* @param data.limit Maximum number of results (clamped 1..50)
|
|
4290
|
+
* @param data.exchange Filter by exchange code (e.g. US, HK, SS, SZ)
|
|
4291
|
+
* @param data.assetType Filter by OpenBB asset_type (e.g. stock, etf)
|
|
4292
|
+
* @returns SymbolSearchResultDto Ranked search results
|
|
4293
|
+
* @throws ApiError
|
|
4294
|
+
*/
|
|
4295
|
+
public static symbolControllerSearch(
|
|
4296
|
+
data: SymbolControllerSearchData
|
|
4297
|
+
): CancelablePromise<SymbolControllerSearchResponse> {
|
|
4298
|
+
return __request(OpenAPI, {
|
|
4299
|
+
method: 'GET',
|
|
4300
|
+
url: '/api/v1/market/symbols/search',
|
|
4301
|
+
query: {
|
|
4302
|
+
q: data.q,
|
|
4303
|
+
limit: data.limit,
|
|
4304
|
+
exchange: data.exchange,
|
|
4305
|
+
assetType: data.assetType
|
|
4306
|
+
}
|
|
4307
|
+
});
|
|
4308
|
+
}
|
|
4309
|
+
|
|
4310
|
+
/**
|
|
4311
|
+
* Get a market symbol quote
|
|
4312
|
+
* @param data The data for the request.
|
|
4313
|
+
* @param data.symbol
|
|
4314
|
+
* @returns SymbolQuoteDto Symbol quote
|
|
4315
|
+
* @throws ApiError
|
|
4316
|
+
*/
|
|
4317
|
+
public static symbolControllerGetQuote(
|
|
4318
|
+
data: SymbolControllerGetQuoteData
|
|
4319
|
+
): CancelablePromise<SymbolControllerGetQuoteResponse> {
|
|
4320
|
+
return __request(OpenAPI, {
|
|
4321
|
+
method: 'GET',
|
|
4322
|
+
url: '/api/v1/market/symbols/{symbol}/quote',
|
|
4323
|
+
path: {
|
|
4324
|
+
symbol: data.symbol
|
|
4325
|
+
},
|
|
4326
|
+
errors: {
|
|
4327
|
+
404: 'Symbol not found in the openbb catalog'
|
|
4328
|
+
}
|
|
4329
|
+
});
|
|
4330
|
+
}
|
|
4331
|
+
}
|